{"id":29192323,"url":"https://github.com/linuskmr/webpush-server","last_synced_at":"2025-07-02T01:06:12.620Z","repository":{"id":220187818,"uuid":"750783057","full_name":"linuskmr/webpush-server","owner":"linuskmr","description":"A server for registering Web Push endpoints and sending pushes using the Push API, written in Rust.","archived":false,"fork":false,"pushed_at":"2024-02-13T18:26:32.000Z","size":95,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-02-13T19:32:56.432Z","etag":null,"topics":["push-api","rust","web-push"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linuskmr.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":"2024-01-31T10:06:09.000Z","updated_at":"2024-02-03T22:22:20.000Z","dependencies_parsed_at":"2024-02-13T19:42:42.456Z","dependency_job_id":null,"html_url":"https://github.com/linuskmr/webpush-server","commit_stats":null,"previous_names":["linuskmr/webpush-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/linuskmr/webpush-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuskmr%2Fwebpush-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuskmr%2Fwebpush-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuskmr%2Fwebpush-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuskmr%2Fwebpush-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linuskmr","download_url":"https://codeload.github.com/linuskmr/webpush-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuskmr%2Fwebpush-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263056762,"owners_count":23406818,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["push-api","rust","web-push"],"created_at":"2025-07-02T01:06:12.042Z","updated_at":"2025-07-02T01:06:12.586Z","avatar_url":"https://github.com/linuskmr.png","language":"Rust","readme":"# webpush-server\n\nA server for registering [Web Push](https://web.dev/articles/push-notifications-overview) endpoints and sending pushes using the [Push API](https://developer.mozilla.org/en-US/docs/Web/API/Push_API), written in Rust.\n\n\u003e Currently work in progress\n\n\n## Usage\n\nClone this repository and [install Rust and Cargo](https://rustup.rs):\n\nInstall OpenSSL header files needed for compilation:\n\n```\nsudo apt-get install libssl-dev\n```\n\n### Push Application Keys\n\nAs described by \u003chttps://docs.rs/web-push/0.10.1/web_push/struct.VapidSignatureBuilder.html\u003e\n\nGenerate a application private key pair:\n\n```\nopenssl ecparam -name prime256v1 -genkey -noout -out private.pem\n```\n\nDerive the public key from the private key:\n\n```\nopenssl ec -in private.pem -pubout -out vapid_public.pem\n```\n\nTo get the byte form of the public key for the JavaScript client:\n\n```\nopenssl ec -in private.pem -text -noout -conv_form uncompressed\n```\n\n...or a base64 encoded string, which the client should convert into byte form before using:\n\n```\nopenssl ec -in private.pem -pubout -outform DER|tail -c 65|base64|tr '/+' '_-'|tr -d '\\n'\n```\n\n### Running\n\n```\ncargo run\n```\n\nSet logging to the debug level:\n\n```\nRUST_LOG=webpush_server=debug cargo run\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuskmr%2Fwebpush-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinuskmr%2Fwebpush-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuskmr%2Fwebpush-server/lists"}