Feature matrix

Copy Markdown

Status values: implemented, not implemented, untested. A fixture can contain a feature this library does not read. That is not support.

The local Elixir runs are recorded in test-reports/stage-0.md, test-reports/stage-1.md, test-reports/stage-2.md, test-reports/stage-3.md, test-reports/stage-4.md, and test-reports/stage-5.md. The required CI jobs are configured and have not been run from this machine.

CapabilityStatusEvidence
Open and close a local fileimplementedF3.IO.Local, contract tests
Open and close an in-memory binaryimplementedF3.IO.Memory, contract tests
HTTP range readimplementedF3.IO.HTTP. Opt-in. Redirects refused. :minio excluded unless F3_MINIO=1
Positioned read capped by the callerimplementedpread/3 tests
Idempotent close, error after closeimplementedcontract tests
Wire version constants 0.1implementedF3.Format, doctests
Reject every other wire versionimplementedF3.Postscript returns :unsupported_version
Postscript decode and bounds checksimplementedF3.Postscript, test/f3/postscript_test.exs
FlatBuffers footerimplementedF3.FlatBuffer, F3.Footer; golden JSON matches the upstream reader
Arrow schema, row groups, IOUnits, EncUnitsimplementedF3.schema/1 and F3.metadata/1 on the eight fixtures
Read rowsimplemented when F3_BUILD_NATIVE=1F3.read/2 on the eight fixtures. Default build: :native_unavailable
Lazy streamimplemented when F3_BUILD_NATIVE=1F3.stream/2 does not pread until the first pull. Enum.take/2 stops
Columnar batch and to_rows/1implementedF3.Batch stores columns. to_rows/1 is the convenience zip
Writeimplemented when F3_BUILD_NATIVE=1F3.Writer. Local temp file, rename after finish. Default build: :not_implemented
Projectionimplementedcolumns: and row_groups:. Unknown name is :invalid_projection
Postscript checksumreported, not verifiedboth u64 fields are stored
Chunk checksumimplemented when the footer field is presentXXH64 seed 0. The eight fixtures store none
CASCADE / Vortex decodeimplemented when F3_BUILD_NATIVE=1dirty CPU NIF. Does not link fff-poc
CUSTOM_WASM decode or executionopt-inDefault :off is :unsupported_encoding and does not read the section. wasm: :sandbox runs Wasmtime 28 when F3_BUILD_NATIVE=1. custom_wasm.f3 matches the manifest rows
Shared dictionaryrefused:unsupported_encoding
Local dictionary, Zstd, Lz4, nested typesimplemented when F3_BUILD_NATIVE=1round-trip of dictionary.f3, compressed_zstd.f3, compressed_lz4.f3, and nested.f3
Bool valuesimplemented when F3_BUILD_NATIVE=1writer round trip. Not present in the eight fixtures
Plain binary valuesuntestednot a claimed writer type, and not present in the eight fixtures
Optional NIFimplemented when F3_BUILD_NATIVE=1macOS arm64, rustc 1.93.0-nightly (nightly-2025-11-15), Elixir 1.20.2 / OTP 28. Default build: {:error, :native_unavailable}. Linux not run locally
macOS arm64 local Elixir testspassedElixir 1.20.2, OTP 28.3.1. mix test --cover passes the 90% threshold. See test-reports/stage-1.md.
Linux x86_64 CIconfigured, not run.github/workflows/ci.yml job test (ubuntu-latest)
macOS arm64 CIconfigured, not run.github/workflows/ci.yml job test (macos-15)
Linux arm64untestedno job
Precompiled NIF releaseconfigured, not run.github/workflows/ci.yml on a v* tag, after the test jobs. Targets: aarch64-apple-darwin, x86_64-unknown-linux-gnu. NIF version 2.17
Hex publishconfigured, not runpublish job in .github/workflows/ci.yml after that GitHub release. Requires the HEX_API_KEY secret
Upstream Intel Debian 12untested by this repoupstream's own claim, not reproduced here