fastled 1.2.89__tar.gz → 1.2.92__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 (138) hide show
  1. {fastled-1.2.89 → fastled-1.2.92}/.gitignore +1 -0
  2. fastled-1.2.92/Dockerfile +85 -0
  3. {fastled-1.2.89 → fastled-1.2.92}/PKG-INFO +79 -4
  4. {fastled-1.2.89 → fastled-1.2.92}/README.md +76 -1
  5. {fastled-1.2.89 → fastled-1.2.92}/RELEASE.md +1 -1
  6. {fastled-1.2.89 → fastled-1.2.92}/build_local_docker.py +1 -6
  7. {fastled-1.2.89 → fastled-1.2.92}/compiler/init_runtime.py +5 -10
  8. {fastled-1.2.89 → fastled-1.2.92}/compiler/prewarm.sh +2 -3
  9. {fastled-1.2.89 → fastled-1.2.92}/compiler/pyproject.toml +1 -1
  10. {fastled-1.2.89 → fastled-1.2.92}/compiler/run.py +4 -4
  11. {fastled-1.2.89 → fastled-1.2.92}/docker-compose.yml +1 -1
  12. {fastled-1.2.89 → fastled-1.2.92}/pyproject.toml +3 -3
  13. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/__init__.py +1 -1
  14. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/server_flask.py +1 -1
  15. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/settings.py +2 -2
  16. {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/PKG-INFO +79 -4
  17. {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/SOURCES.txt +8 -19
  18. {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/requires.txt +2 -2
  19. fastled-1.2.92/tests/unit/test_cli.py +38 -0
  20. fastled-1.2.92/tests/unit/test_ino/bad_platformio/platformio.ini +97 -0
  21. fastled-1.2.92/tests/unit/test_version_matches.py +70 -0
  22. fastled-1.2.92/vscode-plugin/readme +17 -0
  23. fastled-1.2.89/Dockerfile +0 -208
  24. fastled-1.2.89/compiler/__init__.py +0 -0
  25. fastled-1.2.89/compiler/build.sh +0 -3
  26. fastled-1.2.89/compiler/build_archive.sh +0 -28
  27. fastled-1.2.89/compiler/build_fast.sh +0 -54
  28. fastled-1.2.89/compiler/code_sync.py +0 -106
  29. fastled-1.2.89/compiler/compile.py +0 -652
  30. fastled-1.2.89/compiler/compile_lock.py +0 -3
  31. fastled-1.2.89/compiler/paths.py +0 -19
  32. fastled-1.2.89/compiler/pre-process.sh +0 -27
  33. fastled-1.2.89/compiler/process_extended.py +0 -109
  34. fastled-1.2.89/compiler/server.py +0 -882
  35. fastled-1.2.89/compiler/sketch_hasher.py +0 -255
  36. fastled-1.2.89/compiler/wasm_compiler_flags.py +0 -157
  37. fastled-1.2.89/tests/unit/test_cli.py +0 -26
  38. fastled-1.2.89/tests/unit/test_ino/bad_platformio/platformio.ini +0 -41
  39. {fastled-1.2.89 → fastled-1.2.92}/.aiderignore +0 -0
  40. {fastled-1.2.89 → fastled-1.2.92}/.dockerignore +0 -0
  41. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/build_multi_docker_image.yml +0 -0
  42. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/build_webpage.yml +0 -0
  43. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/lint.yml +0 -0
  44. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/publish_release.yml +0 -0
  45. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/template_build_docker_image.yml +0 -0
  46. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_build_exe.yml +0 -0
  47. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_macos.yml +0 -0
  48. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_ubuntu.yml +0 -0
  49. {fastled-1.2.89 → fastled-1.2.92}/.github/workflows/test_win.yml +0 -0
  50. {fastled-1.2.89 → fastled-1.2.92}/.pylintrc +0 -0
  51. {fastled-1.2.89 → fastled-1.2.92}/.vscode/launch.json +0 -0
  52. {fastled-1.2.89 → fastled-1.2.92}/.vscode/settings.json +0 -0
  53. {fastled-1.2.89 → fastled-1.2.92}/.vscode/tasks.json +0 -0
  54. {fastled-1.2.89 → fastled-1.2.92}/LICENSE +0 -0
  55. {fastled-1.2.89 → fastled-1.2.92}/MANIFEST.in +0 -0
  56. {fastled-1.2.89 → fastled-1.2.92}/TODO.md +0 -0
  57. {fastled-1.2.89 → fastled-1.2.92}/build_exe.py +0 -0
  58. {fastled-1.2.89 → fastled-1.2.92}/build_site.py +0 -0
  59. {fastled-1.2.89 → fastled-1.2.92}/clean +0 -0
  60. {fastled-1.2.89 → fastled-1.2.92}/compiler/CMakeLists.txt +0 -0
  61. {fastled-1.2.89 → fastled-1.2.92}/compiler/arduino-pre-process.sh +0 -0
  62. {fastled-1.2.89 → fastled-1.2.92}/compiler/debug.sh +0 -0
  63. {fastled-1.2.89 → fastled-1.2.92}/compiler/entrypoint.sh +0 -0
  64. {fastled-1.2.89 → fastled-1.2.92}/compiler/final_prewarm.sh +0 -0
  65. {fastled-1.2.89 → fastled-1.2.92}/compiler/install-arduino-cli.sh +0 -0
  66. {fastled-1.2.89 → fastled-1.2.92}/compiler/libcompile/CMakeLists.txt +0 -0
  67. {fastled-1.2.89 → fastled-1.2.92}/compiler/process-ino.py +0 -0
  68. {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/100dots.html +0 -0
  69. {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/demo_threejs.html +0 -0
  70. {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/micdemo.html +0 -0
  71. {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/mp3upload.html +0 -0
  72. {fastled-1.2.89/compiler/extra → fastled-1.2.92/demo}/webgl_postprocessing_unreal_bloom.html +0 -0
  73. {fastled-1.2.89 → fastled-1.2.92}/install +0 -0
  74. {fastled-1.2.89 → fastled-1.2.92}/install_linux.sh +0 -0
  75. {fastled-1.2.89 → fastled-1.2.92}/lint +0 -0
  76. {fastled-1.2.89 → fastled-1.2.92}/requirements.testing.txt +0 -0
  77. {fastled-1.2.89 → fastled-1.2.92}/setup.cfg +0 -0
  78. {fastled-1.2.89 → fastled-1.2.92}/setup.py +0 -0
  79. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/app.py +0 -0
  80. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/assets/example.txt +0 -0
  81. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/assets/localhost-key.pem +0 -0
  82. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/assets/localhost.pem +0 -0
  83. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/cli.py +0 -0
  84. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/cli_test.py +0 -0
  85. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/cli_test_interactive.py +0 -0
  86. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/client_server.py +0 -0
  87. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/compile_server.py +0 -0
  88. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/compile_server_impl.py +0 -0
  89. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/docker_manager.py +0 -0
  90. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/filewatcher.py +0 -0
  91. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/keyboard.py +0 -0
  92. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/keyz.py +0 -0
  93. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/live_client.py +0 -0
  94. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/open_browser.py +0 -0
  95. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/parse_args.py +0 -0
  96. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/paths.py +0 -0
  97. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/print_filter.py +0 -0
  98. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/project_init.py +0 -0
  99. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/select_sketch_directory.py +0 -0
  100. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/server_start.py +0 -0
  101. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/site/build.py +0 -0
  102. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/site/examples.py +0 -0
  103. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/sketch.py +0 -0
  104. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/spinner.py +0 -0
  105. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/string_diff.py +0 -0
  106. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/test/can_run_local_docker_tests.py +0 -0
  107. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/test/examples.py +0 -0
  108. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/types.py +0 -0
  109. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/util.py +0 -0
  110. {fastled-1.2.89 → fastled-1.2.92}/src/fastled/web_compile.py +0 -0
  111. {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/dependency_links.txt +0 -0
  112. {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/entry_points.txt +0 -0
  113. {fastled-1.2.89 → fastled-1.2.92}/src/fastled.egg-info/top_level.txt +0 -0
  114. {fastled-1.2.89 → fastled-1.2.92}/test +0 -0
  115. {fastled-1.2.89 → fastled-1.2.92}/tests/integration/test_build_examples.py +0 -0
  116. {fastled-1.2.89 → fastled-1.2.92}/tests/integration/test_examples.py +0 -0
  117. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/html/index.html +0 -0
  118. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_api.py +0 -0
  119. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_bad_ino.py +0 -0
  120. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_compile_server.py +0 -0
  121. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_docker_linux_on_windows.py +0 -0
  122. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_embedded_data.py +0 -0
  123. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_experimental_cpp_filter.py +0 -0
  124. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_fetch_source_files.py +0 -0
  125. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_filechanger.py +0 -0
  126. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_http_server.py +0 -0
  127. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/bad/bad.ino +0 -0
  128. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/bad_platformio/bad_platformio.ino +0 -0
  129. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/embedded/data/bigdata.dat +0 -0
  130. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/embedded/wasm.ino +0 -0
  131. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_ino/wasm/wasm.ino +0 -0
  132. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_print_filter.py +0 -0
  133. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_project_init.py +0 -0
  134. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_server_and_client_seperatly.py +0 -0
  135. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_string_diff.py +0 -0
  136. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_version.py +0 -0
  137. {fastled-1.2.89 → fastled-1.2.92}/tests/unit/test_webcompile.py +0 -0
  138. {fastled-1.2.89 → fastled-1.2.92}/upload_package.sh +0 -0
@@ -151,3 +151,4 @@ cache/
151
151
  dist/
152
152
  /fastled/
153
153
  logs
154
+ vscode-plugin
@@ -0,0 +1,85 @@
1
+
2
+ # The only reason we use docker is because of the fastled-wasm-compiler.
3
+ FROM niteris/fastled-wasm-compiler:latest
4
+
5
+
6
+ # Get the compiler requirements and install them.
7
+ COPY compiler/pyproject.toml /install/pyproject.toml
8
+ RUN uv pip install --system -r /install/pyproject.toml
9
+
10
+ # FIRST PRE-WARM CYCLE and initial setup: Download the fastled repo from the github and pre-warm the cache with a compilation.
11
+ # This is by far the most expensive part of the build, because platformio needs to download initial tools. This
12
+ # pre-warm cycle is "sticky" and tends to stay in the cache for a long time since docker is very relaxed about
13
+ # invalidating cache layers that clone a github repo.
14
+
15
+ RUN echo "force update4"
16
+ ARG FASTLED_BUILD_DAY=echo $(date +'%Y-%m-%d')
17
+ ENV FASTLED_BUILD_DAY=${FASTLED_BUILD_DAY}
18
+
19
+ ARG FASTLED_VERSION=master
20
+ ENV FASTLED_VERSION=${FASTLED_VERSION}
21
+ RUN mkdir -p /js/fastled && \
22
+ rsync -a /git/fastled/ /js/fastled/ --exclude='.git'
23
+
24
+ # Create symlinks for wasm platform files.
25
+ COPY compiler/init_runtime.py /js/init_runtime.py
26
+ COPY compiler/prewarm.sh /js/prewarm.sh
27
+
28
+ WORKDIR /js
29
+
30
+ ARG NO_PREWARM=0
31
+ ENV NO_PREWARM=${NO_PREWARM}
32
+
33
+ RUN python /js/init_runtime.py || true
34
+
35
+
36
+ # First pre-warm cycle - always do it as part of the build.
37
+ RUN mkdir -p /logs
38
+
39
+ # Force a build if the compiler flags change.
40
+ COPY compiler/CMakeLists.txt /trash/CMakeLists.txt
41
+ RUN rm -rf /trash
42
+
43
+ RUN chmod +x /js/prewarm.sh && \
44
+ cat /js/prewarm.sh >> /logs/prewarm.log.0
45
+ RUN /js/prewarm.sh --force >> /logs/prewarm.log.1 || true
46
+
47
+
48
+
49
+ # # Copy the fastled repo from the host machine and prepare for pre-warm
50
+ # # Make sure and delete files that have been removed so that we don't get
51
+ # # duplicate symbols from stale files.
52
+ # COPY *.json /host/fastled/
53
+ # COPY src/*.* /host/fastled/src/
54
+ # COPY examples /host/fastled/examples
55
+ # COPY src/fx /host/fastled/src/fx
56
+ # COPY src/fl /host/fastled/src/fl
57
+ # COPY src/lib8tion /host/fastled/src/lib8tion
58
+ # COPY src/third_party /host/fastled/src/third_party
59
+ # COPY src/sensors /host/fastled/src/sensors
60
+ # COPY src/platforms /host/fastled/src/platforms
61
+
62
+ RUN echo "force update"
63
+ COPY compiler /js/compiler
64
+
65
+ COPY compiler/entrypoint.sh /entrypoint.sh
66
+ RUN chmod +x /entrypoint.sh && dos2unix /entrypoint.sh
67
+
68
+ # RSYNC DISABLED FOR NOW
69
+ # now sync local to the source directory.
70
+ # RUN rsync -av /host/fastled/ /js/fastled/ && rm -rf /host/fastled
71
+
72
+ RUN python /js/init_runtime.py || true
73
+
74
+
75
+ # SECOND PRE-WARM CYCLE: Copy the fastled repo from the host machine and pre-warm the cache with that compilation. This will
76
+ # be much quicker than the first pre-warm cycle.
77
+ RUN /js/prewarm.sh --force > /logs/prewarm.log.2 || true
78
+
79
+ # Now timestamp the image and store it at the end of the build.
80
+ RUN date > /image_timestamp.txt
81
+
82
+ ENTRYPOINT ["/entrypoint.sh"]
83
+ CMD ["python", "/js/run.py", "server"]
84
+
85
+ # CMD ["/bin/bash", "/entrypoint.sh"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastled
3
- Version: 1.2.89
3
+ Version: 1.2.92
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -10,17 +10,17 @@ Classifier: Programming Language :: Python :: 3
10
10
  Requires-Python: >=3.10
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
- Requires-Dist: docker>=7.1.0
14
13
  Requires-Dist: httpx>=0.28.1
15
14
  Requires-Dist: watchdog>=6.0.0
15
+ Requires-Dist: docker>=7.1.0
16
16
  Requires-Dist: filelock>=3.16.1
17
- Requires-Dist: disklru>=2.0.1
18
17
  Requires-Dist: appdirs>=1.4.4
19
18
  Requires-Dist: rapidfuzz>=3.10.1
20
19
  Requires-Dist: progress>=1.6
21
20
  Requires-Dist: watchfiles>=1.0.5
22
21
  Requires-Dist: Flask>=3.0.0
23
22
  Requires-Dist: livereload
23
+ Requires-Dist: fastled-wasm-server>=1.0.6
24
24
  Dynamic: home-page
25
25
  Dynamic: license-file
26
26
  Dynamic: maintainer
@@ -38,7 +38,6 @@ Dynamic: maintainer
38
38
  [![Build Webpage](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml)
39
39
 
40
40
 
41
-
42
41
  ## Compile your FastLED sketch and run it on the Browser!!
43
42
 
44
43
  ![image](https://github.com/user-attachments/assets/243aeb4d-e42f-4cc3-9c31-0af51271f3e0)
@@ -394,3 +393,79 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
394
393
 
395
394
 
396
395
  live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
396
+
397
+
398
+ ## Performance
399
+
400
+ ```
401
+ ###############################
402
+ # Build started with command: #
403
+ # pio run -v #
404
+ ###############################
405
+
406
+ 0.41 Warning! Ignore unknown configuration option `build_dir` in section [env:wasm]
407
+ 0.41 Warning! Ignore unknown configuration option `force_verbose` in section [env:wasm]
408
+ 0.41 Processing wasm (platform: native; extra_scripts: post:wasm_compiler_flags.py; lib_compat_mode: off; build_flags: -std=c++17, -DFASTLED_NO_PINMAP, -DHAS_HARDWARE_PIN_SUPPORT, -DFASTLED_FORCE_SOFTWARE_SPI, -I/js/src/platforms/wasm/compiler; custom_wasm_export_name: fastled; lib_deps: FastLED=symlink://fastled; build_dir: build/wasm; force_verbose: yes)
409
+ 0.41 --------------------------------------------------------------------------------
410
+ 0.99 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
411
+ 0.99 LDF Modes: Finder ~ chain, Compatibility ~ off
412
+ 0.99 Found 1 compatible libraries
413
+ 0.99 Scanning dependencies...
414
+ 1.40 Dependency Graph
415
+ 1.40 |-- FastLED @ 3.9.16 (License: MIT, Path: /js/fastled)
416
+ 1.49 Building in release mode
417
+ 1.49
418
+ 1.49 #########################
419
+ 1.49 # C++/C Compiler Flags: #
420
+ 1.49 #########################
421
+ 1.49
422
+ 1.49 CC/CXX flags:
423
+ 1.49 -DFASTLED_ENGINE_EVENTS_MAX_LISTENERS=50
424
+ 1.49 -DFASTLED_FORCE_NAMESPACE=1
425
+ 1.49 -DFASTLED_USE_PROGMEM=0
426
+ 1.49 -O1
427
+ 1.49 -DUSE_OFFSET_CONVERTER=0
428
+ 1.49 -std=gnu++17
429
+ 1.49 -fpermissive
430
+ 1.49 -Wno-constant-logical-operand
431
+ 1.49 -Wnon-c-typedef-for-linkage
432
+ 1.49 -Werror=bad-function-cast
433
+ 1.49 -Werror=cast-function-type
434
+ 1.49 -I
435
+ 1.49 src
436
+ 1.49 -I/js/src/platforms/wasm/compiler
437
+ 1.49
438
+ 1.49 #################
439
+ 1.49 # Linker Flags: #
440
+ 1.49 #################
441
+ 1.49
442
+ 1.49 --bind
443
+ 1.49 -fuse-ld=lld
444
+ 1.49 -sWASM=1
445
+ 1.49 -sALLOW_MEMORY_GROWTH=1
446
+ 1.49 -sINITIAL_MEMORY=134217728
447
+ 1.49 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8']
448
+ 1.49 -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files']
449
+ 1.49 --no-entry
450
+ 1.49 -sERROR_ON_WASM_CHANGES_AFTER_LINK
451
+ 1.49 -sMODULARIZE=1
452
+ 1.49 -sEXPORT_NAME=fastled
453
+ 1.49 -o
454
+ 1.49 /js/.pio/build/wasm/fastled.js
455
+ 1.49
456
+ 1.49 ##########################
457
+ 1.49 # FastLED Library Flags: #
458
+ 1.49 ##########################
459
+ 1.49
460
+ 1.49 --bind
461
+ 1.49 -Wl,--whole-archive,-fuse-ld=lld
462
+ 1.49 -Werror=bad-function-cast
463
+ 1.49 -Werror=cast-function-type
464
+ 1.49
465
+ 1.49 ################
466
+ 1.49 # End of Flags #
467
+ 1.49 ################
468
+ 1.49
469
+ 2.20 ccache em++ -o .pio/build/wasm/program --bind -fuse-ld=lld -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8'] -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files'] --no-entry -sERROR_ON_WASM_CHANGES_AFTER_LINK -sMODULARIZE=1 -sEXPORT_NAME=fastled -o /js/.pio/build/wasm/fastled.js .pio/build/wasm/libbb9/fastled/FastLED.o .pio/build/wasm/libbb9/fastled/bitswap.o .pio/build/wasm/libbb9/fastled/cled_controller.o .pio/build/wasm/libbb9/fastled/colorpalettes.o .pio/build/wasm/libbb9/fastled/crgb.o .pio/build/wasm/libbb9/fastled/fl/allocator.o .pio/build/wasm/libbb9/fastled/fl/audio.o .pio/build/wasm/libbb9/fastled/fl/bilinear_expansion.o .pio/build/wasm/libbb9/fastled/fl/blur.o .pio/build/wasm/libbb9/fastled/fl/bytestreammemory.o .pio/build/wasm/libbb9/fastled/fl/colorutils.o .pio/build/wasm/libbb9/fastled/fl/downscale.o .pio/build/wasm/libbb9/fastled/fl/engine_events.o .pio/build/wasm/libbb9/fastled/fl/fft.o .pio/build/wasm/libbb9/fastled/fl/fft_impl.o .pio/build/wasm/libbb9/fastled/fl/file_system.o .pio/build/wasm/libbb9/fastled/fl/fill.o .pio/build/wasm/libbb9/fastled/fl/five_bit_hd_gamma.o .pio/build/wasm/libbb9/fastled/fl/gradient.o .pio/build/wasm/libbb9/fastled/fl/json.o .pio/build/wasm/libbb9/fastled/fl/leds.o .pio/build/wasm/libbb9/fastled/fl/line_simplification.o .pio/build/wasm/libbb9/fastled/fl/noise_woryley.o .pio/build/wasm/libbb9/fastled/fl/ptr.o .pio/build/wasm/libbb9/fastled/fl/raster_sparse.o .pio/build/wasm/libbb9/fastled/fl/rectangular_draw_buffer.o .pio/build/wasm/libbb9/fastled/fl/screenmap.o .pio/build/wasm/libbb9/fastled/fl/sin32.o .pio/build/wasm/libbb9/fastled/fl/str.o .pio/build/wasm/libbb9/fastled/fl/strstream.o .pio/build/wasm/libbb9/fastled/fl/stub_main.o .pio/build/wasm/libbb9/fastled/fl/tile2x2.o .pio/build/wasm/libbb9/fastled/fl/time_alpha.o .pio/build/wasm/libbb9/fastled/fl/transform.o .pio/build/wasm/libbb9/fastled/fl/type_traits.o .pio/build/wasm/libbb9/fastled/fl/ui.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation_real.o .pio/build/wasm/libbb9/fastled/fl/xmap.o .pio/build/wasm/libbb9/fastled/fl/xymap.o .pio/build/wasm/libbb9/fastled/fl/xypath.o .pio/build/wasm/libbb9/fastled/fl/xypath_impls.o .pio/build/wasm/libbb9/fastled/fl/xypath_renderer.o .pio/build/wasm/libbb9/fastled/fx/2d/blend.o .pio/build/wasm/libbb9/fastled/fx/2d/noisepalette.o .pio/build/wasm/libbb9/fastled/fx/2d/scale_up.o .pio/build/wasm/libbb9/fastled/fx/2d/wave.o .pio/build/wasm/libbb9/fastled/fx/frame.o .pio/build/wasm/libbb9/fastled/fx/fx_engine.o .pio/build/wasm/libbb9/fastled/fx/time.o .pio/build/wasm/libbb9/fastled/fx/video.o .pio/build/wasm/libbb9/fastled/fx/video/frame_interpolator.o .pio/build/wasm/libbb9/fastled/fx/video/frame_tracker.o .pio/build/wasm/libbb9/fastled/fx/video/pixel_stream.o .pio/build/wasm/libbb9/fastled/fx/video/video_impl.o .pio/build/wasm/libbb9/fastled/hsv2rgb.o .pio/build/wasm/libbb9/fastled/lib8tion.o .pio/build/wasm/libbb9/fastled/noise.o .pio/build/wasm/libbb9/fastled/platforms.o .pio/build/wasm/libbb9/fastled/platforms/arm/k20/clockless_objectfled.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/clockless_i2s_esp32s3.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/i2s/i2s_esp32dev.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt_impl.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/idf5_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/strip_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/spi_ws2812/strip_spi.o .pio/build/wasm/libbb9/fastled/platforms/wasm/active_strip_data.o .pio/build/wasm/libbb9/fastled/platforms/wasm/compiler/Arduino.o .pio/build/wasm/libbb9/fastled/platforms/wasm/engine_listener.o .pio/build/wasm/libbb9/fastled/platforms/wasm/fs_wasm.o .pio/build/wasm/libbb9/fastled/platforms/wasm/js.o .pio/build/wasm/libbb9/fastled/platforms/wasm/timer.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/audio.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/button.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/checkbox.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/description.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/number_field.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/slider.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/title.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_internal.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_manager.o .pio/build/wasm/libbb9/fastled/power_mgt.o .pio/build/wasm/libbb9/fastled/rgbw.o .pio/build/wasm/libbb9/fastled/sensors/digital_pin.o .pio/build/wasm/libbb9/fastled/sensors/pir.o .pio/build/wasm/libbb9/fastled/simplex.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/cq_kernel.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fft.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fftr.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_api.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_dev.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_encoder.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_spi_dev.o .pio/build/wasm/libbb9/fastled/third_party/object_fled/src/OjectFLED.o .pio/build/wasm/libbb9/fastled/transpose8x1_noinline.o .pio/build/wasm/libbb9/fastled/wiring.o .pio/build/wasm/src/wasm.ino.o -L.pio/build/wasm
470
+ 3.61 ========================= [SUCCESS] Took 3.20 seconds =========================
471
+ ```
@@ -11,7 +11,6 @@
11
11
  [![Build Webpage](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml)
12
12
 
13
13
 
14
-
15
14
  ## Compile your FastLED sketch and run it on the Browser!!
16
15
 
17
16
  ![image](https://github.com/user-attachments/assets/243aeb4d-e42f-4cc3-9c31-0af51271f3e0)
@@ -367,3 +366,79 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
367
366
 
368
367
 
369
368
  live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
369
+
370
+
371
+ ## Performance
372
+
373
+ ```
374
+ ###############################
375
+ # Build started with command: #
376
+ # pio run -v #
377
+ ###############################
378
+
379
+ 0.41 Warning! Ignore unknown configuration option `build_dir` in section [env:wasm]
380
+ 0.41 Warning! Ignore unknown configuration option `force_verbose` in section [env:wasm]
381
+ 0.41 Processing wasm (platform: native; extra_scripts: post:wasm_compiler_flags.py; lib_compat_mode: off; build_flags: -std=c++17, -DFASTLED_NO_PINMAP, -DHAS_HARDWARE_PIN_SUPPORT, -DFASTLED_FORCE_SOFTWARE_SPI, -I/js/src/platforms/wasm/compiler; custom_wasm_export_name: fastled; lib_deps: FastLED=symlink://fastled; build_dir: build/wasm; force_verbose: yes)
382
+ 0.41 --------------------------------------------------------------------------------
383
+ 0.99 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
384
+ 0.99 LDF Modes: Finder ~ chain, Compatibility ~ off
385
+ 0.99 Found 1 compatible libraries
386
+ 0.99 Scanning dependencies...
387
+ 1.40 Dependency Graph
388
+ 1.40 |-- FastLED @ 3.9.16 (License: MIT, Path: /js/fastled)
389
+ 1.49 Building in release mode
390
+ 1.49
391
+ 1.49 #########################
392
+ 1.49 # C++/C Compiler Flags: #
393
+ 1.49 #########################
394
+ 1.49
395
+ 1.49 CC/CXX flags:
396
+ 1.49 -DFASTLED_ENGINE_EVENTS_MAX_LISTENERS=50
397
+ 1.49 -DFASTLED_FORCE_NAMESPACE=1
398
+ 1.49 -DFASTLED_USE_PROGMEM=0
399
+ 1.49 -O1
400
+ 1.49 -DUSE_OFFSET_CONVERTER=0
401
+ 1.49 -std=gnu++17
402
+ 1.49 -fpermissive
403
+ 1.49 -Wno-constant-logical-operand
404
+ 1.49 -Wnon-c-typedef-for-linkage
405
+ 1.49 -Werror=bad-function-cast
406
+ 1.49 -Werror=cast-function-type
407
+ 1.49 -I
408
+ 1.49 src
409
+ 1.49 -I/js/src/platforms/wasm/compiler
410
+ 1.49
411
+ 1.49 #################
412
+ 1.49 # Linker Flags: #
413
+ 1.49 #################
414
+ 1.49
415
+ 1.49 --bind
416
+ 1.49 -fuse-ld=lld
417
+ 1.49 -sWASM=1
418
+ 1.49 -sALLOW_MEMORY_GROWTH=1
419
+ 1.49 -sINITIAL_MEMORY=134217728
420
+ 1.49 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8']
421
+ 1.49 -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files']
422
+ 1.49 --no-entry
423
+ 1.49 -sERROR_ON_WASM_CHANGES_AFTER_LINK
424
+ 1.49 -sMODULARIZE=1
425
+ 1.49 -sEXPORT_NAME=fastled
426
+ 1.49 -o
427
+ 1.49 /js/.pio/build/wasm/fastled.js
428
+ 1.49
429
+ 1.49 ##########################
430
+ 1.49 # FastLED Library Flags: #
431
+ 1.49 ##########################
432
+ 1.49
433
+ 1.49 --bind
434
+ 1.49 -Wl,--whole-archive,-fuse-ld=lld
435
+ 1.49 -Werror=bad-function-cast
436
+ 1.49 -Werror=cast-function-type
437
+ 1.49
438
+ 1.49 ################
439
+ 1.49 # End of Flags #
440
+ 1.49 ################
441
+ 1.49
442
+ 2.20 ccache em++ -o .pio/build/wasm/program --bind -fuse-ld=lld -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8'] -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files'] --no-entry -sERROR_ON_WASM_CHANGES_AFTER_LINK -sMODULARIZE=1 -sEXPORT_NAME=fastled -o /js/.pio/build/wasm/fastled.js .pio/build/wasm/libbb9/fastled/FastLED.o .pio/build/wasm/libbb9/fastled/bitswap.o .pio/build/wasm/libbb9/fastled/cled_controller.o .pio/build/wasm/libbb9/fastled/colorpalettes.o .pio/build/wasm/libbb9/fastled/crgb.o .pio/build/wasm/libbb9/fastled/fl/allocator.o .pio/build/wasm/libbb9/fastled/fl/audio.o .pio/build/wasm/libbb9/fastled/fl/bilinear_expansion.o .pio/build/wasm/libbb9/fastled/fl/blur.o .pio/build/wasm/libbb9/fastled/fl/bytestreammemory.o .pio/build/wasm/libbb9/fastled/fl/colorutils.o .pio/build/wasm/libbb9/fastled/fl/downscale.o .pio/build/wasm/libbb9/fastled/fl/engine_events.o .pio/build/wasm/libbb9/fastled/fl/fft.o .pio/build/wasm/libbb9/fastled/fl/fft_impl.o .pio/build/wasm/libbb9/fastled/fl/file_system.o .pio/build/wasm/libbb9/fastled/fl/fill.o .pio/build/wasm/libbb9/fastled/fl/five_bit_hd_gamma.o .pio/build/wasm/libbb9/fastled/fl/gradient.o .pio/build/wasm/libbb9/fastled/fl/json.o .pio/build/wasm/libbb9/fastled/fl/leds.o .pio/build/wasm/libbb9/fastled/fl/line_simplification.o .pio/build/wasm/libbb9/fastled/fl/noise_woryley.o .pio/build/wasm/libbb9/fastled/fl/ptr.o .pio/build/wasm/libbb9/fastled/fl/raster_sparse.o .pio/build/wasm/libbb9/fastled/fl/rectangular_draw_buffer.o .pio/build/wasm/libbb9/fastled/fl/screenmap.o .pio/build/wasm/libbb9/fastled/fl/sin32.o .pio/build/wasm/libbb9/fastled/fl/str.o .pio/build/wasm/libbb9/fastled/fl/strstream.o .pio/build/wasm/libbb9/fastled/fl/stub_main.o .pio/build/wasm/libbb9/fastled/fl/tile2x2.o .pio/build/wasm/libbb9/fastled/fl/time_alpha.o .pio/build/wasm/libbb9/fastled/fl/transform.o .pio/build/wasm/libbb9/fastled/fl/type_traits.o .pio/build/wasm/libbb9/fastled/fl/ui.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation_real.o .pio/build/wasm/libbb9/fastled/fl/xmap.o .pio/build/wasm/libbb9/fastled/fl/xymap.o .pio/build/wasm/libbb9/fastled/fl/xypath.o .pio/build/wasm/libbb9/fastled/fl/xypath_impls.o .pio/build/wasm/libbb9/fastled/fl/xypath_renderer.o .pio/build/wasm/libbb9/fastled/fx/2d/blend.o .pio/build/wasm/libbb9/fastled/fx/2d/noisepalette.o .pio/build/wasm/libbb9/fastled/fx/2d/scale_up.o .pio/build/wasm/libbb9/fastled/fx/2d/wave.o .pio/build/wasm/libbb9/fastled/fx/frame.o .pio/build/wasm/libbb9/fastled/fx/fx_engine.o .pio/build/wasm/libbb9/fastled/fx/time.o .pio/build/wasm/libbb9/fastled/fx/video.o .pio/build/wasm/libbb9/fastled/fx/video/frame_interpolator.o .pio/build/wasm/libbb9/fastled/fx/video/frame_tracker.o .pio/build/wasm/libbb9/fastled/fx/video/pixel_stream.o .pio/build/wasm/libbb9/fastled/fx/video/video_impl.o .pio/build/wasm/libbb9/fastled/hsv2rgb.o .pio/build/wasm/libbb9/fastled/lib8tion.o .pio/build/wasm/libbb9/fastled/noise.o .pio/build/wasm/libbb9/fastled/platforms.o .pio/build/wasm/libbb9/fastled/platforms/arm/k20/clockless_objectfled.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/clockless_i2s_esp32s3.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/i2s/i2s_esp32dev.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt_impl.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/idf5_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/strip_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/spi_ws2812/strip_spi.o .pio/build/wasm/libbb9/fastled/platforms/wasm/active_strip_data.o .pio/build/wasm/libbb9/fastled/platforms/wasm/compiler/Arduino.o .pio/build/wasm/libbb9/fastled/platforms/wasm/engine_listener.o .pio/build/wasm/libbb9/fastled/platforms/wasm/fs_wasm.o .pio/build/wasm/libbb9/fastled/platforms/wasm/js.o .pio/build/wasm/libbb9/fastled/platforms/wasm/timer.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/audio.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/button.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/checkbox.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/description.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/number_field.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/slider.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/title.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_internal.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_manager.o .pio/build/wasm/libbb9/fastled/power_mgt.o .pio/build/wasm/libbb9/fastled/rgbw.o .pio/build/wasm/libbb9/fastled/sensors/digital_pin.o .pio/build/wasm/libbb9/fastled/sensors/pir.o .pio/build/wasm/libbb9/fastled/simplex.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/cq_kernel.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fft.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fftr.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_api.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_dev.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_encoder.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_spi_dev.o .pio/build/wasm/libbb9/fastled/third_party/object_fled/src/OjectFLED.o .pio/build/wasm/libbb9/fastled/transpose8x1_noinline.o .pio/build/wasm/libbb9/fastled/wiring.o .pio/build/wasm/src/wasm.ino.o -L.pio/build/wasm
443
+ 3.61 ========================= [SUCCESS] Took 3.20 seconds =========================
444
+ ```
@@ -5,4 +5,4 @@ Go to src/fastled/__init__.py and increase the version number.
5
5
  Make sure this is the ONLY change in your repo (or the release will fail
6
6
  for unknown reasons) and commit and then push. Github builders will do all the rest.
7
7
 
8
- Make sure and watch the jobs to verify that it worked.
8
+ Make sure and watch the jobs to verify that it worked.
@@ -37,11 +37,6 @@ for line in images.strip().splitlines():
37
37
  # Step 4: Optionally remove volumes
38
38
  # _exec("docker volume prune -f") # Uncomment if you want to purge volumes too
39
39
 
40
- # Step 5: Remove local build artifacts (e.g., PlatformIO)
41
- if os.path.exists("build"):
42
- print("Removing local build/ directory")
43
- shutil.rmtree("build")
44
40
 
45
-
46
- # Step 6: Rebuild images
41
+ # Step 5: Rebuild images
47
42
  _exec("docker compose build")
@@ -77,26 +77,21 @@ def make_links() -> None:
77
77
  # Define file patterns to include
78
78
  patterns = [
79
79
  "*.h",
80
+ "*.py",
80
81
  "*.hpp",
81
82
  "*.cpp",
82
- "*.py",
83
83
  "*.sh",
84
84
  "*.ino",
85
- "*.ini",
86
85
  "*.txt",
87
86
  ]
88
87
 
89
88
  # Get all matching files in compiler directory
90
89
  tasks = _collect_docker_compile_files(globs=patterns)
91
90
  tasks += _collect_fastled_compile_files(globs=patterns)
92
-
93
- for pattern in patterns:
94
- for file_path in glob.glob(str(FASTLED_COMPILER_DIR / pattern)):
95
- src = Path(file_path)
96
- if "entrypoint.sh" in str(src):
97
- continue
98
- dst = COMPILER_ROOT / src.name
99
- tasks.append((src, dst))
91
+ tasks += [
92
+ ("/platformio/wasm_compiler_flags.py", COMPILER_ROOT / "wasm_compiler_flags.py")
93
+ ]
94
+ tasks += [("/platformio/fastled.json", COMPILER_ROOT / "fastled.json")]
100
95
 
101
96
  # Process files in parallel using ThreadPoolExecutor
102
97
  with ThreadPoolExecutor(max_workers=16) as executor:
@@ -32,12 +32,11 @@ mkdir -p /prewarm && cp -r /js/fastled/examples/wasm /prewarm/wasm
32
32
  python /js/compile.py --quick --mapped-dir /prewarm && rm -rf /js/.pio/build/wasm/src/wasm.ino.o || echo "failed to delete wasm.ino.o"
33
33
  rm -rf /prewarm
34
34
 
35
- mkdir -p /prewarm && cp -r /js/fastled/examples/wasm /prewarm/wasm
36
- python /js/compile.py --release --mapped-dir /prewarm && rm -rf /js/.pio/build/wasm/src/wasm.ino.o || echo "failed to delete wasm.ino.o"
37
- rm -rf /prewarm
38
35
 
39
36
  mkdir -p /prewarm && cp -r /js/fastled/examples/wasm /prewarm/wasm
40
37
  cd /js
41
38
  python compile.py --no-platformio --mapped-dir /prewarm # 60 seconds -> 5 seconds
42
39
  python compile.py --no-platformio --mapped-dir /prewarm # 5 seconds -> 0.5 seconds
43
40
  rm -rf /prewarm
41
+
42
+ # I think delete wasm is missing here
@@ -9,13 +9,13 @@ description = "FastLED Server"
9
9
  requires-python = ">=3.10"
10
10
 
11
11
  dependencies = [
12
- "platformio==6.1.17",
13
12
  "fastapi==0.115.11",
14
13
  "uvicorn[standard]==0.34.0",
15
14
  "python-multipart==0.0.20",
16
15
  "disklru==2.0.0",
17
16
  "psutil==6.1.1",
18
17
  "wormhole-tx",
18
+ "fastled-wasm-server>=1.0.6",
19
19
  ]
20
20
 
21
21
  [tool.setuptools]
@@ -6,8 +6,8 @@ import warnings
6
6
  from pathlib import Path
7
7
  from typing import Tuple
8
8
 
9
- from code_sync import CodeSync
10
- from paths import FASTLED_SRC, VOLUME_MAPPED_SRC
9
+ from fastled_wasm_server.code_sync import CodeSync
10
+ from fastled_wasm_server.paths import VOLUME_MAPPED_SRC
11
11
 
12
12
  _PORT = os.environ.get("PORT", 80)
13
13
 
@@ -72,7 +72,7 @@ def _run_server(unknown_args: list[str]) -> int:
72
72
  unknown_args = []
73
73
  cmd_list = [
74
74
  "uvicorn",
75
- "server:app",
75
+ "fastled_wasm_server.server:app",
76
76
  "--host",
77
77
  "0.0.0.0",
78
78
  "--workers",
@@ -106,7 +106,7 @@ def main() -> int:
106
106
 
107
107
  code_sync = CodeSync(
108
108
  volume_mapped_src=VOLUME_MAPPED_SRC,
109
- rsync_dest=FASTLED_SRC,
109
+ rsync_dest=Path("/invalid/path"),
110
110
  )
111
111
  code_sync.sync_source_directory_if_volume_is_mapped()
112
112
 
@@ -7,4 +7,4 @@ services:
7
7
  - "8234:80"
8
8
  environment:
9
9
  - ENVIRONMENT=dev
10
- image: niteris/fastled-wasm:latest
10
+ image: niteris/fastled-wasm:local
@@ -11,12 +11,11 @@ keywords = ["template-python-cmd"]
11
11
  license = { text = "BSD 3-Clause License" }
12
12
  classifiers = ["Programming Language :: Python :: 3"]
13
13
  dependencies = [
14
- "docker>=7.1.0",
15
14
  "httpx>=0.28.1",
16
15
  "watchdog>=6.0.0",
17
16
  ########## Begin Docker Manager Dependencies
17
+ "docker>=7.1.0",
18
18
  "filelock>=3.16.1",
19
- "disklru>=2.0.1",
20
19
  "appdirs>=1.4.4",
21
20
  "rapidfuzz>=3.10.1",
22
21
  "progress>=1.6",
@@ -24,11 +23,12 @@ dependencies = [
24
23
  "watchfiles>=1.0.5",
25
24
  "Flask>=3.0.0",
26
25
  "livereload",
26
+ ###### WASM SERVER ######
27
+ "fastled-wasm-server>=1.0.6", # This version can float upwards, while the docker is pinned.
27
28
  ]
28
29
 
29
30
  dynamic = ["version"]
30
31
 
31
-
32
32
  [tool.setuptools]
33
33
  package-dir = {"" = "src"}
34
34
 
@@ -14,7 +14,7 @@ from .types import BuildMode, CompileResult, CompileServerError, FileResponse
14
14
  # IMPORTANT! There's a bug in github which will REJECT any version update
15
15
  # that has any other change in the repo. Please bump the version as the
16
16
  # ONLY change in a commit, or else the pypi update and the release will fail.
17
- __version__ = "1.2.89"
17
+ __version__ = "1.2.92"
18
18
 
19
19
 
20
20
  class Api:
@@ -8,7 +8,7 @@ import httpx
8
8
  from livereload import Server
9
9
 
10
10
  # Logging configuration
11
- _ENABLE_LOGGING = True # Set to False to disable logging
11
+ _ENABLE_LOGGING = False # Set to False to disable logging
12
12
 
13
13
  if _ENABLE_LOGGING:
14
14
  logging.basicConfig(
@@ -5,12 +5,12 @@ FILE_CHANGED_DEBOUNCE_SECONDS = 2.0
5
5
  MACHINE = platform.machine().lower()
6
6
  IS_ARM: bool = "arm" in MACHINE or "aarch64" in MACHINE
7
7
  PLATFORM_TAG: str = "-arm64" if IS_ARM else ""
8
- CONTAINER_NAME = f"fastled-wasm-compiler{PLATFORM_TAG}"
8
+ CONTAINER_NAME = f"fastled-wasm-container{PLATFORM_TAG}"
9
9
  DEFAULT_URL = str(os.environ.get("FASTLED_URL", "https://fastled.onrender.com"))
10
10
  SERVER_PORT = 9021
11
11
 
12
12
  IMAGE_NAME = "niteris/fastled-wasm"
13
- DEFAULT_CONTAINER_NAME = "fastled-wasm-compiler"
13
+ DEFAULT_CONTAINER_NAME = "fastled-wasm-container"
14
14
  # IMAGE_TAG = "latest"
15
15
 
16
16
  DOCKER_FILE = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastled
3
- Version: 1.2.89
3
+ Version: 1.2.92
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -10,17 +10,17 @@ Classifier: Programming Language :: Python :: 3
10
10
  Requires-Python: >=3.10
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
- Requires-Dist: docker>=7.1.0
14
13
  Requires-Dist: httpx>=0.28.1
15
14
  Requires-Dist: watchdog>=6.0.0
15
+ Requires-Dist: docker>=7.1.0
16
16
  Requires-Dist: filelock>=3.16.1
17
- Requires-Dist: disklru>=2.0.1
18
17
  Requires-Dist: appdirs>=1.4.4
19
18
  Requires-Dist: rapidfuzz>=3.10.1
20
19
  Requires-Dist: progress>=1.6
21
20
  Requires-Dist: watchfiles>=1.0.5
22
21
  Requires-Dist: Flask>=3.0.0
23
22
  Requires-Dist: livereload
23
+ Requires-Dist: fastled-wasm-server>=1.0.6
24
24
  Dynamic: home-page
25
25
  Dynamic: license-file
26
26
  Dynamic: maintainer
@@ -38,7 +38,6 @@ Dynamic: maintainer
38
38
  [![Build Webpage](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_webpage.yml)
39
39
 
40
40
 
41
-
42
41
  ## Compile your FastLED sketch and run it on the Browser!!
43
42
 
44
43
  ![image](https://github.com/user-attachments/assets/243aeb4d-e42f-4cc3-9c31-0af51271f3e0)
@@ -394,3 +393,79 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
394
393
 
395
394
 
396
395
  live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
396
+
397
+
398
+ ## Performance
399
+
400
+ ```
401
+ ###############################
402
+ # Build started with command: #
403
+ # pio run -v #
404
+ ###############################
405
+
406
+ 0.41 Warning! Ignore unknown configuration option `build_dir` in section [env:wasm]
407
+ 0.41 Warning! Ignore unknown configuration option `force_verbose` in section [env:wasm]
408
+ 0.41 Processing wasm (platform: native; extra_scripts: post:wasm_compiler_flags.py; lib_compat_mode: off; build_flags: -std=c++17, -DFASTLED_NO_PINMAP, -DHAS_HARDWARE_PIN_SUPPORT, -DFASTLED_FORCE_SOFTWARE_SPI, -I/js/src/platforms/wasm/compiler; custom_wasm_export_name: fastled; lib_deps: FastLED=symlink://fastled; build_dir: build/wasm; force_verbose: yes)
409
+ 0.41 --------------------------------------------------------------------------------
410
+ 0.99 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
411
+ 0.99 LDF Modes: Finder ~ chain, Compatibility ~ off
412
+ 0.99 Found 1 compatible libraries
413
+ 0.99 Scanning dependencies...
414
+ 1.40 Dependency Graph
415
+ 1.40 |-- FastLED @ 3.9.16 (License: MIT, Path: /js/fastled)
416
+ 1.49 Building in release mode
417
+ 1.49
418
+ 1.49 #########################
419
+ 1.49 # C++/C Compiler Flags: #
420
+ 1.49 #########################
421
+ 1.49
422
+ 1.49 CC/CXX flags:
423
+ 1.49 -DFASTLED_ENGINE_EVENTS_MAX_LISTENERS=50
424
+ 1.49 -DFASTLED_FORCE_NAMESPACE=1
425
+ 1.49 -DFASTLED_USE_PROGMEM=0
426
+ 1.49 -O1
427
+ 1.49 -DUSE_OFFSET_CONVERTER=0
428
+ 1.49 -std=gnu++17
429
+ 1.49 -fpermissive
430
+ 1.49 -Wno-constant-logical-operand
431
+ 1.49 -Wnon-c-typedef-for-linkage
432
+ 1.49 -Werror=bad-function-cast
433
+ 1.49 -Werror=cast-function-type
434
+ 1.49 -I
435
+ 1.49 src
436
+ 1.49 -I/js/src/platforms/wasm/compiler
437
+ 1.49
438
+ 1.49 #################
439
+ 1.49 # Linker Flags: #
440
+ 1.49 #################
441
+ 1.49
442
+ 1.49 --bind
443
+ 1.49 -fuse-ld=lld
444
+ 1.49 -sWASM=1
445
+ 1.49 -sALLOW_MEMORY_GROWTH=1
446
+ 1.49 -sINITIAL_MEMORY=134217728
447
+ 1.49 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8']
448
+ 1.49 -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files']
449
+ 1.49 --no-entry
450
+ 1.49 -sERROR_ON_WASM_CHANGES_AFTER_LINK
451
+ 1.49 -sMODULARIZE=1
452
+ 1.49 -sEXPORT_NAME=fastled
453
+ 1.49 -o
454
+ 1.49 /js/.pio/build/wasm/fastled.js
455
+ 1.49
456
+ 1.49 ##########################
457
+ 1.49 # FastLED Library Flags: #
458
+ 1.49 ##########################
459
+ 1.49
460
+ 1.49 --bind
461
+ 1.49 -Wl,--whole-archive,-fuse-ld=lld
462
+ 1.49 -Werror=bad-function-cast
463
+ 1.49 -Werror=cast-function-type
464
+ 1.49
465
+ 1.49 ################
466
+ 1.49 # End of Flags #
467
+ 1.49 ################
468
+ 1.49
469
+ 2.20 ccache em++ -o .pio/build/wasm/program --bind -fuse-ld=lld -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8'] -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files'] --no-entry -sERROR_ON_WASM_CHANGES_AFTER_LINK -sMODULARIZE=1 -sEXPORT_NAME=fastled -o /js/.pio/build/wasm/fastled.js .pio/build/wasm/libbb9/fastled/FastLED.o .pio/build/wasm/libbb9/fastled/bitswap.o .pio/build/wasm/libbb9/fastled/cled_controller.o .pio/build/wasm/libbb9/fastled/colorpalettes.o .pio/build/wasm/libbb9/fastled/crgb.o .pio/build/wasm/libbb9/fastled/fl/allocator.o .pio/build/wasm/libbb9/fastled/fl/audio.o .pio/build/wasm/libbb9/fastled/fl/bilinear_expansion.o .pio/build/wasm/libbb9/fastled/fl/blur.o .pio/build/wasm/libbb9/fastled/fl/bytestreammemory.o .pio/build/wasm/libbb9/fastled/fl/colorutils.o .pio/build/wasm/libbb9/fastled/fl/downscale.o .pio/build/wasm/libbb9/fastled/fl/engine_events.o .pio/build/wasm/libbb9/fastled/fl/fft.o .pio/build/wasm/libbb9/fastled/fl/fft_impl.o .pio/build/wasm/libbb9/fastled/fl/file_system.o .pio/build/wasm/libbb9/fastled/fl/fill.o .pio/build/wasm/libbb9/fastled/fl/five_bit_hd_gamma.o .pio/build/wasm/libbb9/fastled/fl/gradient.o .pio/build/wasm/libbb9/fastled/fl/json.o .pio/build/wasm/libbb9/fastled/fl/leds.o .pio/build/wasm/libbb9/fastled/fl/line_simplification.o .pio/build/wasm/libbb9/fastled/fl/noise_woryley.o .pio/build/wasm/libbb9/fastled/fl/ptr.o .pio/build/wasm/libbb9/fastled/fl/raster_sparse.o .pio/build/wasm/libbb9/fastled/fl/rectangular_draw_buffer.o .pio/build/wasm/libbb9/fastled/fl/screenmap.o .pio/build/wasm/libbb9/fastled/fl/sin32.o .pio/build/wasm/libbb9/fastled/fl/str.o .pio/build/wasm/libbb9/fastled/fl/strstream.o .pio/build/wasm/libbb9/fastled/fl/stub_main.o .pio/build/wasm/libbb9/fastled/fl/tile2x2.o .pio/build/wasm/libbb9/fastled/fl/time_alpha.o .pio/build/wasm/libbb9/fastled/fl/transform.o .pio/build/wasm/libbb9/fastled/fl/type_traits.o .pio/build/wasm/libbb9/fastled/fl/ui.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation_real.o .pio/build/wasm/libbb9/fastled/fl/xmap.o .pio/build/wasm/libbb9/fastled/fl/xymap.o .pio/build/wasm/libbb9/fastled/fl/xypath.o .pio/build/wasm/libbb9/fastled/fl/xypath_impls.o .pio/build/wasm/libbb9/fastled/fl/xypath_renderer.o .pio/build/wasm/libbb9/fastled/fx/2d/blend.o .pio/build/wasm/libbb9/fastled/fx/2d/noisepalette.o .pio/build/wasm/libbb9/fastled/fx/2d/scale_up.o .pio/build/wasm/libbb9/fastled/fx/2d/wave.o .pio/build/wasm/libbb9/fastled/fx/frame.o .pio/build/wasm/libbb9/fastled/fx/fx_engine.o .pio/build/wasm/libbb9/fastled/fx/time.o .pio/build/wasm/libbb9/fastled/fx/video.o .pio/build/wasm/libbb9/fastled/fx/video/frame_interpolator.o .pio/build/wasm/libbb9/fastled/fx/video/frame_tracker.o .pio/build/wasm/libbb9/fastled/fx/video/pixel_stream.o .pio/build/wasm/libbb9/fastled/fx/video/video_impl.o .pio/build/wasm/libbb9/fastled/hsv2rgb.o .pio/build/wasm/libbb9/fastled/lib8tion.o .pio/build/wasm/libbb9/fastled/noise.o .pio/build/wasm/libbb9/fastled/platforms.o .pio/build/wasm/libbb9/fastled/platforms/arm/k20/clockless_objectfled.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/clockless_i2s_esp32s3.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/i2s/i2s_esp32dev.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt_impl.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/idf5_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/strip_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/spi_ws2812/strip_spi.o .pio/build/wasm/libbb9/fastled/platforms/wasm/active_strip_data.o .pio/build/wasm/libbb9/fastled/platforms/wasm/compiler/Arduino.o .pio/build/wasm/libbb9/fastled/platforms/wasm/engine_listener.o .pio/build/wasm/libbb9/fastled/platforms/wasm/fs_wasm.o .pio/build/wasm/libbb9/fastled/platforms/wasm/js.o .pio/build/wasm/libbb9/fastled/platforms/wasm/timer.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/audio.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/button.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/checkbox.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/description.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/number_field.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/slider.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/title.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_internal.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_manager.o .pio/build/wasm/libbb9/fastled/power_mgt.o .pio/build/wasm/libbb9/fastled/rgbw.o .pio/build/wasm/libbb9/fastled/sensors/digital_pin.o .pio/build/wasm/libbb9/fastled/sensors/pir.o .pio/build/wasm/libbb9/fastled/simplex.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/cq_kernel.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fft.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fftr.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_api.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_dev.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_encoder.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_spi_dev.o .pio/build/wasm/libbb9/fastled/third_party/object_fled/src/OjectFLED.o .pio/build/wasm/libbb9/fastled/transpose8x1_noinline.o .pio/build/wasm/libbb9/fastled/wiring.o .pio/build/wasm/src/wasm.ino.o -L.pio/build/wasm
470
+ 3.61 ========================= [SUCCESS] Took 3.20 seconds =========================
471
+ ```