This document captures the Phase H API freeze baseline for v1.0. It separates what is already fixed from what was deferred to Phase I.
paclo.core, paclo.decode-ext)paclo.corebpf
(bpf form)nilnil, string, protocol keyword, DSL vectorex-info for unknown keyword/operator/typepackets
(packets opts):path or :device:filter accepts string | keyword | vector | nil:decode? true adds :decoded or :decode-error:xform is applied via (sequence xform stream)capture->seq default stop conditions (:max, :max-time-ms, :idle-max-ms)decode-ext/apply! only when :decoded existswrite-pcap!
(write-pcap! packets out)byte-array or {:bytes ... :sec ... :usec ...} mapsout, throws ex-info on invalid outputlist-devices
(list-devices){:name "..." :desc "..."} mapspaclo.decode-extregister! [k f]: register hook (same key overwrites and moves to tail)unregister! [k]: remove hook by keyinstalled []: return hook keys in execution orderapply! [m]: apply hooks conditionally
m is map, has :decoded, does not have :decode-errorpaclo.pcap, paclo.parse, paclo.proto.* are internal namespacespaclo.core + paclo.decode-extTarget commands:
examples.pcap-filterexamples.pcap-statsexamples.flow-topnexamples.dns-qpsexamples.dns-topnShared exit codes (from examples.common):
1: missing required args (usage)2: input PCAP not found3: enum validation error (group/mode/metric/format)4: invalid flag or numeric valueShared output rules:
edn / jsonl / csv)paclo.core/bpf)Logical forms:
[:and expr ...][:or expr ...][:not expr]Protocol forms:
:udp, :tcp, :icmp, :icmp6, :arp:ip, :ipv4, :ip6, :ipv6[:proto <keyword>]Address forms:
[:host "..."][:src-host "..."][:dst-host "..."][:net "..."][:src-net "..."][:dst-net "..."]Port forms:
[:port N][:src-port N][:dst-port N][:port-range A B][:src-port-range A B][:dst-port-range A B]Error behavior:
ex-infoP3 target:
Implementation status (2026-02-23):
deps.edn baseline is 1.12.1ubuntu-24.04-arm and requiredarm64 promotion criteria (locked on 2026-02-23):
clojure -M:test, dns-ext smoke, perf-gateBaseline:
decode?=true): 879.9ms (recorded on 2025-12-04)v1.0 operational thresholds:
<= 1.2s> 1.0sEnforced via clojure -M:perf-gate in CI.
1.12.x1/2/3/4 in v1.0clojure -M:run by providing paclo.core/-maindocs/cljdoc-api-contract.md)pcap-loop-testpcap-loop-test root cause and re-integrate into required unit testsCan you improve this documentation?Edit 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 |