

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](https://ducklingscript.dragonofshuu.dev/docs/guides/why-ducklingscript)!
Issues and PR's are welcome!
# Documentation
We got you covered! Docs are hosted on a separate website found [here](https://ducklingscript.dragonofshuu.dev/docs/guides/why-ducklingscript)!
# VSCode Support
DucklingScript has a public VSCode extension that supports syntax highlighting.
[DucklingScript VSCode Extension ->](https://marketplace.visualstudio.com/items?itemName=DragonofShuu.ducklingscript-language-support)

# 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.
Raw data
{
"_id": null,
"home_page": "https://github.com/DragonOfShuu/DucklingScript/",
"name": "ducklingscript",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": "duckyscript, flipper, ducky, key injection",
"author": "Dragon of Shuu",
"author_email": "loganmcederlof@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c2/a1/af4a26b6ce9f80080420c87b5e65ce7379d0a83797bb74b66e1fab3ee5c0/ducklingscript-0.2.1.tar.gz",
"platform": null,
"description": "\n\n\n\nWelcome 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!\n\nAll documentation, contributing guides, are found [here](https://ducklingscript.dragonofshuu.dev/docs/guides/why-ducklingscript)!\n\nIssues and PR's are welcome!\n\n# Documentation\n\nWe got you covered! Docs are hosted on a separate website found [here](https://ducklingscript.dragonofshuu.dev/docs/guides/why-ducklingscript)!\n\n# VSCode Support\n\nDucklingScript has a public VSCode extension that supports syntax highlighting. \n\n[DucklingScript VSCode Extension ->](https://marketplace.visualstudio.com/items?itemName=DragonofShuu.ducklingscript-language-support)\n\n\n\n# Why DucklingScript?\n\nThere are many key points to using DucklingScript, such as Type Safety, Flow Control, Syntactical Speed, and Forward Compatibility.\n\n## Type Safety\n\nBecause 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.\n\n## Flow Control\n\nRubber 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!\n\n## Syntactical Speed\n\nNormal 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:\n\nRubber Ducky 1.0\n```\nSTRINGLN Hello,\nSTRINGLN world,\nSTRINGLN it is I!\n```\nDucklingScript\n```\nSTRINGLN \n Hello,\n world,\n it is I!\n```\n\n## Forward Compatibility\n\nIf 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!\n\n# Support Me \ud83d\udc96\n\nIf you'd like to support me or this project, you can support me through my Ko-Fi: https://ko-fi.com/dragonofshuu.\n",
"bugtrack_url": null,
"license": null,
"summary": "A transcompiler for converting DucklingScript code into Rubber Ducky Language 1.0",
"version": "0.2.1",
"project_urls": {
"Documentation": "https://ducklingscript.dragonofshuu.dev/",
"DragonOfShuu.dev": "https://dragonofshuu.dev/",
"Homepage": "https://github.com/DragonOfShuu/DucklingScript/",
"Repository": "https://github.com/DragonOfShuu/DucklingScript/"
},
"split_keywords": [
"duckyscript",
" flipper",
" ducky",
" key injection"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3e7c924ddbbb4ff7bd2bd6d8bfed4e860eaec4c25c67119b2859142df2859c7a",
"md5": "ac28e4b27ee249c04323c55811debe23",
"sha256": "03c3725c13811d5a8ec7d71d9ac8f5df410beb90fe6a3c763454ce21c12d5895"
},
"downloads": -1,
"filename": "ducklingscript-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ac28e4b27ee249c04323c55811debe23",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 89476,
"upload_time": "2025-02-22T20:16:42",
"upload_time_iso_8601": "2025-02-22T20:16:42.033827Z",
"url": "https://files.pythonhosted.org/packages/3e/7c/924ddbbb4ff7bd2bd6d8bfed4e860eaec4c25c67119b2859142df2859c7a/ducklingscript-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c2a1af4a26b6ce9f80080420c87b5e65ce7379d0a83797bb74b66e1fab3ee5c0",
"md5": "0b67cc2e28f130c3f3614e14d48bec06",
"sha256": "daef647a0da94f83293626b4e8e84217b0904ae9a27ed4e5ae32cb921574fce9"
},
"downloads": -1,
"filename": "ducklingscript-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "0b67cc2e28f130c3f3614e14d48bec06",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 52479,
"upload_time": "2025-02-22T20:16:43",
"upload_time_iso_8601": "2025-02-22T20:16:43.933645Z",
"url": "https://files.pythonhosted.org/packages/c2/a1/af4a26b6ce9f80080420c87b5e65ce7379d0a83797bb74b66e1fab3ee5c0/ducklingscript-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-22 20:16:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DragonOfShuu",
"github_project": "DucklingScript",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ducklingscript"
}