{"id":34723922,"url":"https://github.com/spiraldb/fastlanes","last_synced_at":"2025-12-25T02:16:31.855Z","repository":{"id":243823772,"uuid":"813522520","full_name":"spiraldb/fastlanes","owner":"spiraldb","description":"Rust implementation of the FastLanes compression library","archived":false,"fork":false,"pushed_at":"2025-12-08T00:46:09.000Z","size":156,"stargazers_count":149,"open_issues_count":10,"forks_count":10,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-12-09T19:28:09.787Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spiraldb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-11T08:48:36.000Z","updated_at":"2025-12-05T04:59:53.000Z","dependencies_parsed_at":"2025-01-20T14:22:26.088Z","dependency_job_id":"2374ed65-7f5d-4d9d-a5e6-9601321b4029","html_url":"https://github.com/spiraldb/fastlanes","commit_stats":null,"previous_names":["spiraldb/fastlanes-rs"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/spiraldb/fastlanes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiraldb%2Ffastlanes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiraldb%2Ffastlanes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiraldb%2Ffastlanes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiraldb%2Ffastlanes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spiraldb","download_url":"https://codeload.github.com/spiraldb/fastlanes/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spiraldb%2Ffastlanes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28017198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-25T02:00:05.988Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-25T02:16:29.978Z","updated_at":"2025-12-25T02:16:31.851Z","avatar_url":"https://github.com/spiraldb.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FastLanes Rust\n\nA Rust implementation of the [FastLanes](https://github.com/cwida/FastLanes) compression library\n\n\u003e Azim Afroozeh and Peter Boncz. 2023. The FastLanes Compression Layout: Decoding \u003e 100 Billion Integers per Second with\n\u003e Scalar Code.\n\u003e Proc. VLDB Endow. 16, 9 (May 2023), 2132–2144. https://doi.org/10.14778/3598581.3598587\n\nFastLanes is a compression framework that can leverage LLVM's auto-vectorization to achieve high-performance\nSIMD decoding without intrinsics or other explicit SIMD code.\n\n## Usage\n\n```rust\nuse fastlanes::BitPacking;\n\nfn pack_u16_into_u3() {\n    const WIDTH: usize = 3;\n    const PACKED: usize = 128 * WIDTH / size_of::\u003cu16\u003e();\n\n    // Generate some values.\n    let mut values: [u16; 1024] = [0; 1024];\n    for i in 0..1024 {\n        values[i] = (i % (1 \u003c\u003c WIDTH)) as u16;\n    }\n\n    // Pack the values.\n    let mut packed = [0; PACKED];\n    BitPacking::pack::\u003cWIDTH, PACKED\u003e(\u0026values, \u0026mut packed);\n\n    // Unpack the values.\n    let mut unpacked = [0u16; 1024];\n    BitPacking::unpack::\u003cWIDTH, PACKED\u003e(\u0026packed, \u0026mut unpacked);\n    assert_eq!(values, unpacked);\n\n    // Note that for more than ~10 values, it is typically faster to unpack all values and then \n    // access the desired one.\n    for i in 0..1024 {\n        assert_eq!(BitPacking::unpack_single::\u003cWIDTH, PACKED\u003e(\u0026packed, i), values[i]);\n    }\n}\n```\n\n## Differences to original FastLanes\n\n\u003e [!CAUTION]\n\u003e Rust FastLanes is not binary compatible with original FastLanes\n\nThe BitPacking implementation in this library is reordered vs the original to enable\nfused kernels for transposed encodings (like Delta and RLE) in addition to the linear\nkernels such as FoR.\n\n## Verifying ASM\n\nTo validate the correctness of the generated assembly and ensure it is vectorized, you can use the following command:\n\n```bash\nRUSTFLAGS='-C target-cpu=native' cargo asm --profile release --bench bitpacking --rust BitPacking\n```\n\nNote, it requires `cargo install cargo-show-asm`.\n\n## Benchmarking\n\n```bash\nRUSTFLAGS='-C target-cpu=native' cargo bench --profile release\n```\n\n## License\n\nLicensed under the Apache 2.0 license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiraldb%2Ffastlanes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspiraldb%2Ffastlanes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspiraldb%2Ffastlanes/lists"}