{"id":37082921,"url":"https://github.com/stonelabs/webduino-generator","last_synced_at":"2026-01-14T10:01:43.192Z","repository":{"id":62588474,"uuid":"277885712","full_name":"StoneLabs/webduino-generator","owner":"StoneLabs","description":"Python program to automatically create arduino webserver from \"web files\"","archived":false,"fork":false,"pushed_at":"2020-11-05T10:11:20.000Z","size":143,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-07T01:33:32.661Z","etag":null,"topics":["arduino","arduino-webserver","code-generation","cpp","python"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StoneLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-07T17:51:50.000Z","updated_at":"2020-11-05T10:11:23.000Z","dependencies_parsed_at":"2022-11-03T17:01:48.254Z","dependency_job_id":null,"html_url":"https://github.com/StoneLabs/webduino-generator","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/StoneLabs/webduino-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneLabs%2Fwebduino-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneLabs%2Fwebduino-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneLabs%2Fwebduino-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneLabs%2Fwebduino-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StoneLabs","download_url":"https://codeload.github.com/StoneLabs/webduino-generator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StoneLabs%2Fwebduino-generator/sbom","scorecard":{"id":134649,"data":{"date":"2025-08-04","repo":{"name":"github.com/StoneLabs/webduino-generator","commit":"c4c763eb708368acd7f78f5e53b0371cfc47d286"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-16T06:09:57.969Z","repository_id":62588474,"created_at":"2025-08-16T06:09:57.969Z","updated_at":"2025-08-16T06:09:57.969Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28416497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-webserver","code-generation","cpp","python"],"created_at":"2026-01-14T10:01:42.415Z","updated_at":"2026-01-14T10:01:43.186Z","avatar_url":"https://github.com/StoneLabs.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/StoneLabs/webduino-generator?style=flat-square\"\u003e \u003cimg alt=\"GitHub watchers\" src=\"https://img.shields.io/github/watchers/StoneLabs/webduino-generator?style=flat-square\"\u003e \u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/StoneLabs/webduino-generator?style=flat-square\"\u003e \u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/webduino-generator?style=flat-square\"\u003e \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/maintenance/yes/2020?style=flat-square\"\u003e\n\n\u003cimg src=\"https://www.distrelec.de/Web/WebShopImages/landscape_large/3-/01/Arduino-ABX00027-30150883-01.jpg\" align=\"right\" width=\"200\" /\u003e\n\n# Webduino Generator\nPython program to automatically create arduino webserver from folder.\nSupports basically all file types. For example: html, js, css, images, and arbitrary binaries.\nAlso supports coding cpp functions inside the website files (see input/*.cpp) for example.\n\n# Installation\n```\n$ sudo pip install webduino-generator\n```\n\n# Usage\nThe following will build the demo website included in this repository.\n```\n$ git clone https://github.com/StoneLabs/webduino-generator\n$ cd webduino-generator/\n$ wgen generate input\n$ wgen open\n\nOr compile and upload directly (requires arduino-cli to be installed)\n$ wgen compile\n$ wgen upload\n```\n\n# Projects\nAside from build a random folder you can create a project. By default a simple hello world program will be created.\n```\n$ wgen init\n$ wgen build\n$ wgen open\n```\n\n# Supported devices?\nAt the moment the templates only support WiFiNina based connections. Tested only on Arduino nano 33 iot. Should be fairly easy to adapt the templates for ethernet based devices though.\n\n\n```\n$ wgen init\n$ nano templates/main.ino\n```\n\n# How to place code in loop() or init()?\nThe inputs files do not support loop() or init() code (as you might have seen from the example in this repository). However it is quite trivial to add code to loop() or init(). To do this simply edit the template generated with your project.\n\n```\n$ wgen init\n$ nano templates/main.ino\n$ wgen build\n\nAnd compile and upload directly (requires arduino-cli to be installed)\n$ wgen compile\n$ wgen upload\n```\n\n# Windows support?\nAside from `wgen compile` and `wgen upload` all commands should work regardless of your operating system. Even compile and upload should work if you manage to install `arduino-cli` on windows. However, this is not tested.\n\n# Other gotchas?\nI highly recommend not using includes inside input .cpp files. The cpp input files are packed in a namespace during the build. Importing inside the namespace might cause large sketches. The same goes for global variables shared between input files. However, it is quite simple to work around this. Simply edit the template as described above.\n\n# Documentation?\nNot yet. Might use github wiki at some point.\n\n### Note\nProject is WIP.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonelabs%2Fwebduino-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstonelabs%2Fwebduino-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstonelabs%2Fwebduino-generator/lists"}