This roadmap tracks release objectives, acceptance criteria, and current progress. It is intentionally concise and focuses on user-visible outcomes.
"Make PCAP processing feel native in Clojure data workflows (EDN/maps/seq/transducers)."
v0.2 (completed): OSS baseline (:xform, BPF DSL expansion, minimal L2/L3/L4 decode, CI hardening)v0.3 (completed, 2025-12-05): data-first UX improvements and decode extension stabilizationv0.4 (completed, 2025-12-10): DNS observability tooling (dns-topn, dns-qps, async behavior)v1.0.0 (released, 2026-02-23): API freeze and stable release artifactsv1.0.1 (released, 2026-02-23): documentation and publication pipeline polishv1.1.0 (release candidate, 2026-07-27): measured high-throughput paths and
staged live-capture observabilityThe v1.0 release roadmap is complete.
Completed release artifacts:
v1.0.0-rc and v1.0.0-rc.1 tags/releasesv1.0.0 tag and GitHub Release (latest)v1.0.1 patch release for docs/publication follow-uporg.clojars.nanto/paclo)CURRENT page and successful build)docs/migration-0.4-to-1.0.md)docs/cljdoc-api-contract.md)clojure -M:perf-gate) with warn/fail thresholdsnvd-clojure) in GitHub Actionseastwood, clj-kondo) and regression testsv1.0 is shipped; next work is maintenance and incremental improvements.
reduce-packets API with transducer fusionflow-topn migration to the numeric fast pathv1.1.0 to Clojars and verify cljdocv1.1.0 GitHub ReleaseThe performance track preserves the v1 data-first API and advances only when the preceding measurement gate provides evidence for the next change.
North-star targets on the reference Mac are 1.5M pps raw read, 1M pps flow projection, 200k pps compatible full decode, and a continuously improving 60-second live rate below 0.1% drop. Phase-1 measurements may revise these targets when the reason and baseline are documented.
The first reference run reached all three offline targets: 1.58M pps raw, 1.02M pps flow projection, and 299k pps compatible full decode. Parser profiling did not justify replacing the compatible parser with a second offset-based implementation. Phase 5 therefore remains focused on sustained live drop behavior; phase 6 stays conditional rather than becoming default scope.
The first 60-second buffered-immediate lo0 probe sustained approximately
369k processed pps with zero reported kernel or interface drops and about
67 MB peak heap. The local UDP generator, rather than capture, limited this
probe. Phase 5 added direct, bounded-blocking, and bounded-dropping comparison
profiles; sender, libpcap, queue, and consumer stage counters; a 0.1%
sustainability classifier; and an external-generator profile for real-NIC or
separate-host tests. Controlled overload now distinguishes queue drops from
blocking backpressure. Real-NIC measurements are still needed to find the true
maximum.
Phase 6 remains a post-v1.1 conditional investigation. Borrowed buffers, batching, parallel decode, and mmap should be attempted only when a measured workload remains below target after the compatible Phase 1-5 paths.
README.md, docs/README.md, docs/usage.md, docs/extensions.md).Can you improve this documentation? These fine people already did:
nanto & NantoEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |