新一代大数据文件格式
Like Parquet, but with 40% better compression and 40× faster decoding.
FastLanes features:
Fully SIMD-friendly with zero explicit SIMD instructions
Zero dependencies:
import pyfastlanes
# Connect to FastLanes
conn = pyfastlanes.connect()
# Convert a CSV directory to FastLanes format
conn.inline_footer().read_csv("path/to/csv_dir").to_fls("data.fls")
# Read back and write to CSV
reader = conn.read_fls("data.fls")
reader.to_csv("decoded.csv")
Add FastLanes as a dependency via CMake:
include(FetchContent)
FetchContent_Declare(
fastlanes
GIT_REPOSITORY https://github.com/cwida/FastLanes.git
GIT_TAG dev
)
FetchContent_MakeAvailable(fastlanes)
add_executable(example example.cpp)
target_link_libraries(example PRIVATE FastLanes)
Example usage:
#include "fastlanes.hpp"
int main() {
fastlanes::Connection conn;
conn.read_csv("data/csv_dir").to_fls("data.fls");
auto reader = fastlanes::Connection().read_fls("data.fls");
reader->to_csv("decoded.csv");
return EXIT_SUCCESS;
}
Add FastLanes Rust bindings to your Cargo.toml:
[dependencies]
fls-rs = { path = "./rust" }
use anyhow::Result;
use fls_rs::connect;
fn main() -> Result {
let mut conn = connect();
conn.inline_footer()
.read_csv("data/csv_dir")
.to_fls("data.fls");
conn.read_fls("data.fls")
.to_csv("decoded.csv");
Ok(())
}
Azim Afroozeh & Peter Boncz, “The FastLanes Compression Layout: Decoding > 100 Billion Integers per Second with Scalar Code,” PVLDB, 16(9): 2132–2144, May 2023
Azim Afroozeh, Lotte Felius & Peter Boncz, “Accelerating GPU Data Processing Using FastLanes Compression,” DaMoN ’24, Proceedings of the 20th International Workshop on Data Management on New Hardware, Santiago, Chile, June 2024
Azim Afroozeh, Leonardo Kuffó & Peter Boncz, “ALP: Adaptive Lossless Floating-Point Compression,” SIGMOD ’24, ACM SIGMOD, June 2024
Sven Hielke Hepkema, Azim Afroozeh, Charlotte Felius, Peter Boncz & Stefan Manegold, “G‑ALP: Rethinking Light‑weight Encodings for GPUs,” DaMoN ’25, July 2025
If you use FastLanes in your research or projects, please cite:
…
This project is released under the MIT License.
We welcome contributions to FastLanes!
Please see CONTRIBUTING.md for guidelines on how to get started.
Come discuss FastLanes, share feedback, and help shape the future of data formats on Discord:
暂无开放 Issues,或尚未同步最近议题。