* added bin folder * removed published_secrets.txt * added single key publisher * read and republish * some changes * made everything nice * added RetrySettings * added resilient client * fmt * renamed package * readme * added user key republisher * fmt * extracted DB and homeserver core from mod * homeserver packet republish periodically * small changes * with final message * conditional republish * fmt * clippy * moved bin to examples * improved readme * handle relay only clients * handled no dht available * ignore corrupt users * handle heed entry errors * improved unwraps * fixes * fixes * added republish interval to config * use warn when some keys are missing * removed old todo * fixes * fmt * fix relays * use resilient client in homeserverkeyrepublisher * moved some news to default * more defaults * fixed tests * fmt * test * removed resilient client for homeserver publish again * clippy * made code simpler * refactored code * added .vscode to gitingore * resutlt match
An open protocol for per-public-key backends for censorship resistant web applications.
The Web, long centralized, must decentralize; Long decentralized, must centralize.
Overview
Pubky-core combines a censorship resistant public-key based alternative to DNS 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.
Features
- Public key based authentication.
- Public key based 3rd party authorization.
- Key-value store through PUT/GET/DELETE HTTP API + pagination.
Getting started
This repository contains a Homeserver, and a Client (both Rust and JS wasm bindings).
You can a run a local homeserver using cargo run with more instructions in the README.
Check the Examples directory for small feature-focesed examples of how to use the Pubky client.
JavaScript
If you prefer to use JavaScript in NodeJs/Browser or any runtime with Wasm support, you can either install from npm @synonymdev/pubky
or build the bindings yourself:
cd pubky/pkg
npm i
npm run build
Testing
There are unit tests for the JavaScript bindings in both NodeJs and headless web browser, but first you need to run a local temporary Homeserver
npm run testnet
Then in a different terminal window:
npm test