{"id":21109911,"url":"https://github.com/pubky/pubky-core","last_synced_at":"2025-07-08T16:32:52.691Z","repository":{"id":260222314,"uuid":"728735154","full_name":"pubky/pubky-core","owner":"pubky","description":"An open protocol for per-public-key backends for censorship resistant web applications.","archived":false,"fork":false,"pushed_at":"2024-11-14T12:30:06.000Z","size":3508,"stargazers_count":28,"open_issues_count":23,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-14T13:24:30.580Z","etag":null,"topics":["client-server","cloud","pkarr","publickey-authentication","web"],"latest_commit_sha":null,"homepage":"https://pubky.github.io/pubky-core/","language":"Rust","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/pubky.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,"publiccode":null,"codemeta":null}},"created_at":"2023-12-07T15:23:01.000Z","updated_at":"2024-11-13T12:51:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"77950548-b8ab-4b69-8731-4bc9cf48a044","html_url":"https://github.com/pubky/pubky-core","commit_stats":null,"previous_names":["pubky/pubky-core"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pubky%2Fpubky-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pubky%2Fpubky-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pubky%2Fpubky-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pubky%2Fpubky-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pubky","download_url":"https://codeload.github.com/pubky/pubky-core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225449510,"owners_count":17476097,"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":["client-server","cloud","pkarr","publickey-authentication","web"],"created_at":"2024-11-20T00:57:18.343Z","updated_at":"2025-07-08T16:32:52.685Z","avatar_url":"https://github.com/pubky.png","language":"Rust","readme":"\u003ch1 align=\"center\"\u003e\u003ca href=\"https://pubky.org/\"\u003e\u003cimg alt=\"pubky\" src=\"./.svg/pubky-core-logo.svg\" width=\"200\" /\u003e\u003c/a\u003e\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e\n\tAn open protocol for per-public-key backends for censorship resistant web applications.\n\u003c/h3\u003e\n\n\n\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e\n    \u003ca href=\"https://pubky.github.io/pubky-core/\"\u003e\n      Docs Site\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://docs.rs/pubky\"\u003e\n      Rust Client's Docs\n    \u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://www.npmjs.com/package/@synonymdev/pubky\"\u003e\n      JS bindings \n    \u003c/a\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n[![GitHub Release](https://img.shields.io/github/v/release/pubky/pkdns)](https://github.com/pubky/pubky-core/releases/latest/)\n[![Crates.io Version](https://img.shields.io/crates/v/pubky)](https://crates.io/crates/pubky)\n[![Telegram Chat Group](https://img.shields.io/badge/Chat-Telegram-violet)](https://t.me/pubkycore)\n[![GitHub License](https://img.shields.io/github/license/pubky/pubky-core)](https://github.com/pubky/pubky-core/blob/main/LICENSE)\n\n\u003e The Web, long centralized, must decentralize; Long decentralized, must centralize.\n\n## Overview\n\nPubky-core combines a [censorship resistant public-key based alternative to DNS](https://pkarr.org) with conventional, tried and tested web technologies, to keep users in control of their identities and data, while enabling developers to build software with as much availability as web apps, without the costs of managing a central database.\n\n## Features\n- Public key based authentication.\n- Public key based 3rd party authorization.\n- Key-value store through PUT/GET/DELETE HTTP API + pagination.\n\n## Getting started\n\nThis repository contains a [Homeserver](./pubky-homeserver), and a [Client](./pubky-client) (both Rust and JS wasm bindings).\nYou can a run a local homeserver using `cargo run` with more instructions in the README.\nCheck  the [Examples](./examples) directory for small feature-focesed examples of how to use the Pubky client.\n\n### JavaScript\nIf you prefer to use JavaScript in NodeJs/Browser or any runtime with Wasm support, you can either install from npm [`@synonymdev/pubky`](https://www.npmjs.com/package/@synonymdev/pubky)\nor build the bindings yourself:\n```bash\ncd pubky-client/pkg\nnpm i\nnpm run build\n```\n\n#### Testing\nThere are unit tests for the JavaScript bindings in both NodeJs and headless web browser, but first you need to run a local temporary Homeserver\n```bash\nnpm run testnet\n```\nThen in a different terminal window:\n```bash\nnpm test\n```\n\n### Docker\n\nAn alternative way to start tinkering with Pubky is to build an isolated container and run it locally. Here is an \nexample command how to build an image:\n\n```bash\ndocker build --build-arg TARGETARCH=x86_64 -t pubky:core .\n```\n\nA command for running it in an isolated environment with log output:\n\n```bash\ndocker run -it pubky:core\n```\n\nAdditional optional arguments can be used to run it in the background, but the most important is `--network=host`, which allows the container to access the network and provides an admin endpoint accessible from the host machine. Please refer to the Docker documentation for more detailed options.\n\n## Links\n\n- [Contributors Guide](./CONTRIBUTORS.md)","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpubky%2Fpubky-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpubky%2Fpubky-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpubky%2Fpubky-core/lists"}