{"id":13692972,"url":"https://github.com/krzmaz/pico-w-webserver-example","last_synced_at":"2026-02-05T12:42:17.029Z","repository":{"id":164319096,"uuid":"517447575","full_name":"krzmaz/pico-w-webserver-example","owner":"krzmaz","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-17T13:17:55.000Z","size":29,"stargazers_count":58,"open_issues_count":9,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-02T20:34:25.162Z","etag":null,"topics":["pico-sdk","pico-wireless","raspberry-pi-pico-w"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krzmaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-07-24T22:08:40.000Z","updated_at":"2025-04-08T21:53:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4532f12-898b-4c1d-9cf3-684cbf732a36","html_url":"https://github.com/krzmaz/pico-w-webserver-example","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/krzmaz/pico-w-webserver-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzmaz%2Fpico-w-webserver-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzmaz%2Fpico-w-webserver-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzmaz%2Fpico-w-webserver-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzmaz%2Fpico-w-webserver-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krzmaz","download_url":"https://codeload.github.com/krzmaz/pico-w-webserver-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krzmaz%2Fpico-w-webserver-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29121945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T10:47:47.471Z","status":"ssl_error","status_checked_at":"2026-02-05T10:45:08.119Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["pico-sdk","pico-wireless","raspberry-pi-pico-w"],"created_at":"2024-08-02T17:01:04.030Z","updated_at":"2026-02-05T12:42:17.006Z","avatar_url":"https://github.com/krzmaz.png","language":"C++","funding_links":[],"categories":["Resources"],"sub_categories":["Projects"],"readme":"## Example of a web server using Pico SDK and lwIP\nThis example was described in more detail in a blog post: https://krzmaz.github.io/2022-08-15-creating-a-web-server-on-raspberry-pi-pico-w-using-pico-sdk-and-lwip/  \nIn my testing it reached ~20x performance of the MicroPython implementation from point 3.9.1 of https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf\n\nIf you want to test this example with your html files, just add/edit them in the `src/fs` directory and rebuild the project! \n\n---\n### Dependencies:\n- CMake 3.19+\n- ARM GNU toolchain\n- [Perl](https://www.perl.org/get.html) (should be already present on *nix systems)\n\nFor the first two you can refer to [these instructions](https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf#%5B%7B%22num%22%3A39%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C115%2C841.89%2Cnull%5D)\n\n---\n\n### One time setup\n```bash\ncp cmake/credentials.cmake.example cmake/credentials.cmake\n# \u003cfill in your credentials\u003e\n```\n### Building\n```bash\n./build.sh\n```\n\n### Flashing\nThe built USB Flashing Format file will be located in `build/src/pico_w_webserver.uf2` - just copy it over to the Pico W to flash it!\n\n### SSI\nNow the example uses Server Side Includes (SSI) to introduce dynamic data into the HTML responses.  \nAs per documentation:\n\u003e SSI-enabled pages must have one of the predefined SSI-enabled file extensions\n\nWhich means that no cost should be introduced in non SSI pages\n### References\n- https://www.nongnu.org/lwip/2_1_x/group__httpd.html\n- https://github.com/lwip-tcpip/lwip/tree/master/contrib/examples/httpd\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrzmaz%2Fpico-w-webserver-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrzmaz%2Fpico-w-webserver-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrzmaz%2Fpico-w-webserver-example/lists"}