Paclo ライブラリの方向性・リリース計画・直近タスクをまとめたロードマップです。フェーズ単位の目的と受け入れ条件を明確にし、進捗を簡潔に追える形で管理します。開発フローや環境手順は README.md を参照してください。
「PCAPを Clojureのデータ処理 に自然合流させる、最小で快適なパケット処理ライブラリ」
:xform 対応、BPF DSL 拡張、L2/L3/L4 最小デコード、Golden PCAP、CI 安定化、最低限の README/CHANGELOG。pcap を REPL・seq・EDN にそのまま流し込める「data-first / REPL 快速」を体感できるリリースにする。
decode_ext API を後方互換で安定化し、DNS + 追加 1 拡張(TLS SNI)を同 API で動作pcap-filter / pcap-stats / flow-topn / dns-rtt が共通フラグで EDN/JSONL 切替し、エラー表示が README と一致pcap-stats / flow-topn README 補強(完了: 2025-12-03)v0.3.0 タグ作成(完了: 2025-12-05)--async/--async-buffer/--async-mode/--async-timeout-ms を追加し、同期/非同期の出力一致スモークを
test/examples/smoke_test.clj に追加git tag v0.3.0 済み(2025-12-05)docs/extensions.md に使用/制約を追記dev/decode-ext-api-plan.md と proto-dns 分離計画ドラフト dev/proto-dns-split-plan.md を作成
(現方針は alias 維持だが検討記録として保持)pcap-filter JSONL メタ出力のスモークテストを追加v0.4.0-rc から v0.4.0 をタグ発行。/tmp/paclo-mid-50k.pcap (50k pkt, caplen≈74B, :xform drop<60B)
/tmp/bench-100k.pcap (100k pkt, caplen≈74B)
test/resources/dns-sample.pcap (4 pkt)
DNS トラフィックを EDN/JSONL/CSV へ即時集計し、軽量な可観測性/セキュリティ用途にそのまま使えるツールキットを提供する。
paclo-proto-dns は同リポの :dns-ext alias として維持し、依存/ビルド時間を抑えたまま使いやすさを改善(README に alias 使い方を明示)。dns-rtt を再利用しつつ、新 CLI と共通フラグを揃える)。paclo-proto-dns が :dns-ext alias で一貫して動作し、README にセットアップ/依存手順が明示されている。--async 系フラグを含め examples と一貫し、サンプル PCAP で動作確認済み。NVD_API_TOKEN 設定付きで実行し、クリティカル CVE なしを確認。paclo-proto-dns は同リポで :dns-ext alias として維持clojure -M:dev:dns-ext -e ...)dns-sample.pcap 4pkt, dns-synth-small.pcap 10pkt synthetic)bb --version をチェックする方針。:csv alias のみ追加(デフォルト非依存)。Parquet/duckdb は未同梱の任意オプションとして
README/ROADMAP に明記し、必要時に alias で opt-in する。:dns-ext alias
の依存/起動確認を整備。 状態: 完了 (2025-12-09):dns-ext alias での
CI(lint+tests+cljdoc)を green に。状態: 完了 (2025-12-10: CI green / cljdoc dry-run / dns-topn smoke 反映、
NVD は GA Dependency Audit でクリティカルなし)v0.4.0-rc 作成。
状態: 完了 (2025-12-10: v0.4.0-rc → v0.4.0 タグ発行)dns-topn / dns-qps を実装済み(punycode opt-in+warn, async/drop/cancel, empty-bucket 補完, SNI/ALPN 集計, RFC4180 CSV)。
SNI/ALPN サンプル tls-sni-sample.pcap / tls-sni-alpn-sample.pcap / tls-sni-h3[-mix]-sample.pcap を同梱し、スモークテスト追加。--alpn-join で全 ALPN を結合)し、サンプル PCAP と smoke テストを整備済み。dns-qps に --log-punycode-fail を追加し README/Usage を同期。qname 正規化は toASCII で検証して warn を stderr 出力。test/examples/smoke_test.clj に拡充(csv ヘッダ、punycode warn)し、clojure -M:test は 2025-12-09 時点で green。dns-qps on dns-synth-small.pcap (10 pkt, bucket=1000, decode?=true)
で elapsed ≈ 16.2ms(macOS 14.4 / i7-8700B / JDK21)。-M:eastwood:dns-ext + data.xml 追加で完走(警告は boxed-math 等のみ)。
nvd は GitHub Actions Dependency Audit(secrets.NVD_API_TOKEN)で実行予定。ローカル実行時は同トークンを
NVD_API_TOKEN に設定する。dns-topn の最小 smoke (clojure -M:dev:dns-ext -m examples.dns-topn test/resources/dns-sample.pcap) を
ci.yml build ジョブに追加(2025-12-09 適用済み)。:dns-ext 経路でも壊れないことを確認(cljdoc.doc-tree の require を CI で実施、2025-12-09 適用済み)。clojure -M:nvd dev/nvd-clojure.edn "$(clojure -Spath -A:dev:dns-ext)"
を実行し、クリティカル CVE なしを確認(2025-12-10)。cljdoc/cljdoc-action@v1 が解決できず CI 失敗 → cljdoc CLI (cljdoc.main require) を直接呼び出す形に切替。make-synth-pcap を DNS 用に拡張し、小/中サイズのゴールデンを生成して同梱。:dns-ext の追加依存と起動例を明記し、CI で alias パスを走らせる。paclo-core の責務と API を 1.0 で凍結し、以後の変更を後方互換に限定できる状態を作る。破壊的変更は P3 内で完了させ、以降は deprecation ポリシーに従う。
decode / decode-ext / xform / CLI 共通フラグ / BPF DSL)、エラー/ログ契約の文書化v1.0.0 タグ発行paclo.core の公開関数(decode / decode-ext / xform / 付随ヘルパ)とオプション・戻り値キーを固定。内部 NS は非公開明示。v1.0.0-rc → v1.0.0。docs/v1-phase-h-freeze-draft.md)docs/v1-phase-h-freeze-draft.md に判断を記録)ubuntu-24.04-arm、2026-02-23 に continue-on-error 解除で required 化)clojure -M:run エラーを解消(paclo.core/-main を追加しガイド表示に統一)docs/cljdoc-api-contract.md)test/examples/cli_contract_test.clj)docs/v1-phase-h-freeze-draft.md).github/workflows/ci.yml)pcap-loop-test を非ゲート観測へ分離
(.github/workflows/ci.yml)pcap-loop-test の PointerByReference 反射代入を除去し、
arm64 required の unit tests を clojure -M:test に再統合
(.github/workflows/ci.yml, test/paclo/pcap_loop_test.clj)ex-data を含む未知 proto/op/unsupported form を固定化)
(test/paclo/core_bpf_test.clj)core/packets の invalid :filter 例外契約をテスト化(メッセージ + ex-data)
(test/paclo/core_unit_test.clj)docs/migration-0.4-to-1.0.md)v1.0.0-rc リリースチェックリストの初版を追加(ローカルゲート/CIゲート/タグ手順)
(docs/release-v1-rc-checklist.md)v1.0.0-rc ローカルゲートを実行し全コマンド成功を確認
(clojure -M:test, clojure -M:eastwood, clj-kondo --lint src test dev, clojure -M:perf-gate,
clojure -M:dev:dns-ext -m examples.dns-topn test/resources/dns-sample.pcap, cljdoc.doc-tree load)workflow_dispatch + weekly schedule)
(.github/workflows/arm64-promotion-report.yml)gh API 経由)
(dev/script/arm64_promotion_report.sh)gh run list)
(CI: 22296353769 success, Dependency Audit: 21812860426 success)CHANGELOG.md に ## [1.0.0-rc] - 2026-02-23 を追加
(CHANGELOG.md)v1.0.0-rc タグを作成して push
(git tag v1.0.0-rc, git push origin v1.0.0-rc)v1.0.0-rc GitHub Release の下書き(pre-release)を作成し、migration link / known constraints を記載
(gh release create v1.0.0-rc --draft --prerelease)v1.0.0-rc.1 タグを作成して push(git/tag+sha 依存問題の修正版)
(git tag v1.0.0-rc.1, git push origin v1.0.0-rc.1)v1.0.0-rc.1 GitHub Release の下書き(pre-release)を作成
(gh release create v1.0.0-rc.1 --draft --prerelease)v1.0.0-rc.1 を publish(pre-release 公開)
(gh release edit v1.0.0-rc.1 --draft=false --prerelease)dev/script/arm64_promotion_report.sh 14 0.95 0.05 1.5:
sample_count=7, window_covered=false, success_rate=0.714, max_duration_ratio=2.104,
eligible_for_required_gate=false)deps.edn の git/tag+sha 利用で Java クラス prep フローを整備
(deps.edn に :deps/prep-lib を追加。v1.0.0-rc.1 で clojure -X:deps prep 後に require paclo.core 成功):dns-ext alias 提供):csv alias のみ追加しデフォルト非依存、Parquet/duckdb は任意オプションとして今後もデフォルトに含めない。:csv を追加(org.clojure/data.csv)。Parquet/duckdb はデフォルト依存に含めず、今後の任意オプションで検討。Can 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 |