Packages

Experimental Elixir library for the F3 columnar file format. A Hex release downloads precompiled NIFs for macOS Apple silicon and Linux x86_64. A git checkout compiles that native code only when F3_BUILD_NATIVE=1. Upstream F3 is a research prototype.

Current section

Files

Jump to
f3 NOTICE
Raw

NOTICE

This repository is an experimental Elixir library. It is not the upstream F3
project and it is not a production reader.

Upstream F3 is copyright 2025 Xinyu Zeng and Ruijun Meng and is licensed
under the MIT License. The research prototype lives at
https://github.com/future-file-format/F3. The format and the evaluation are
described in:

Xinyu Zeng, Ruijun Meng, Martin Prammer, Wes McKinney, Jignesh M. Patel,
Andrew Pavlo, and Huanchen Zhang. 2025. F3: The Open-Source Data File Format
for the Future. Proc. ACM Manag. Data 3, 4 (SIGMOD), Article 245.
https://doi.org/10.1145/3749163

Committed `test/fixtures/*.f3` files are generated by that upstream writer at
the commit recorded in `test/fixtures/manifest.json`. They are data, not a
copy of the upstream source tree. Upstream says the project is a research
prototype and should not be used in production. This library repeats that
warning.

The paper is published under a Creative Commons Attribution 4.0 International
License by its authors. This repository cites it. It does not redistribute
the paper.

Direct native crates, from the manifests read for this tree:

- Vortex revision `c0d89a66cbaa542bd9aa277cfdf52f2728c4b37a`. The workspace
  manifest sets `license = "Apache-2.0"`. `vortex-array`, `vortex-dtype`,
  `vortex-error`, `vortex-ipc`, and `vortex-sampling-compressor` inherit that
  field. The checkout `LICENSE` is the Apache License 2.0.
- `arrow-array` 53.3.0 and `arrow-buffer` 53.3.0, the NIF pins, each set
  `license = "Apache-2.0"`. `arrow-array` 53.0.0, the version named by the
  pinned `fff-poc` workspace, also sets `license = "Apache-2.0"`.
- `wasmtime` 28.0.0 sets `license = "Apache-2.0 WITH LLVM-exception"`.
- `fff-poc` at the pinned checkout does not set `license` in its own
  `Cargo.toml`. The workspace package field is `license = "MIT"`, and the
  checkout root `LICENSE` is the MIT License.

Those crates are fetched at build time. This package does not vendor them.
Precompiled NIFs are not published.