2 releases
Uses new Rust 2024
new 0.0.1 | Apr 25, 2025 |
---|---|
0.0.0 | Apr 23, 2025 |
#16 in #nostr-relay
102 downloads per month
41KB
977 lines
Broadcastr
Vendor lock-free stateless alternative to blastr with additional features:
💡 Usage 👁️
Usage: broadcastr --listen <listen> --relays <relays> [--blocked-relays <blocked-relays>] [--tor-proxy <tor-proxy>] [--proxy <proxy>] [--min-pow <min-pow>] [--allowed-pubkeys <allowed-pubkeys>] [--disable-mentions] [--max-events-per-min <max-events-per-min>] [--allowed-kinds <allowed-kinds>] [--disable-gossip] [--disable-spam-nostr-band] [--update-interval <update-interval>] [--max-backoff-interval <max-backoff-interval>] [--connection-timeout <connection-timeout>] [--request-timeout <request-timeout>] [--log-level <log-level>] [--tcp-backlog <tcp-backlog>] [--max-msg-size <max-msg-size>] [--max-frame-size <max-frame-size>]
Broadcast Nostr events to other relays
Options:
--listen the listener ws URI (e.g. "ws://localhost:8080")
--relays relays or relay-list URIs (comma-separated, e.g.
"https://api.nostr.watch/v1/online,file:///path/to/relays-in-array.json,ws://1.2.3.4:5678")
--blocked-relays same, but for ignored relays; put public URL to your
broadcastr here to avoid loops
--tor-proxy connect to tor onion relays using socks5 proxy (e.g.
"127.0.0.1:9050")
--proxy connect to all relays using socks5 proxy
--min-pow pow difficulty limit (NIP-13)
--allowed-pubkeys authors or mentioned authors (comma-separated
hex/bech32/NIP-21 allow-list)
--disable-mentions
disallow mentions (of the allowed authors) by others
(default is false)
--max-events-per-min
max events by author per minute (default is 5)
--allowed-kinds limit event kinds with (comma-separated allow-list, e.g
"0,1,3,5,6,7,4550,34550")
--disable-gossip don't discover additional relays from user profiles
--disable-spam-nostr-band
don't use spam.nostr.band for spam filtering
--update-interval relays and spam-lists update interval (default is 15m)
--max-backoff-interval
max update backoff interval (default is 5m)
--connection-timeout
connection timeout (default is 15s)
--request-timeout request timeout (default is 10s)
--log-level log level (default is info)
--tcp-backlog max incoming connections per listener IP address
--max-msg-size event message size
--max-frame-size ws frame size
-h, --help display usage information
Install
From crates.io
cargo install --locked broadcastr
From git
cargo install --locked --force --git https://github.com/codonaft/broadcastr
Run
broadcastr --listen ws://localhost:8080 --relays https://api.nostr.watch/v1/online
Support
I'm currently investing all my time in FOSS projects.
If you found this repo useful and you want to support me, please
Your support keeps me going ❤️ (◕‿◕)
License
MIT/Apache-2.0
Dependencies
~27–42MB
~635K SLoC