60 Commits
Author SHA1 Message Date
Jonathan Jogenfors 095f84a626 chore: esm (#60) 2026-09-26 18:22:54 -04:00
renovate[bot] 54507514b4 chore(deps): update node.js to v24.21.0 (#58)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-23 17:28:40 -04:00
renovate[bot] f25325ac2d chore(deps): update dependency @types/node to ^24.13.5 (#56)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-23 17:10:20 -04:00
Jonathan Jogenfors 41a2a21bd7 fix: separate data and error arrays (#49)
* fix: separate data and error arrays

* serialize immediately
2026-09-23 16:55:17 -04:00
immich-tofu[bot] f9c15b18c5 chore: modify SECURITY.md 2026-06-02 21:57:47 +00:00
immich-tofu[bot] 8e4fecc1b2 chore: modify .github/FUNDING.yml 2026-06-02 21:57:45 +00:00
immich-tofu[bot] be212daa79 chore: modify CODE_OF_CONDUCT.md 2026-06-02 21:57:41 +00:00
immich-tofu[bot] 6d7009a7ff chore: modify .github/workflows/org-zizmor.yml 2026-05-19 10:45:15 +00:00
immich-tofu[bot] 89836f6050 chore: create renovate.json 2026-03-11 17:43:05 +00:00
immich-push-o-matic[bot] 3bc2810757 chore(main): release walkrs 0.0.13 (#48)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.13
2026-02-20 10:33:35 +01:00
Jonathan Jogenfors 495333ed4a feat: handle errors (#47) 2026-02-20 10:32:05 +01:00
immich-push-o-matic[bot] 1467871e66 chore(main): release walkrs 0.0.12 (#44)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.12
2026-02-18 22:34:49 +00:00
Jonathan Jogenfors f5c4dde72a fix: default export in package json (#45) 2026-02-18 17:21:27 -05:00
immich-tofu[bot] 8099456f0b chore: modify LICENSE to AGPL 2026-02-18 21:02:34 +00:00
immich-push-o-matic[bot] 218102926c chore(main): release walkrs 0.0.11 (#43)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.11
2026-02-18 20:59:26 +00:00
Jason Rasmussen 7753c668ce fix: publish workflow (#42) 2026-02-18 15:58:23 -05:00
immich-push-o-matic[bot] 8addcff7dd chore(main): release walkrs 0.0.10 (#41)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.10
2026-02-18 20:32:46 +00:00
Jonathan Jogenfors 9fff2cbbfc chore: add chore to release please (#40) 2026-02-18 20:31:02 +00:00
immich-push-o-matic[bot] 3f206d3f4a chore(main): release walkrs 0.0.9 (#39)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.9
2026-02-18 17:47:28 +00:00
Jonathan Jogenfors 8dcd9e7420 fix: cleanup benchmarks (#38)
chore: cleanup benchmarks
2026-02-18 17:13:03 +00:00
Mert 062cb271a2 chore: bundle node binaries (#37)
bundle node binaries
2026-02-18 17:11:28 +00:00
immich-push-o-matic[bot] 0469dbd3c6 chore(main): release walkrs 0.0.8 (#35)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.8
2026-02-18 11:16:33 +01:00
Jonathan Jogenfors d187f9b707 fix: repo url (#36) 2026-02-18 09:58:29 +01:00
Mert e76d8cb0f1 feat: backpressure and fewer allocations (#29)
* tweaks

* reduce allocations

* backpressure
2026-02-18 09:45:44 +01:00
Mert da56ca463d chore: benchmark script cleanup (#28)
bench cleanup
2026-02-18 09:45:32 +01:00
Mert 5d6088f5b4 feat: parse buffer internally (#27)
cleaner public api
2026-02-18 09:45:25 +01:00
immich-push-o-matic[bot] 7eefc88f93 chore(main): release walkrs 0.0.7 (#33)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.7
2026-02-18 09:36:28 +01:00
Jonathan Jogenfors 314cfc8055 fix: revert to 006 (#34)
fix: 006
2026-02-18 09:33:44 +01:00
Mert 4666d9778d fix: ci (#26)
fix ci
2026-02-18 09:30:08 +01:00
Jonathan Jogenfors 9d81789035 fix: revert arm64 (#32) 2026-02-18 08:34:51 +01:00
immich-push-o-matic[bot] 85182bfff3 chore(main): release walkrs 0.0.6 (#31)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.6
2026-02-18 02:24:42 -05:00
Jonathan Jogenfors c7ce202a84 fix: use arm64 (#30) 2026-02-18 02:21:14 -05:00
immich-push-o-matic[bot] 1ef4a0fc27 chore(main): release walkrs 0.0.5 (#25)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.5
2026-02-17 23:56:15 +00:00
Jonathan Jogenfors ffea70e667 fix: remove unneeded targets (#24) 2026-02-18 00:55:26 +01:00
immich-push-o-matic[bot] ab75dc7724 chore(main): release walkrs 0.0.4 (#23)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.4
2026-02-18 00:39:48 +01:00
Jonathan Jogenfors 0e9c603025 fix: fast-glob readme (#22) 2026-02-18 00:38:48 +01:00
Jonathan Jogenfors 4275e48533 chore: update supported platforms (#21)
chore: add cc tools
2026-02-18 00:32:59 +01:00
immich-push-o-matic[bot] 8ecf6ac09c chore(main): release walkrs 0.0.3 (#20)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.3
2026-02-18 00:10:52 +01:00
Jonathan Jogenfors dc9be379c9 fix: settings vs platforms (#19) 2026-02-18 00:09:56 +01:00
immich-push-o-matic[bot] 1975496d1f chore(main): release walkrs 0.0.2 (#17)
Co-authored-by: immich-push-o-matic[bot] <179150890+immich-push-o-matic[bot]@users.noreply.github.com>
walkrs-v0.0.2
2026-02-18 00:05:20 +01:00
Jonathan Jogenfors f83d2e67fc chore: bump release manifest (#18) 2026-02-18 00:04:06 +01:00
Jonathan Jogenfors 9152708a25 chore: remove bump-minor-pre-major (#16)
remove bump-minor-pre-major
2026-02-17 23:56:18 +01:00
Jonathan Jogenfors 4c61a30b31 chore: set bump-minor-pre-major (#14)
chore: add release please manifest file (#12)
2026-02-17 23:44:44 +01:00
Jonathan Jogenfors 927a13e2a0 chore: add release please manifest file (#12) 2026-02-17 22:21:45 +00:00
Jonathan Jogenfors 9337134f4a chore: workflows for release pipeline (#11) 2026-02-17 23:14:14 +01:00
Jonathan Jogenfors fb6c91a870 feat: add ts benchmarks (#10)
feat: benchmarks
2026-02-16 22:40:45 +01:00
Thomas 4017699442 chore: use shorter import for async generator (#9) 2026-02-16 10:52:07 +01:00
Jonathan Jogenfors a4e14e2822 chore: add tests (#7) 2026-02-15 21:40:50 +00:00
Thomas 5445b8ab1f feat: use async iterator (#6)
The async iterator API is quite ergonomic, and allows us to send paths
in batches. Sending paths in batches means that we can start processing
the paths before we've finished searching, and also makes passing
messages between rust and nodejs much faster.

I tried quite a few variants, like using a Buffer and manually
reconstructing strings, callbacks, etc.

The fastest way to pass data between rust and nodejs is by encoding /
decoding JSON. It's pretty unintuitive, but this is mainly because rust
and C++ (native JSON.parse) are way faster than constructing strings
manually with the v8 engine.

Both callbacks and iterators are quite fast, and have their own
trade-offs. The API for iterators is much more ergonomic however, so
that's what I pursued.

The performance improvement compared to the current implementation is
huge. Up to 2-3x in some cases.

	❯ hyperfine 'node example/old.ts' 'node example/stream.ts' 'node example/main.ts'
	Benchmark 1: node example/old.ts
	Time (mean ± σ):      2.007 s ±  0.478 s    [User: 2.572 s, System: 2.357 s]
	Range (min … max):    1.619 s …  3.326 s    10 runs

	Benchmark 2: node example/stream.ts
	Time (mean ± σ):      1.234 s ±  0.258 s    [User: 2.976 s, System: 2.811 s]
	Range (min … max):    0.913 s …  1.735 s    10 runs

	Benchmark 3: node example/main.ts
	Time (mean ± σ):      1.117 s ±  0.267 s    [User: 2.425 s, System: 2.484 s]
	Range (min … max):    0.809 s …  1.680 s    10 runs

	Summary
	node example/main.ts ran
		1.10 ± 0.35 times faster than node example/stream.ts
		1.80 ± 0.61 times faster than node example/old.ts
2026-02-15 21:36:19 +00:00
Jason Rasmussen 64b5f35ca9 chore: mise (#3) 2026-02-15 20:28:17 +00:00