Commit graph

20 commits

Author SHA1 Message Date
569d7c8773
fix is_fresh
All checks were successful
Generic zig build / build (push) Successful in 29s
2026-03-03 20:53:47 -08:00
8df8c93df1
add expires and to methods
All checks were successful
Generic zig build / build (push) Successful in 27s
2026-03-03 20:49:54 -08:00
c4a59cfbd3
add forgejo ci
All checks were successful
Generic zig build / build (push) Successful in 42s
2026-02-27 09:32:52 -08:00
1ef493f282
fix bug with length-prefixed string as the last field 2026-02-27 09:27:36 -08:00
0b8ec4aa89
fix tests 2026-02-05 16:02:45 -08:00
bbb65e08b9
update versions 2026-02-04 16:46:08 -08:00
d5f6266e7c
add format functions and round trip tests 2026-01-29 08:33:45 -08:00
2846ee1cff
rename all the things/update documentation/add docs build target 2026-01-25 09:51:21 -08:00
4fbc08230e
add alloc_strings parse option/update docs 2026-01-24 13:32:25 -08:00
0e1d8bd424
pull out temporary fixed buffer allocator
performance now almost twice as fast as json:

Benchmark 1: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf
  Time (mean ± σ):      65.2 ms ±   4.0 ms    [User: 37.6 ms, System: 27.5 ms]
  Range (min … max):    60.7 ms …  79.6 ms    45 runs

Benchmark 2: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
  Time (mean ± σ):      67.8 ms ±   3.5 ms    [User: 38.8 ms, System: 29.0 ms]
  Range (min … max):    63.5 ms …  76.6 ms    42 runs

Benchmark 3: /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json
  Time (mean ± σ):     126.0 ms ±   3.8 ms    [User: 77.6 ms, System: 48.4 ms]
  Range (min … max):   120.9 ms … 135.3 ms    22 runs

Summary
  /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf ran
    1.04 ± 0.08 times faster than /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
    1.93 ± 0.13 times faster than /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json

Prior to this change:

Benchmark 1: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf
  Time (mean ± σ):      98.9 ms ±   2.8 ms    [User: 51.3 ms, System: 47.7 ms]
  Range (min … max):    95.4 ms … 106.6 ms    29 runs

Benchmark 2: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
  Time (mean ± σ):     103.1 ms ±   3.4 ms    [User: 53.8 ms, System: 49.4 ms]
  Range (min … max):    99.0 ms … 112.8 ms    28 runs

Benchmark 3: /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json
  Time (mean ± σ):     122.6 ms ±   4.4 ms    [User: 75.1 ms, System: 47.6 ms]
  Range (min … max):   117.7 ms … 130.7 ms    22 runs

Summary
  /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf ran
    1.04 ± 0.04 times faster than /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
    1.24 ± 0.06 times faster than /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json
2026-01-23 15:59:07 -08:00
415aa30f75
use arena in parse method - no perf change 2026-01-23 15:57:28 -08:00
b37fb7fb1a
switch to f64 for numbers (matches json)
That change improves performance. Before:

Benchmark 1: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf
  Time (mean ± σ):     113.8 ms ±   3.8 ms    [User: 61.2 ms, System: 52.5 ms]
  Range (min … max):   109.4 ms … 128.5 ms    26 runs

Benchmark 2: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
  Time (mean ± σ):     115.5 ms ±   4.0 ms    [User: 59.1 ms, System: 56.3 ms]
  Range (min … max):   110.8 ms … 127.1 ms    26 runs

Benchmark 3: /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json
  Time (mean ± σ):     131.5 ms ±   3.1 ms    [User: 83.2 ms, System: 48.3 ms]
  Range (min … max):   127.7 ms … 138.0 ms    23 runs

Summary
  /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf ran
    1.01 ± 0.05 times faster than /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
    1.16 ± 0.05 times faster than /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json

After:

Benchmark 1: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf
  Time (mean ± σ):      98.9 ms ±   2.8 ms    [User: 51.3 ms, System: 47.7 ms]
  Range (min … max):    95.4 ms … 106.6 ms    29 runs

Benchmark 2: /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
  Time (mean ± σ):     103.1 ms ±   3.4 ms    [User: 53.8 ms, System: 49.4 ms]
  Range (min … max):    99.0 ms … 112.8 ms    28 runs

Benchmark 3: /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json
  Time (mean ± σ):     122.6 ms ±   4.4 ms    [User: 75.1 ms, System: 47.6 ms]
  Range (min … max):   117.7 ms … 130.7 ms    22 runs

Summary
  /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/51f43613e6e43ed5/test-srf-compact.srf ran
    1.04 ± 0.04 times faster than /home/lobo/shared/srf/zig-out/bin/srf srf <.zig-cache/o/c105a3d3b0472f2e/test-srf-long.srf
    1.24 ± 0.06 times faster than /home/lobo/shared/srf/zig-out/bin/srf json <.zig-cache/o/cb2a4e8b89e72422/test-json.json
2026-01-23 15:27:24 -08:00
0aacc8b37b
add benchmarking (we are faster than json if using FBA) 2026-01-23 14:54:39 -08:00
6acf4f4fb1
remove a bunch of debug logs 2026-01-13 16:37:49 -08:00
4f7d1b930c
passing tests 2026-01-13 14:21:24 -08:00
040f84cdef
initial implementation with long format tests passing 2026-01-13 12:12:51 -08:00
1262322d18
zig init + config 2026-01-12 13:16:27 -08:00
64da60621e
add README with initial thoughts 2026-01-12 13:13:25 -08:00
34bd62d4be
add MIT license 2026-01-12 13:13:09 -08:00
cdb00e212f
initial commit 2026-01-12 13:10:25 -08:00