Skip to main content

A transcompiler for converting DucklingScript code into Rubber Ducky Language 1.0

Project description

DucklingScript Header

PyPI - Downloads

Welcome to DucklingScript, a language that compiles into Rubber Ducky Scripting Language 1.0! DucklingScript is the best language to use for BadUSB on the Flipper Zero. Although this is the main idea, there are many other applications as well!

All documentation, contributing guides, are found here!

Issues and PR's are welcome!

Documentation

We got you covered! Docs are hosted on a separate website found here!

VSCode Support

DucklingScript has a public VSCode extension that supports syntax highlighting.

DucklingScript VSCode Extension ->

DucklingScript VSCode Extension Screenshot

Why DucklingScript?

There are many key points to using DucklingScript, such as Type Safety, Flow Control, Syntactical Speed, and Forward Compatibility.

Type Safety

Because DucklingScript has to go through a compilation process, it means DucklingScript can validate your script will work on your hardware. It will tell you that there is an error, and it will tell you exactly where. For example, CTRL requires one character. DucklingScript will validate that this is true.

Flow Control

Rubber Ducky Scripting Language 1.0 and even the Flipper's implementation don't add any kind of flow control. e.g. if statements, while/for loops, etc. DucklingScript gives you those capabilities, and more!

Syntactical Speed

Normal Rubber Ducky Scripting 1.0 doesn't give much room for speed, and oftentimes leads you to repeating yourself in code. Not only does DucklingScript add commands to improve this, it also makes small syntactical changes. Such as:

Rubber Ducky 1.0

STRINGLN Hello,
STRINGLN world,
STRINGLN it is I!

DucklingScript

STRINGLN 
    Hello,
    world,
    it is I!

Forward Compatibility

If you use a command that does not exist in Rubber Ducky 1.0, DucklingScript will simply warn you that this is the case (these warnings can even be supressed using a flag on compilation, or editing the config file). However, it does not stop you from doing so. This allows you to use future commands!

Support Me 💖

If you'd like to support me or this project, you can support me through my Ko-Fi: https://ko-fi.com/dragonofshuu.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ducklingscript-0.2.3.tar.gz (48.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ducklingscript-0.2.3-py3-none-any.whl (89.5 kB view details)

Uploaded Python 3

File details

Details for the file ducklingscript-0.2.3.tar.gz.

File metadata

  • Download URL: ducklingscript-0.2.3.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.9 Windows/10

File hashes

Hashes for ducklingscript-0.2.3.tar.gz
Algorithm Hash digest
SHA256 bbe550de4fcc78363834b57ea5c388cffc97f554b4f0b9094140e08e92d43661
MD5 5875b9da3c9a1860f0a2ff652fa6841f
BLAKE2b-256 6966d390f8537f1e5cca2fd2bf33dbc789256bbb43fecafc5644b26bab5d8c4d

See more details on using hashes here.

File details

Details for the file ducklingscript-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: ducklingscript-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 89.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.9 Windows/10

File hashes

Hashes for ducklingscript-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 75e8bed27d6af9da78f4e8fb2ef6b4355dd6890fa96ddde47ba57214a5523c51
MD5 22781027ec54f9cd3725b07e1a7332ca
BLAKE2b-256 d2051d36572f9100459c750ed592157ff97e2750bf8dfa3a7dd00527b4e6faa8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page