fastled 1.0.15__tar.gz → 1.0.17__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. fastled-1.0.17/PKG-INFO +112 -0
  2. fastled-1.0.17/README.md +93 -0
  3. {fastled-1.0.15 → fastled-1.0.17}/pyproject.toml +53 -58
  4. {fastled-1.0.15 → fastled-1.0.17}/setup.py +0 -1
  5. fastled-1.0.17/src/fastled.egg-info/PKG-INFO +112 -0
  6. fastled-1.0.17/src/fastled.egg-info/SOURCES.txt +29 -0
  7. fastled-1.0.17/src/fastled.egg-info/entry_points.txt +3 -0
  8. fastled-1.0.17/src/fastled.egg-info/top_level.txt +2 -0
  9. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/app.py +86 -164
  10. fastled-1.0.17/src/fled/check_cpp_syntax.py +34 -0
  11. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/cli.py +1 -1
  12. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/compile_server.py +207 -221
  13. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/docker_manager.py +7 -11
  14. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/filewatcher.py +146 -196
  15. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/open_browser.py +1 -5
  16. fastled-1.0.17/src/fled/web_compile.py +173 -0
  17. {fastled-1.0.15 → fastled-1.0.17}/tests/test_bad_ino.py +1 -1
  18. {fastled-1.0.15 → fastled-1.0.17}/tests/test_cli.py +1 -1
  19. {fastled-1.0.15 → fastled-1.0.17}/tests/test_compile_server.py +3 -3
  20. fastled-1.0.17/tests/test_filechanger.py +51 -0
  21. {fastled-1.0.15 → fastled-1.0.17}/tests/test_webcompile.py +2 -2
  22. fastled-1.0.15/.aiderignore +0 -7
  23. fastled-1.0.15/.github/workflows/build_multi_docker_image.yml +0 -107
  24. fastled-1.0.15/.github/workflows/lint.yml +0 -23
  25. fastled-1.0.15/.github/workflows/test_macos.yml +0 -29
  26. fastled-1.0.15/.github/workflows/test_ubuntu.yml +0 -29
  27. fastled-1.0.15/.github/workflows/test_win.yml +0 -30
  28. fastled-1.0.15/.gitignore +0 -151
  29. fastled-1.0.15/.pylintrc +0 -2
  30. fastled-1.0.15/.vscode/launch.json +0 -44
  31. fastled-1.0.15/.vscode/settings.json +0 -29
  32. fastled-1.0.15/.vscode/tasks.json +0 -41
  33. fastled-1.0.15/PKG-INFO +0 -196
  34. fastled-1.0.15/README.md +0 -177
  35. fastled-1.0.15/clean +0 -21
  36. fastled-1.0.15/docs/fastled.js +0 -19
  37. fastled-1.0.15/docs/fastled.wasm +0 -0
  38. fastled-1.0.15/docs/index.css +0 -158
  39. fastled-1.0.15/docs/index.html +0 -113
  40. fastled-1.0.15/docs/index.js +0 -1269
  41. fastled-1.0.15/examples/Blink/Blink.ino +0 -73
  42. fastled-1.0.15/examples/Chromancer/Chromancer.ino +0 -555
  43. fastled-1.0.15/examples/Chromancer/detail.h +0 -80
  44. fastled-1.0.15/examples/Chromancer/gary_woos_wled_port/gary_woos_wled_ledmap.h +0 -47
  45. fastled-1.0.15/examples/Chromancer/gary_woos_wled_port/presets.json +0 -6681
  46. fastled-1.0.15/examples/Chromancer/gary_woos_wled_port/presets.min.json +0 -1
  47. fastled-1.0.15/examples/Chromancer/gen.py +0 -270
  48. fastled-1.0.15/examples/Chromancer/mapping.h +0 -158
  49. fastled-1.0.15/examples/Chromancer/net.h +0 -168
  50. fastled-1.0.15/examples/Chromancer/output.json +0 -1
  51. fastled-1.0.15/examples/Chromancer/ripple.h +0 -424
  52. fastled-1.0.15/examples/Chromancer/screenmap.json.h +0 -4
  53. fastled-1.0.15/examples/ColorPalette/ColorPalette.ino +0 -192
  54. fastled-1.0.15/examples/ColorTemperature/ColorTemperature.ino +0 -89
  55. fastled-1.0.15/examples/Cylon/Cylon.ino +0 -31
  56. fastled-1.0.15/examples/DemoReel100/DemoReel100.ino +0 -45
  57. fastled-1.0.15/examples/Esp32Rmt51/Esp32Rmt51.ino +0 -50
  58. fastled-1.0.15/examples/EspI2SDemo/EspI2SDemo.ino +0 -49
  59. fastled-1.0.15/examples/Fire2012/Fire2012.ino +0 -71
  60. fastled-1.0.15/examples/Fire2012WithPalette/Fire2012WithPalette.ino +0 -168
  61. fastled-1.0.15/examples/FirstLight/FirstLight.ino +0 -96
  62. fastled-1.0.15/examples/FxEngine/FxEngine.ino +0 -63
  63. fastled-1.0.15/examples/Noise/Noise.ino +0 -124
  64. fastled-1.0.15/examples/NoisePlayground/NoisePlayground.ino +0 -90
  65. fastled-1.0.15/examples/NoisePlusPalette/NoisePlusPalette.ino +0 -101
  66. fastled-1.0.15/examples/OctoWS2811/OctoWS2811.ino +0 -48
  67. fastled-1.0.15/examples/Pacifica/Pacifica.ino +0 -38
  68. fastled-1.0.15/examples/Pride2015/Pride2015.ino +0 -28
  69. fastled-1.0.15/examples/SdCard/SdCard.ino +0 -85
  70. fastled-1.0.15/examples/SdCard/screenmap.json.h +0 -4
  71. fastled-1.0.15/examples/TwinkleFox/TwinkleFox.ino +0 -30
  72. fastled-1.0.15/examples/Video/Gfx2Video/Gfx2Video.ino +0 -90
  73. fastled-1.0.15/examples/WasmScreenCoords/WasmScreenCoords.ino +0 -66
  74. fastled-1.0.15/examples/Water/Water.ino +0 -147
  75. fastled-1.0.15/examples/XYMatrix/XYMatrix.ino +0 -214
  76. fastled-1.0.15/examples/wasm/wasm.ino +0 -131
  77. fastled-1.0.15/install +0 -37
  78. fastled-1.0.15/lint +0 -15
  79. fastled-1.0.15/src/fastled/__init__.py +0 -3
  80. fastled-1.0.15/src/fastled/keyboard.py +0 -91
  81. fastled-1.0.15/src/fastled/sketch.py +0 -55
  82. fastled-1.0.15/src/fastled/util.py +0 -10
  83. fastled-1.0.15/src/fastled/web_compile.py +0 -291
  84. fastled-1.0.15/src/fastled.egg-info/PKG-INFO +0 -196
  85. fastled-1.0.15/src/fastled.egg-info/SOURCES.txt +0 -94
  86. fastled-1.0.15/src/fastled.egg-info/entry_points.txt +0 -4
  87. fastled-1.0.15/src/fastled.egg-info/top_level.txt +0 -2
  88. fastled-1.0.15/test +0 -9
  89. fastled-1.0.15/tests/test_embedded_data.py +0 -65
  90. fastled-1.0.15/tests/test_filechanger.py +0 -54
  91. fastled-1.0.15/tests/test_ino/bad/bad.ino +0 -140
  92. fastled-1.0.15/tests/test_ino/embedded/wasm.ino +0 -134
  93. fastled-1.0.15/tests/test_ino/wasm/wasm.ino +0 -134
  94. fastled-1.0.15/tests/test_server_and_client_seperatly.py +0 -42
  95. fastled-1.0.15/upload_package.sh +0 -10
  96. {fastled-1.0.15 → fastled-1.0.17}/LICENSE +0 -0
  97. {fastled-1.0.15 → fastled-1.0.17}/MANIFEST.in +0 -0
  98. {fastled-1.0.15 → fastled-1.0.17}/requirements.testing.txt +0 -0
  99. {fastled-1.0.15 → fastled-1.0.17}/setup.cfg +0 -0
  100. {fastled-1.0.15 → fastled-1.0.17}/src/fastled.egg-info/dependency_links.txt +0 -0
  101. {fastled-1.0.15 → fastled-1.0.17}/src/fastled.egg-info/requires.txt +0 -0
  102. /fastled-1.0.15/tests/test_ino/embedded/data/bigdata.dat → /fastled-1.0.17/src/fled/__init__.py +0 -0
  103. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/assets/example.txt +0 -0
  104. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/build_mode.py +0 -0
  105. {fastled-1.0.15/src/fastled → fastled-1.0.17/src/fled}/paths.py +0 -0
@@ -0,0 +1,112 @@
1
+ Metadata-Version: 2.1
2
+ Name: fastled
3
+ Version: 1.0.17
4
+ Summary: FastLED Wasm Compiler
5
+ Home-page: https://github.com/zackees/fastled-wasm
6
+ Maintainer: Zachary Vorhies
7
+ License: BSD 3-Clause License
8
+ Keywords: template-python-cmd
9
+ Classifier: Programming Language :: Python :: 3
10
+ Requires-Python: >=3.7
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: docker
14
+ Requires-Dist: httpx
15
+ Requires-Dist: watchdog
16
+ Requires-Dist: livereload
17
+ Requires-Dist: download
18
+ Requires-Dist: filelock
19
+
20
+ # FastLED wasm compiler
21
+
22
+ Compiles an Arduino/Platformio sketch into a wasm binary that can be run directly in the web browser.
23
+
24
+ [![Linting](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml)
25
+ [![Build and Push Multi Docker Image](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml)
26
+ [![MacOS_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml)
27
+ [![Ubuntu_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml)
28
+ [![Win_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml)
29
+
30
+
31
+
32
+ # About
33
+
34
+ This python app will compile your FastLED style sketches into html/js/wasm output that runs directly in the browser.
35
+
36
+ Compile times are extremely fast - I've seen as low as 5 seconds but 8-15 seconds is typical.
37
+
38
+ This works on Windows/Linux/Mac(arm/x64).
39
+
40
+ Docker is required.
41
+
42
+ https://github.com/user-attachments/assets/64ae0e6c-5f8b-4830-ab87-dcc25bc61218
43
+
44
+ # Demo
45
+
46
+ https://zackees.github.io/fastled-wasm/
47
+
48
+
49
+
50
+ # Install
51
+
52
+ ```bash
53
+ pip install fastled-wasm
54
+ ```
55
+
56
+ **Note that you may need to install x86 docker emulation on Mac-m1 and later, as this is an x86 only image at the prsent.**
57
+
58
+ # Use
59
+
60
+ Change to the directory where the sketch lives and run
61
+
62
+ ```bash
63
+ cd <SKETCH-DIRECTORY>
64
+ fastled-wasm
65
+ ```
66
+
67
+ Or if you don't have docker then use our web compiler
68
+
69
+ ```bash
70
+ cd <SKETCH-DIRECTORY>
71
+ fastled-wasm --web
72
+ ```
73
+
74
+ After compilation a web browser windows will pop up.
75
+
76
+ # Hot reload by default
77
+
78
+ Once launched, the compiler will remain open, listening to changes and recompiling as necessary and hot-reloading the sketch into the current browser.
79
+
80
+ This style of development should be familiar to those doing web development.
81
+
82
+ # Data
83
+
84
+ If you want to embed data, then do so in the `data/` directory at the project root. The files will appear in the `data/` director of any spawned FileSystem or SDCard.
85
+
86
+
87
+ ### About the compilation.
88
+
89
+ Pre-processing is done to your source files. A fake Arduino.h will be inserted into your source files that will
90
+ provide shims for most of the common api points.
91
+
92
+
93
+ # Revisions
94
+
95
+ * 1.0.17 - Pulls updates when necessary. Removed dependency on keyring.
96
+ * 1.0.16 - `fastled-wasm` package name has been changed to `fled`
97
+ * 1.0.15 - `fled` is an alias of `fastled-wasm` and will eventually replace it. `--web-host` was folded into `--web`, which if unspecified will attempt to run a local docker server and fallback to the cloud server if that fails. Specifying `--web` with no arguments will default to the cloud server while an argument (like `localhost`) will cause it to bind to that already running server for compilation.
98
+ * 1.0.14 - For non significant changes (comments, whitespace) in C++/ino/*.h files, compilation is skipped. This significantly reduces load on the server and prevents unnecessary local client browser refreshes.
99
+ * 1.0.13 - Increase speed of local compiles by running the server version of the compiler so it can keep it's cache and not have to pay docker startup costs because now it's a persistant server until exit.
100
+ * 1.0.12 - Added suppport for compile modes. Pass in `--release`, `--quick`, `--debug` for different compile options. We also support `--profile` to profile the build process.
101
+ * 1.0.11 - `--web` compile will automatically be enabled if the local build using docker fails.
102
+ * 1.0.10 - Watching files is now available for `--web`
103
+ * 1.0.9 - Enabled web compile. Access it with `--web` or `--web-host`
104
+ * 1.0.8 - Allow more than one fastled-wasm browser instances to co-exist by searching for unused ports after 8081.
105
+ * 1.0.7 - Docker multi image build implemented, tool now points to new docker image compile.
106
+ * 1.0.6 - Removed `--no-open` and `--watch`, `--watch` is now assumed unless `--just-compile` is used.
107
+ * 1.0.5 - Implemented `--update` to update the compiler image from the docker registry.
108
+ * 1.0.4 - Implemented `--watch` which will watch for changes and then re-launch the compilation step.
109
+ * 1.0.3 - Integrated `live-server` to launch when available.
110
+ * 1.0.2 - Small bug with new installs.
111
+ * 1.0.1 - Re-use is no longer the default, due to problems.
112
+ * 1.0.0 - Initial release.
@@ -0,0 +1,93 @@
1
+ # FastLED wasm compiler
2
+
3
+ Compiles an Arduino/Platformio sketch into a wasm binary that can be run directly in the web browser.
4
+
5
+ [![Linting](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml)
6
+ [![Build and Push Multi Docker Image](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml)
7
+ [![MacOS_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml)
8
+ [![Ubuntu_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml)
9
+ [![Win_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml)
10
+
11
+
12
+
13
+ # About
14
+
15
+ This python app will compile your FastLED style sketches into html/js/wasm output that runs directly in the browser.
16
+
17
+ Compile times are extremely fast - I've seen as low as 5 seconds but 8-15 seconds is typical.
18
+
19
+ This works on Windows/Linux/Mac(arm/x64).
20
+
21
+ Docker is required.
22
+
23
+ https://github.com/user-attachments/assets/64ae0e6c-5f8b-4830-ab87-dcc25bc61218
24
+
25
+ # Demo
26
+
27
+ https://zackees.github.io/fastled-wasm/
28
+
29
+
30
+
31
+ # Install
32
+
33
+ ```bash
34
+ pip install fastled-wasm
35
+ ```
36
+
37
+ **Note that you may need to install x86 docker emulation on Mac-m1 and later, as this is an x86 only image at the prsent.**
38
+
39
+ # Use
40
+
41
+ Change to the directory where the sketch lives and run
42
+
43
+ ```bash
44
+ cd <SKETCH-DIRECTORY>
45
+ fastled-wasm
46
+ ```
47
+
48
+ Or if you don't have docker then use our web compiler
49
+
50
+ ```bash
51
+ cd <SKETCH-DIRECTORY>
52
+ fastled-wasm --web
53
+ ```
54
+
55
+ After compilation a web browser windows will pop up.
56
+
57
+ # Hot reload by default
58
+
59
+ Once launched, the compiler will remain open, listening to changes and recompiling as necessary and hot-reloading the sketch into the current browser.
60
+
61
+ This style of development should be familiar to those doing web development.
62
+
63
+ # Data
64
+
65
+ If you want to embed data, then do so in the `data/` directory at the project root. The files will appear in the `data/` director of any spawned FileSystem or SDCard.
66
+
67
+
68
+ ### About the compilation.
69
+
70
+ Pre-processing is done to your source files. A fake Arduino.h will be inserted into your source files that will
71
+ provide shims for most of the common api points.
72
+
73
+
74
+ # Revisions
75
+
76
+ * 1.0.17 - Pulls updates when necessary. Removed dependency on keyring.
77
+ * 1.0.16 - `fastled-wasm` package name has been changed to `fled`
78
+ * 1.0.15 - `fled` is an alias of `fastled-wasm` and will eventually replace it. `--web-host` was folded into `--web`, which if unspecified will attempt to run a local docker server and fallback to the cloud server if that fails. Specifying `--web` with no arguments will default to the cloud server while an argument (like `localhost`) will cause it to bind to that already running server for compilation.
79
+ * 1.0.14 - For non significant changes (comments, whitespace) in C++/ino/*.h files, compilation is skipped. This significantly reduces load on the server and prevents unnecessary local client browser refreshes.
80
+ * 1.0.13 - Increase speed of local compiles by running the server version of the compiler so it can keep it's cache and not have to pay docker startup costs because now it's a persistant server until exit.
81
+ * 1.0.12 - Added suppport for compile modes. Pass in `--release`, `--quick`, `--debug` for different compile options. We also support `--profile` to profile the build process.
82
+ * 1.0.11 - `--web` compile will automatically be enabled if the local build using docker fails.
83
+ * 1.0.10 - Watching files is now available for `--web`
84
+ * 1.0.9 - Enabled web compile. Access it with `--web` or `--web-host`
85
+ * 1.0.8 - Allow more than one fastled-wasm browser instances to co-exist by searching for unused ports after 8081.
86
+ * 1.0.7 - Docker multi image build implemented, tool now points to new docker image compile.
87
+ * 1.0.6 - Removed `--no-open` and `--watch`, `--watch` is now assumed unless `--just-compile` is used.
88
+ * 1.0.5 - Implemented `--update` to update the compiler image from the docker registry.
89
+ * 1.0.4 - Implemented `--watch` which will watch for changes and then re-launch the compilation step.
90
+ * 1.0.3 - Integrated `live-server` to launch when available.
91
+ * 1.0.2 - Small bug with new installs.
92
+ * 1.0.1 - Re-use is no longer the default, due to problems.
93
+ * 1.0.0 - Initial release.
@@ -1,58 +1,53 @@
1
- [build-system]
2
- requires = ["setuptools>=65.5.1", "setuptools-scm", "wheel"]
3
- build-backend = "setuptools.build_meta"
4
-
5
- [project]
6
- name = "fastled"
7
- readme = "README.md"
8
- description = "FastLED Wasm Compiler"
9
- requires-python = ">=3.7"
10
- keywords = ["template-python-cmd"]
11
- license = { text = "BSD 3-Clause License" }
12
- classifiers = ["Programming Language :: Python :: 3"]
13
- dependencies = [
14
- "docker",
15
- "httpx",
16
- "watchdog",
17
- "livereload",
18
- "download",
19
- "filelock",
20
- ]
21
-
22
- dynamic = ["version"]
23
-
24
-
25
- [tool.setuptools]
26
- package-dir = {"" = "src"}
27
-
28
- [tool.setuptools.dynamic]
29
- version = { attr = "fastled.__version__" }
30
-
31
- [tool.ruff]
32
- line-length = 200
33
-
34
- [tool.pylint."MESSAGES CONTROL"]
35
- good-names = [
36
- "c",
37
- "i",
38
- "ok",
39
- "id",
40
- "e",
41
- "f"
42
- ]
43
- disable = [
44
- "missing-function-docstring",
45
- "missing-module-docstring"
46
- ]
47
-
48
- [tool.isort]
49
- profile = "black"
50
-
51
- [tool.mypy]
52
- ignore_missing_imports = true
53
- disable_error_code = ["import-untyped"]
54
-
55
- [project.scripts]
56
- fastled-wasm = "fastled.cli:main"
57
- fled = "fastled.cli:main"
58
- fastled = "fastled.cli:main"
1
+ [build-system]
2
+ requires = ["setuptools>=65.5.1", "setuptools-scm", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "fastled"
7
+ readme = "README.md"
8
+ description = "FastLED Wasm Compiler"
9
+ requires-python = ">=3.7"
10
+ keywords = ["template-python-cmd"]
11
+ license = { text = "BSD 3-Clause License" }
12
+ classifiers = ["Programming Language :: Python :: 3"]
13
+ dependencies = [
14
+ "docker",
15
+ "httpx",
16
+ "watchdog",
17
+ "livereload",
18
+ "download",
19
+ "filelock",
20
+ ]
21
+ # Change this with the version number bump.
22
+ version = "1.0.17"
23
+
24
+ [tool.setuptools]
25
+ package-dir = {"" = "src"}
26
+
27
+ [tool.ruff]
28
+ line-length = 200
29
+
30
+ [tool.pylint."MESSAGES CONTROL"]
31
+ good-names = [
32
+ "c",
33
+ "i",
34
+ "ok",
35
+ "id",
36
+ "e",
37
+ "f"
38
+ ]
39
+ disable = [
40
+ "missing-function-docstring",
41
+ "missing-module-docstring"
42
+ ]
43
+
44
+ [tool.isort]
45
+ profile = "black"
46
+
47
+ [tool.mypy]
48
+ ignore_missing_imports = true
49
+ disable_error_code = ["import-untyped"]
50
+
51
+ [project.scripts]
52
+ fastled-wasm = "fled.cli:main"
53
+ fled = "fled.cli:main"
@@ -4,7 +4,6 @@ Setup file.
4
4
 
5
5
  import os
6
6
  import re
7
- from pathlib import Path
8
7
 
9
8
  from setuptools import setup
10
9
 
@@ -0,0 +1,112 @@
1
+ Metadata-Version: 2.1
2
+ Name: fastled
3
+ Version: 1.0.17
4
+ Summary: FastLED Wasm Compiler
5
+ Home-page: https://github.com/zackees/fastled-wasm
6
+ Maintainer: Zachary Vorhies
7
+ License: BSD 3-Clause License
8
+ Keywords: template-python-cmd
9
+ Classifier: Programming Language :: Python :: 3
10
+ Requires-Python: >=3.7
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: docker
14
+ Requires-Dist: httpx
15
+ Requires-Dist: watchdog
16
+ Requires-Dist: livereload
17
+ Requires-Dist: download
18
+ Requires-Dist: filelock
19
+
20
+ # FastLED wasm compiler
21
+
22
+ Compiles an Arduino/Platformio sketch into a wasm binary that can be run directly in the web browser.
23
+
24
+ [![Linting](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml)
25
+ [![Build and Push Multi Docker Image](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml)
26
+ [![MacOS_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml)
27
+ [![Ubuntu_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml)
28
+ [![Win_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml)
29
+
30
+
31
+
32
+ # About
33
+
34
+ This python app will compile your FastLED style sketches into html/js/wasm output that runs directly in the browser.
35
+
36
+ Compile times are extremely fast - I've seen as low as 5 seconds but 8-15 seconds is typical.
37
+
38
+ This works on Windows/Linux/Mac(arm/x64).
39
+
40
+ Docker is required.
41
+
42
+ https://github.com/user-attachments/assets/64ae0e6c-5f8b-4830-ab87-dcc25bc61218
43
+
44
+ # Demo
45
+
46
+ https://zackees.github.io/fastled-wasm/
47
+
48
+
49
+
50
+ # Install
51
+
52
+ ```bash
53
+ pip install fastled-wasm
54
+ ```
55
+
56
+ **Note that you may need to install x86 docker emulation on Mac-m1 and later, as this is an x86 only image at the prsent.**
57
+
58
+ # Use
59
+
60
+ Change to the directory where the sketch lives and run
61
+
62
+ ```bash
63
+ cd <SKETCH-DIRECTORY>
64
+ fastled-wasm
65
+ ```
66
+
67
+ Or if you don't have docker then use our web compiler
68
+
69
+ ```bash
70
+ cd <SKETCH-DIRECTORY>
71
+ fastled-wasm --web
72
+ ```
73
+
74
+ After compilation a web browser windows will pop up.
75
+
76
+ # Hot reload by default
77
+
78
+ Once launched, the compiler will remain open, listening to changes and recompiling as necessary and hot-reloading the sketch into the current browser.
79
+
80
+ This style of development should be familiar to those doing web development.
81
+
82
+ # Data
83
+
84
+ If you want to embed data, then do so in the `data/` directory at the project root. The files will appear in the `data/` director of any spawned FileSystem or SDCard.
85
+
86
+
87
+ ### About the compilation.
88
+
89
+ Pre-processing is done to your source files. A fake Arduino.h will be inserted into your source files that will
90
+ provide shims for most of the common api points.
91
+
92
+
93
+ # Revisions
94
+
95
+ * 1.0.17 - Pulls updates when necessary. Removed dependency on keyring.
96
+ * 1.0.16 - `fastled-wasm` package name has been changed to `fled`
97
+ * 1.0.15 - `fled` is an alias of `fastled-wasm` and will eventually replace it. `--web-host` was folded into `--web`, which if unspecified will attempt to run a local docker server and fallback to the cloud server if that fails. Specifying `--web` with no arguments will default to the cloud server while an argument (like `localhost`) will cause it to bind to that already running server for compilation.
98
+ * 1.0.14 - For non significant changes (comments, whitespace) in C++/ino/*.h files, compilation is skipped. This significantly reduces load on the server and prevents unnecessary local client browser refreshes.
99
+ * 1.0.13 - Increase speed of local compiles by running the server version of the compiler so it can keep it's cache and not have to pay docker startup costs because now it's a persistant server until exit.
100
+ * 1.0.12 - Added suppport for compile modes. Pass in `--release`, `--quick`, `--debug` for different compile options. We also support `--profile` to profile the build process.
101
+ * 1.0.11 - `--web` compile will automatically be enabled if the local build using docker fails.
102
+ * 1.0.10 - Watching files is now available for `--web`
103
+ * 1.0.9 - Enabled web compile. Access it with `--web` or `--web-host`
104
+ * 1.0.8 - Allow more than one fastled-wasm browser instances to co-exist by searching for unused ports after 8081.
105
+ * 1.0.7 - Docker multi image build implemented, tool now points to new docker image compile.
106
+ * 1.0.6 - Removed `--no-open` and `--watch`, `--watch` is now assumed unless `--just-compile` is used.
107
+ * 1.0.5 - Implemented `--update` to update the compiler image from the docker registry.
108
+ * 1.0.4 - Implemented `--watch` which will watch for changes and then re-launch the compilation step.
109
+ * 1.0.3 - Integrated `live-server` to launch when available.
110
+ * 1.0.2 - Small bug with new installs.
111
+ * 1.0.1 - Re-use is no longer the default, due to problems.
112
+ * 1.0.0 - Initial release.
@@ -0,0 +1,29 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ requirements.testing.txt
6
+ setup.py
7
+ src/fastled.egg-info/PKG-INFO
8
+ src/fastled.egg-info/SOURCES.txt
9
+ src/fastled.egg-info/dependency_links.txt
10
+ src/fastled.egg-info/entry_points.txt
11
+ src/fastled.egg-info/requires.txt
12
+ src/fastled.egg-info/top_level.txt
13
+ src/fled/__init__.py
14
+ src/fled/app.py
15
+ src/fled/build_mode.py
16
+ src/fled/check_cpp_syntax.py
17
+ src/fled/cli.py
18
+ src/fled/compile_server.py
19
+ src/fled/docker_manager.py
20
+ src/fled/filewatcher.py
21
+ src/fled/open_browser.py
22
+ src/fled/paths.py
23
+ src/fled/web_compile.py
24
+ src/fled/assets/example.txt
25
+ tests/test_bad_ino.py
26
+ tests/test_cli.py
27
+ tests/test_compile_server.py
28
+ tests/test_filechanger.py
29
+ tests/test_webcompile.py
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ fastled-wasm = fled.cli:main
3
+ fled = fled.cli:main
@@ -0,0 +1,2 @@
1
+ cache
2
+ fled