nostr-relay


Namenostr-relay JSON
Version 1.14 PyPI version JSON
download
home_pagehttps://code.pobblelabs.org/nostr_relay
Summarynostr relay
upload_time2024-06-05 02:41:54
maintainerNone
docs_urlNone
authorDave St.Germain
requires_python>=3.9
licenseBSD 3-Clause License
keywords protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 4.97633s