Greg Heartsfield
6800c2e39d
improvement: add NostrRepo trait, with sqlite implementation
...
This is inspired by the work of
v0l (https://github.com/v0l/nostr-rs-relay/ ).
A new trait abstracts the storage layer with an async API. Rusqlite
is still used with worker threads, but this allows for Postgresql or
other backends to be used.
There may be bugs, this has not been rigorously tested.
2023-01-22 09:49:49 -06:00
Greg Heartsfield
b80b54cd9d
improvement: reduce logging, especially for database pool size
2022-12-22 15:47:33 -06:00
Greg Heartsfield
0b9778d6ca
refactor: simplify tracking of subscriptions
2022-12-17 20:46:58 -06:00
Greg Heartsfield
838aafd079
improvement: consistent log messages for client/sub ids
2022-12-16 15:22:27 -06:00
William Casarin
7adc5c9af7
perf: dont create intermediate vecs when matching subs
...
Avoid creating intermediate vectors when matching subscriptions. We can
just iterate over the hashmap directly.
2022-11-09 07:30:43 -06:00
Greg Heartsfield
ac345b5744
refactor: do not quote server-generated client id in logs
2022-11-05 15:59:39 -05:00
Greg Heartsfield
8ecce3f566
feat: show client IP in logs
2022-11-02 18:33:44 -05:00
Greg Heartsfield
6633f8b472
feat: replace logging with tracing
2022-09-28 07:19:59 -05:00
Greg Heartsfield
bef7ca7e27
refactor: misc clippy suggestions
2022-09-24 09:19:16 -05:00
Greg Heartsfield
a98708ba47
refactor: misc clippy suggestions
2022-09-24 09:01:09 -05:00
Greg Heartsfield
01d81db617
improvement: log client id for subscription removal
2022-08-21 09:11:38 -07:00
Greg Heartsfield
55bb6bd440
feat: add resource limits for websocket messages
2021-12-19 16:26:32 -06:00
Greg Heartsfield
49598b2c9e
fix: subscription event filtering bugs
...
Subscriptions properly filter using the authors tag. Petname/keys are
correctly filtered (previously the event tags were incorrectly used).
2021-12-14 21:38:26 -06:00
Greg Heartsfield
531f6c4624
feat: improved NOTICE messages for events and subscriptions
2021-12-12 10:50:16 -06:00
Greg Heartsfield
56c40f2be9
refactor: improve error messages
2021-12-12 10:03:28 -06:00
Greg Heartsfield
e732f918f9
refactor: clippy suggestions
2021-12-11 21:56:52 -06:00
Greg Heartsfield
ca0f01c94b
docs: add rustdoc comments
2021-12-11 21:43:41 -06:00
Greg Heartsfield
23f47899cd
feat: broadcast events that match active client subscriptions
...
A broadcast channel sends messages to all connections. Any connection
with a subscription that matches then sends it via websocket.
2021-12-05 20:28:02 -06:00
Greg Heartsfield
8b4c43ae71
feat: add and remove subscriptions from client requests
...
A hashmap of active subscriptions is maintained for each client. REQ
and CLOSE commands will modify the subscription list.
2021-12-05 18:14:14 -06:00
Greg Heartsfield
92e9a5e639
feat: parse and validate events from websockets
...
Establishes a websocket listener, parses events, and performs
validation to ensure valid signatures.
2021-12-05 16:53:26 -06:00