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/fossil/nostr_relay",
"name": "nostr-relay",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "protocol",
"author": "Dave St.Germain",
"author_email": "dave@st.germa.in",
"download_url": "https://files.pythonhosted.org/packages/b8/16/5aa0f66a8faecb16dfada414e37a82e5512083592a6587845faa67d8a559/nostr_relay-1.13.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.13",
"project_urls": {
"Homepage": "https://code.pobblelabs.org/fossil/nostr_relay"
},
"split_keywords": [
"protocol"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cb4dff0b7b0d748908c8fe810c1c651b6e25f74ebb2bd9e749cf3c97075493e8",
"md5": "028fbd3cbc173d0e7ce868738d5a284c",
"sha256": "f47e72c620efbaf81c2517dd12d225cdddda6861527681a4b26492e775ab4bcb"
},
"downloads": -1,
"filename": "nostr_relay-1.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "028fbd3cbc173d0e7ce868738d5a284c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 61573,
"upload_time": "2023-10-11T23:00:07",
"upload_time_iso_8601": "2023-10-11T23:00:07.752864Z",
"url": "https://files.pythonhosted.org/packages/cb/4d/ff0b7b0d748908c8fe810c1c651b6e25f74ebb2bd9e749cf3c97075493e8/nostr_relay-1.13-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b8165aa0f66a8faecb16dfada414e37a82e5512083592a6587845faa67d8a559",
"md5": "27ed6231a2f092408539f250c3679a37",
"sha256": "6deb67f5a79e8e3b28f9b5d2aa803e256ba1b82e11c8afbc446a9f43090ef00e"
},
"downloads": -1,
"filename": "nostr_relay-1.13.tar.gz",
"has_sig": false,
"md5_digest": "27ed6231a2f092408539f250c3679a37",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 85699,
"upload_time": "2023-10-11T23:00:22",
"upload_time_iso_8601": "2023-10-11T23:00:22.773122Z",
"url": "https://files.pythonhosted.org/packages/b8/16/5aa0f66a8faecb16dfada414e37a82e5512083592a6587845faa67d8a559/nostr_relay-1.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-11 23:00:22",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "nostr-relay"
}