This is a Python 3.9+ implementation of a [nostr](https://github.com/nostr-protocol/nostr) relay.
## Features
* Stores data in LMDB, SQLite or Postgresql. See [Storage](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/storage.md)
* [Scalable](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/performance.md) to thousands of concurrent clients
* [Dynamic allow/deny lists](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/dynamic_lists.md)
* Configurable garbage collector
* Configurable [event validators](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/storage.md)
* [Full-text indexing](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/fulltext.md)
* Can serve as a NIP-05 [identity provider](https://code.pobblelabs.org/fossil/nostr_relay/wiki?name=idp)
* Support for NIP-42 [authentication](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/authentication.md)
* Support for [rate-limiting](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/rate_limits.md)
* Supports more NIPs than any other relay implementation:
* [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md) – basic protocol
* [NIP-02](https://github.com/nostr-protocol/nips/blob/master/02.md) – contact lists
* [NIP-05](https://github.com/nostr-protocol/nips/blob/master/05.md) – verifying identity
* [NIP-09](https://github.com/nostr-protocol/nips/blob/master/09.md) – deletion events
* [NIP-11](https://github.com/nostr-protocol/nips/blob/master/11.md) – relay metadata
* [NIP-12](https://github.com/nostr-protocol/nips/blob/master/12.md) – generic tags
* [NIP-15](https://github.com/nostr-protocol/nips/blob/master/15.md) – EOSE
* [NIP-20](https://github.com/nostr-protocol/nips/blob/master/20.md) – command results
* [NIP-26](https://github.com/nostr-protocol/nips/blob/master/26.md) – delegated events
* [NIP-33](https://github.com/nostr-protocol/nips/blob/master/33.md) – parameterized replaceable events
* [NIP-40](https://github.com/nostr-protocol/nips/blob/master/40.md) – expiration events
* [NIP-42](https://github.com/nostr-protocol/nips/blob/master/42.md) – [authentication](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/authentication.md)
* [NIP-50](https://github.com/nostr-protocol/nips/blob/master/50.md) – [full-text search](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/fulltext.md)
* [NIP-65](https://github.com/nostr-protocol/nips/blob/master/65.md) – Relay lists
* Pluggable features, allowing you to use nostr_relay as a library for your own custom implementation
## Installation
`pip install nostr-relay`
To run:
`nostr-relay serve`
to change the location of the database and other settings, create a yaml config file that looks [like this](https://code.pobblelabs.org/fossil/nostr_relay/file?name=nostr_relay/config.yaml):
and run with `nostr-relay -c /path/to/config.yaml serve`
Then add `ws://127.0.0.1:6969` to your relay list.
(obviously, in production you should use a TLS certificate)
Visit [the nostr-relay fossil repository](https://code.pobblelabs.org/fossil/nostr_relay) for more information.
Raw data
{
"_id": null,
"home_page": "https://code.pobblelabs.org/nostr_relay",
"name": "nostr-relay",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "protocol",
"author": "Dave St.Germain",
"author_email": "dave@st.germa.in",
"download_url": "https://files.pythonhosted.org/packages/97/ec/4edd2e504957337e5ba3e0e73084f95926137e9bbfe0c312cae9e2bb52b2/nostr_relay-1.14.tar.gz",
"platform": null,
"description": "This is a Python 3.9+ implementation of a [nostr](https://github.com/nostr-protocol/nostr) relay.\n\n## Features\n\n* Stores data in LMDB, SQLite or Postgresql. See [Storage](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/storage.md)\n* [Scalable](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/performance.md) to thousands of concurrent clients\n* [Dynamic allow/deny lists](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/dynamic_lists.md)\n* Configurable garbage collector\n* Configurable [event validators](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/storage.md)\n* [Full-text indexing](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/fulltext.md)\n* Can serve as a NIP-05 [identity provider](https://code.pobblelabs.org/fossil/nostr_relay/wiki?name=idp)\n* Support for NIP-42 [authentication](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/authentication.md)\n* Support for [rate-limiting](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/rate_limits.md)\n* Supports more NIPs than any other relay implementation:\n * [NIP-01](https://github.com/nostr-protocol/nips/blob/master/01.md) \u2013 basic protocol\n * [NIP-02](https://github.com/nostr-protocol/nips/blob/master/02.md) \u2013 contact lists\n * [NIP-05](https://github.com/nostr-protocol/nips/blob/master/05.md) \u2013 verifying identity\n * [NIP-09](https://github.com/nostr-protocol/nips/blob/master/09.md) \u2013 deletion events\n * [NIP-11](https://github.com/nostr-protocol/nips/blob/master/11.md) \u2013 relay metadata\n * [NIP-12](https://github.com/nostr-protocol/nips/blob/master/12.md) \u2013 generic tags\n * [NIP-15](https://github.com/nostr-protocol/nips/blob/master/15.md) \u2013 EOSE\n * [NIP-20](https://github.com/nostr-protocol/nips/blob/master/20.md) \u2013 command results\n * [NIP-26](https://github.com/nostr-protocol/nips/blob/master/26.md) \u2013 delegated events\n * [NIP-33](https://github.com/nostr-protocol/nips/blob/master/33.md) \u2013 parameterized replaceable events\n * [NIP-40](https://github.com/nostr-protocol/nips/blob/master/40.md) \u2013 expiration events\n * [NIP-42](https://github.com/nostr-protocol/nips/blob/master/42.md) \u2013 [authentication](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/authentication.md)\n * [NIP-50](https://github.com/nostr-protocol/nips/blob/master/50.md) \u2013 [full-text search](https://code.pobblelabs.org/fossil/nostr_relay/doc/tip/docs/fulltext.md)\n * [NIP-65](https://github.com/nostr-protocol/nips/blob/master/65.md) \u2013 Relay lists\n* Pluggable features, allowing you to use nostr_relay as a library for your own custom implementation\n\n\n## Installation\n\n`pip install nostr-relay`\n\nTo run:\n\n`nostr-relay serve`\n\nto change the location of the database and other settings, create a yaml config file that looks [like this](https://code.pobblelabs.org/fossil/nostr_relay/file?name=nostr_relay/config.yaml):\n\nand run with `nostr-relay -c /path/to/config.yaml serve`\n\n\nThen add `ws://127.0.0.1:6969` to your relay list.\n\n(obviously, in production you should use a TLS certificate)\n\nVisit [the nostr-relay fossil repository](https://code.pobblelabs.org/fossil/nostr_relay) for more information.\n\n",
"bugtrack_url": null,
"license": "BSD 3-Clause License",
"summary": "nostr relay",
"version": "1.14",
"project_urls": {
"Homepage": "https://code.pobblelabs.org/nostr_relay"
},
"split_keywords": [
"protocol"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6cc7bad749422840bb5c3287ef19ceb45d83ec4106044abd58476a231e2c83f2",
"md5": "310ddb5230b6f015bf46d71c2799c17e",
"sha256": "a4f401a0ae2d794298ec95623961bac6bc78e47dbc7e19a2ea71317ca338e117"
},
"downloads": -1,
"filename": "nostr_relay-1.14-py3-none-any.whl",
"has_sig": false,
"md5_digest": "310ddb5230b6f015bf46d71c2799c17e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 61703,
"upload_time": "2024-06-05T02:41:51",
"upload_time_iso_8601": "2024-06-05T02:41:51.679512Z",
"url": "https://files.pythonhosted.org/packages/6c/c7/bad749422840bb5c3287ef19ceb45d83ec4106044abd58476a231e2c83f2/nostr_relay-1.14-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "97ec4edd2e504957337e5ba3e0e73084f95926137e9bbfe0c312cae9e2bb52b2",
"md5": "6ab29f5e4a06971c13cc8b6b7caa34cb",
"sha256": "0a0f4b663c510170714b67a8bc6b52a8d685b95549c00ca98f1dfa5d68c53b27"
},
"downloads": -1,
"filename": "nostr_relay-1.14.tar.gz",
"has_sig": false,
"md5_digest": "6ab29f5e4a06971c13cc8b6b7caa34cb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 79162,
"upload_time": "2024-06-05T02:41:54",
"upload_time_iso_8601": "2024-06-05T02:41:54.185862Z",
"url": "https://files.pythonhosted.org/packages/97/ec/4edd2e504957337e5ba3e0e73084f95926137e9bbfe0c312cae9e2bb52b2/nostr_relay-1.14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-05 02:41:54",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "nostr-relay"
}