fiatjaf
97424e363a
allow using a custom http client.
...
fixes nostr:nevent1qvzqqqqx25pzqm8ksn7p6aak225sed38vlzngtuwl50tf0e8ahzuzkhpmuahzgzdqyd8wumn8ghj7cmpvd5x2v3wwpexjmtpdshxuet59amrzqg4waehxw309aex2mrp0yhxgctdw4eju6t09uqzq8r9r4par63whq6px0af5uxtkkx0psydtamq6rdcva248l27l2szensns3
2025-12-18 12:03:42 -03:00
fiatjaf
4b2cec9c6d
proper relay pinging disconnection.
...
from https://github.com/nbd-wtf/go-nostr/pull/200
2025-11-13 16:37:09 -03:00
fiatjaf
c20ca669cd
nip77: more interface fixes to prevent channel deadlock.
2025-11-13 16:12:10 -03:00
fiatjaf
c2ab9d082c
*connection to be an integral part of *Relay.
2025-11-12 09:47:26 -03:00
fiatjaf
69c0981b51
address closeMutex deadlock by canceling the relay connection context on doClose().
2025-08-23 10:08:45 -03:00
fiatjaf
31a590ee4f
fix sending on close channel with yet another mutex.
2025-08-23 09:16:12 -03:00
fiatjaf
6592319774
stop exposing connection, more debugLog calls and properly fail subscriptions when a relay dies.
2025-07-13 14:21:15 -03:00
fiatjaf
9f8b810882
fix main relay context being canceled instead of just the dial context.
2025-07-11 13:01:04 -03:00
fiatjaf
7289da9c72
improve/refactor websocket connections hoping this will fix the undetected disconnections we're seeing.
...
this commit also remove all the sonic envelope parsing and reintroduces filters in REQ as a slice instead of as a singleton.
why? well, the sonic stuff wasn't really that fast, it was a little bit but only got fast enough once I introduced unsafe conversions between []byte and string and did weird unsafe reuse of []byte in order to save the values of tags, which would definitely cause issues in the future if the caller wasn't aware of it (and even if they were, like myself).
and the filters stuff is because we abandoned the idea of changing NIP-01 to only accept one filter per REQ.
2025-07-10 22:58:37 -03:00
fiatjaf
15c6093c9b
define a nostr.Kind type for event kinds, make adjustments everywhere and fix some horrible bugs with mmm, lmdb and badger querying and deleting.
2025-04-20 11:15:41 -03:00
fiatjaf
5bfaed2740
docstrings for many functions.
2025-03-04 11:42:44 -03:00
fiatjaf
1f36d7a9f1
increase websocket message limit to an absurd of 33MB.
2025-02-12 15:42:00 -03:00
fiatjaf
3e1c0ddc7e
fix pinging relays: use the main relay context, not the relay connection temporary context.
2025-01-17 14:08:54 -03:00
fiatjaf
06a15fdaab
follow list fetching test and related changes and fixes.
...
- make BatchedSubManyEose() use a single duplicate id index and use it for replaceable loaders;
- fixes parsing follow entry from kind:3 events (and others);
- adds a "cause" to most cancelation errors in relay/pool;
- remove the inherent cache from dataloader (we have our own hopefully);
- increase max frame size we can read from any websocket to 2**18 (262k), which gives over 2000 item lists.
2025-01-17 13:44:51 -03:00
fiatjaf
defc349e57
use coder/websocket for everything, get rid of gobwas.
...
supposedly it is faster, and anyway it's better to use it since we're already using it for wasm/js.
(previously named nhooyr/websocket).
2025-01-03 01:15:17 -03:00
reis
63919cf685
support wasm ( #163 )
2025-01-02 09:42:04 -03:00
fiatjaf
a35cdff6c8
problem: connection can be nil when writing and we're panic'ing.
2024-06-21 09:32:53 -03:00
ice-cronus
c0f1c4f510
add option to connect with custom TLS
2024-03-28 15:54:12 -03:00
Yasuhiro Matsumoto
d6baa2f74c
separate msgState for reader/writer
2023-11-06 13:29:19 -03:00
fiatjaf
35faff858a
reuse buffer when reading messages from websocket.
2023-07-30 17:12:30 -03:00
fiatjaf
030c1d1898
get rid of mutexes and use a single loop to prevent races.
...
in the meantime change the API to makes a little less error-prone.
2023-06-21 19:55:43 -03:00
Isaque Veras
58d56abe05
fix: removing redundancy
2023-06-12 08:18:29 -03:00
fiatjaf
fa00133825
websocket to send text, not binary.
2023-05-11 10:09:43 -03:00
fiatjaf
ccbb44989f
get rid of WriteJSON() and replace calls with manually marshaled envelopes.
2023-05-09 17:02:22 -03:00
Marc Tarnutzer
69b9d82bb1
check if messages are compressed on receive
2023-05-06 01:48:01 +02:00
Marc Tarnutzer
c86e907142
enable compression by default
2023-05-05 22:00:25 +02:00
Marc Tarnutzer
ee9502bc3e
fix: outgoing pings
2023-05-05 12:14:29 +02:00
Marc Tarnutzer
f152a5e0c7
simplify connection close
2023-05-04 23:54:39 +02:00
Marc Tarnutzer
9c01ead91f
switch to gobwas/ws, add compression
2023-05-04 23:51:15 +02:00
fiatjaf
326d2790de
rename interface{} to any.
2023-04-12 12:14:24 -03:00
fiatjaf
329b8d44d2
move stuff back from nostr package to top level.
...
because otherwise the path must be specified as github.com/fiatjaf/go-nostr/nostr, which is annoying.
2022-11-04 08:22:13 -03:00
BitcoinCoderBob
9549c3624a
nostr package, readme updates accordingly, matching example program ( #14 )
2022-10-12 17:24:30 -03:00
Honza Pokorny
a3df2cb893
Add mutexes around websockets
...
We replace the bare websocket.Conn type with a new Connection type which
implements `WriteJSON`, `WriteMessage`, and `Close`. The Connection
type adds mutexes around writes since gorilla doesn't support concurrent
writes to websockets.
Signed-off-by: Honza Pokorny <honza@pokorny.ca >
2022-01-12 12:19:33 -03:00