Commit Graph

95 Commits

Author SHA1 Message Date
987dc492a6 97 mbps !!! super fast
dosen't flush every message, pulls batches from the queue to send, and flushes at the end of each batch.
batches are a min of 1 message, but may be more.
2026-01-01 19:16:58 +00:00
86558986ef Slower, but probably more correct 2026-01-01 18:50:52 +00:00
ca95c9a06c Lock subs when reading it
should probably make a copy instead of doing io in the mutex
2026-01-01 18:50:03 +00:00
ec1912ba7e Use a small stack buffer for client io 2026-01-01 16:55:04 +00:00
7baa2ed2ec Use master yazap
Works against the latest master branch for zig again :)
2026-01-01 16:29:29 +00:00
45bd63dbe1 Actually fast again???
way faster than before even??

coder@08714a4174bb:~$ nats bench pub foo -s localhost:4223
05:12:23 Starting Core NATS publisher benchmark [clients=1, msg-size=128 B, msgs=100,000, multi-subject=false, multi-subject-max=100,000, sleep=0s, subject=foo]
05:12:23 [1] Starting Core NATS publisher, publishing 100,000 messages
Finished      0s [====================================================================================] 100%

NATS Core NATS publisher stats: 574,666 msgs/sec ~ 70 MiB/sec ~ 1.74us

So cool.

src/server/client.zig JJ: M src/server/main.zig JJ: JJ: Lines starting with "JJ:" (like this one) will be 
removed.
2026-01-01 05:22:03 +00:00
5dea33367e reorganize some things 2026-01-01 05:22:03 +00:00
f289ab7893 Rename ClientState to Client 2026-01-01 05:22:03 +00:00
4fcb9e3943 Heap allocate client buffers 2026-01-01 05:22:02 +00:00
0233bc278c Avoid queues completely
This is quite slow
2026-01-01 05:22:02 +00:00
b447883d10 Reorganized things 2026-01-01 05:22:02 +00:00
7af7a30ed2 things are running quite smoothly!!!
coder@08714a4174bb:~$ nats bench sub foo -s localhost:4223
03:28:04 Starting Core NATS subscriber benchmark [clients=1, msg-size=128 B, msgs=100,000, multi-subject=false, subject=foo]
03:28:04 [1] Starting Core NATS subscriber, expecting 100,000 messages
Finished      6s [====================================================================================] 100%

NATS Core NATS subscriber stats: 14,691 msgs/sec ~ 1.8 MiB/sec ~ 68.06us
2026-01-01 05:22:02 +00:00
a781876038 Simplified a ton of things and cleaned up ownership 2026-01-01 05:22:02 +00:00
0f138e5984 some cleanup and freeing 2026-01-01 05:22:02 +00:00
e60a566a7c Cleanup client
Break up creating and starting the client process.
I think this should simplify storing the std.Io.Queue on the stack.
Before I was storing it on the heap because it was hard to make it point to the same location if I was initializing the client on the stack.
2026-01-01 05:22:02 +00:00
1cbd030037 Rename assert to expect
Assert implies panic, expect implies error
2026-01-01 05:22:02 +00:00
1b6447a986 Fix sub parse bug
Was accidentally consuming one more byte than I was expecting when reaching the end of the second term.
This was causing the parser to work properly in the case that a queue group was specified, but failing and consuming the next message (usually a PING) as the SID.
2025-12-31 00:56:34 +00:00
d4566eba52 Reuse port
This lets me dev cycle faster
Shouldn't have to do this though, should be cleaning up properly
2025-12-31 00:55:38 +00:00
fe4c1d410b More cleanup 2025-12-29 04:56:54 +00:00
b9d0672971 Parsing cleanup 2025-12-29 04:49:25 +00:00
4bf5ddca15 publish works
starting to use errors instead of unreachable for stream parsing
2025-12-29 04:23:16 +00:00
335c4aa092 2025-12-29 00:35:06 +00:00
18f4475aaf 2025-12-28 22:22:33 +00:00
50870da1d9 made some progress on subscriptions 2025-12-10 00:11:12 -05:00
5fd580045d Add branch hint for message publish 2025-12-09 21:16:44 -05:00
45e8c4cc08 sending errors on pub sub! 2025-12-09 18:22:41 -05:00
30cc017081 The issue was the writer is not working to send pong ?? 2025-12-09 17:56:07 -05:00
1eeb55ff4d Made progress, but not perfect.
the message isn't crossing container boundaries, but it works in the
test!
2025-12-08 21:09:16 -05:00
826da348a5 2025-12-06 19:45:05 -05:00
4afdf32beb 2025-12-02 22:03:17 -05:00
aceb671ddc 2025-12-02 19:53:03 -05:00
41f4ee721b Switch from clap to yazap
This is compatible with the latest 0.16.0 nightly build.
It is also a bit less magic than clap.
2025-11-29 22:46:29 -05:00
bd9ed88e5c 2025-11-29 18:30:39 -05:00
c6dfcc541d Can handle PUB 2025-11-25 16:33:31 -05:00
474df6deed 2025-11-23 14:32:14 -05:00
dbf189adc0 2025-11-21 13:12:02 -05:00
5471cbe155 Process pub 2025-11-19 09:49:37 -05:00
938504e12e Parse connect properly 2025-11-19 08:50:18 -05:00
51008cd7e1 2025-11-19 08:44:40 -05:00
d6d177aede 2025-11-18 13:25:01 -05:00
c1c1fc51d6 Trying to pump data from nats client to stdout 2025-11-18 13:25:01 -05:00
6e8d016f2f Serve 5 clients before quitting 2025-11-18 13:25:01 -05:00
6cfaba958e Print some basic server info to stderr 2025-11-18 13:25:01 -05:00
432b06fc6a Add clap dependency
Will be used for argument parsing
2025-11-18 13:23:08 -05:00
69dfe44a96 Initial commit 2025-11-18 13:23:08 -05:00