C++ Compression

Open-source C++ projects categorized as Compression

Top 23 C++ Compression Projects

Compression
  • draco

    Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.

  • InfluxDB

    Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.

    InfluxDB logo
  • Snappy

    A fast compressor/decompressor

  • meshoptimizer

    Mesh optimization library that makes meshes smaller and faster to render

    Project mention: UE5 Nanite in WebGPU | news.ycombinator.com | 2024-09-05

    > Making a nanite mesh is complicated, with a lot of internal offsets for linking, and so far only Unreal Engine's editor does it.

    meshoptimizer [1] is an OSS implementation of meshlet generation, which is what most people think of when they think of "Nanite's algorithm". Bevy, mentioned in a sibling reply, uses meshoptimizer as the generation tool.

    (Strictly speaking, "Nanite" is a brand name that encompasses a large collection of techniques, including meshlets, software rasterization, streaming, etc. For clarity during technical discussions, I prefer to talk about individual techniques, since they're really separate, even though they complement one another. For example, software rasterization can be used without meshlets if your triangles are really small. Streaming can be useful even if you aren't using meshlets. And so on.)

    [1]: https://github.com/zeux/meshoptimizer

  • caesium-image-compressor

    Caesium is an image compression software that helps you store, send and share digital pictures, supporting JPG, PNG, WebP and TIFF formats. You can quickly reduce the file size (and resolution, if you want) by preserving the overall quality of the image.

    Project mention: GarlicOS lag | /r/RG35XX | 2023-12-10

    I use this: https://saerasoft.com/caesium

  • bolt

    10x faster matrix and vector operations (by dblalock)

  • dwarfs

    A fast high compression read-only file system for Linux, Windows and macOS

    Project mention: You can help Anna's Archive by seeding torrents | news.ycombinator.com | 2024-06-13

    I wonder if there is any benefit to using something like DwarFS (https://github.com/mhx/dwarfs) for something like this.

  • dandere2x

    Dandere2x - Fast Waifu2x Video Upscaling.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • acl

    Animation Compression Library

    Project mention: How do other motion capture suits manage large file sizes? | /r/gamedev | 2023-12-04

    Cleaned and compressed are whatever they turn out to be. Use ACL, https://github.com/nfrechette/acl

  • compressonator

    Tool suite for Texture and 3D Model Compression, Optimization and Analysis using CPUs, GPUs and APUs

  • Bareos

    Bareos is a cross-network Open Source backup solution (licensed under AGPLv3) which preserves, archives, and recovers data from all major operating systems.

  • clp

    Compressed Log Processor (CLP) is a free log management tool capable of compressing logs and searching the compressed logs without decompression. (by y-scope)

  • PGM-index

    🏅State-of-the-art learned data structure that enables fast lookup, predecessor, range searches and updates in arrays of billions of items using orders of magnitude less space than traditional indexes

  • LZHAM

    Lossless data compression codec with LZMA-like ratios but 1.5x-8x faster decompression speed, C/C++

  • EWAHBoolArray

    A compressed bitmap class in C++.

  • SIMDCompressionAndIntersection

    A C++ library to compress and intersect sorted lists of integers using SIMD instructions

  • GDCM

    Grassroots DICOM read-only mirror. Only for Pull Request. Please report bug at http://sf.net/p/gdcm

  • zpaqfranz

    Deduplicating archiver with encryption and paranoid-level tests. Swiss army knife for the serious backup and disaster recovery manager. Ransomware neutralizer. Win/Linux/Unix

  • grok

    World's Leading Open Source JPEG 2000 Codec

  • btrblocks

    BtrBlocks: Efficient Columnar Compression for Data Lakes (SIGMOD 2023 Paper)

    Project mention: An Empirical Evaluation of Columnar Storage Formats [pdf] | news.ycombinator.com | 2024-05-15

    Lance v2 looks interesting. I like their meta-data + container story. Lacking SOTA encoding schemes though.

    There is also Vortex (https://github.com/fulcrum-so/vortex). That has modern encoding schemes that we want to use.

    BtrBlocks (https://github.com/maxi-k/btrblocks) from the Germans is another Parquet alternative.

    Nimble (formerly Alpha) is a complicated story. We worked with the Velox team for over a year to open-source and extend it. But plans got stymied by legal. This was in collaboration with Meta + CWI + Nvidia + Voltron. We decided to a separate path because Nimble code has no spec/docs. Too tightly coupled with Velox/Folly.

    Given that, we are working on a new file format. We hope to share our ideas/code later this year.

  • CIDLib

    The CIDLib general purpose C++ development environment

  • ancient

    Decompression routines for ancient formats

  • sevenzipjbinding

    7-Zip-JBinding

  • libzim

    Reference implementation of the ZIM specification

    Project mention: WikiReader | news.ycombinator.com | 2023-12-03

    I meant the Kiwix dump (https://download.kiwix.org/zim/wikipedia_en_all_nopic.zim – careful, 60GB!).

    At a first glance, the Wikimedia XML dump does not look substantially different from what Kiwix/ZIM does with compressed HTML: They're both compressed (bz2 for the Wikimedia dump, zstd or LZMA for Kiwix/ZIM), and both compress multiple files at once, so inter-file redundancy should hopefully be significantly reduced.

    HTML seems a bit more verbose than the Mediawiki syntax (plus the XML header for each article), but I'd be surprised if that actually accounted for a 3x difference in size.

    Then again, Kiwix seems to have experimented with shared dictionary brotli compression, which supposedly yields an >2x improvement: https://github.com/openzim/libzim/issues/144

    I wonder if their current zstd implementation also uses shared dictionaries. If not, that might just be the reason: If ZIM compression chunks are much smaller than the bz2 streams of the Wikimedia dumps, there would still be a lot of redundancy between chunks.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

C++ Compression discussion

Log in or Post with

C++ Compression related posts

Index

What are some of the best open-source Compression projects in C++? This list will help you:

Project Stars
1 draco 6,452
2 Snappy 6,097
3 meshoptimizer 5,510
4 caesium-image-compressor 3,488
5 bolt 2,465
6 dwarfs 2,115
7 dandere2x 1,431
8 acl 1,337
9 compressonator 1,290
10 Bareos 969
11 clp 804
12 PGM-index 774
13 LZHAM 688
14 EWAHBoolArray 441
15 SIMDCompressionAndIntersection 417
16 GDCM 345
17 zpaqfranz 259
18 grok 225
19 btrblocks 213
20 CIDLib 208
21 ancient 208
22 sevenzipjbinding 174
23 libzim 165

Sponsored
Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com