Skip to content

Epic: Proven Core — formal verification and crate restructuring #262

Closed

Description

@strawgate

Summary

Restructure logfwd into a proven core architecture with formal verification (Kani), portable SIMD (wide crate), and streaming structural character detection.

Current status (2026-04-04)

Done

Remaining

Note: Phase 8 (no_std) completed ahead of schedule (done as Phase 1d).

Architecture

logfwd-core         #![no_std], #![forbid(unsafe_code)], proven
  structural.rs     StructuralIndex + wide SIMD + Kani proofs
  scanner.rs        Sequential bitmask consumer (trailing_zeros)
  framer.rs         Newline bitmask → line ranges
  aggregator.rs     CRI P/F merging
  pipeline/         BatchTicket + PipelineMachine typestates

logfwd-arrow        Arrow builders (StreamingBuilder, StorageBuilder)
logfwd-io           File tailer, diagnostics, checkpoint, enrichment, compression
logfwd-transform    DataFusion SQL transforms
logfwd-output       OTLP, Elasticsearch, Loki, Parquet, JSON lines
logfwd-config       YAML parsing and validation

Key decisions

See dev-docs/DECISIONS.md:

  • Two-stage architecture: SIMD detects (parallel), scanner consumes (sequential)
  • Streaming per-block: no stored bitmask vectors (simdjson pattern)
  • Portable SIMD via wide crate: no hand-rolled platform backends
  • Three-layer verification: Kani (scalar) → proptest (SIMD ≡ scalar) → Kani (consumers)
  • Opaque checkpoints: generic over type C (u64 for file, i64 for Kafka, String for journald)

Activity

  1. added
    P3: lowPolish, refactor, research, tooling, minor UX
    on Apr 2, 2026
  2. strawgate commented on Apr 4, 2026

    @strawgate
    OwnerAuthor

    Resolved (epic scope complete). Verified: logfwd-core is #![no_std] + #![forbid(unsafe_code)], 108 Kani proofs across 14 files, logfwd-arrow crate with zero-copy StringViewArray, proptest SIMD/scalar conformance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3: lowPolish, refactor, research, tooling, minor UXenhancementNew feature or requestperformancePerformance optimization

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions