Snappy for Windows

Alternative ports

There have been many efforts to port Snappy to Windows. Snappy for Windows aims to be the most complete, the most up to date, and the most stable one. I will briefly mention existing ports and their relative strengths and weaknesses.

Snappy for .NET

Developed mostly to compare performance with LZ4 compressor that is a close relative of Snappy. It includes native DLL build as well as .NET wrapper. I have copied bit counting optimization from this port.

It has a couple usability flaws though. It exposes only C APIs, not C++ APIs. The .NET wrapper requires developers to copy native DLLs around instead of embedding them and the native DLLs require installation of Visual C++ redistributable. There are no NuGet packages. It wasn't updated for over one year.

Snappy for .NET on CodePlex

Snappy.Sharp

This is pure .NET reimplementation of Snappy. Its readme plainly states that it is a work in progress. It was saying that for over a year. I need something stable in my projects. Any kind of "work in progress" is out of question for me.

The project is nevertheless maintained. There have been some recent commits. Perhaps someday it will be mature enough. I will then include it in my port as a pure .NET fallback in case the native libraries cannot be loaded.

Snappy.Sharp on GitHub

SnappySharp

This is another pure .NET reimplementation of Snappy. There was unfortunately no commit for over 3 years. It looks abandoned. The readme contains no warnings about unfinished stuff, but there's no performance report either.

SnappySharp on GitHub

Kwal/Snappy

This is a pure .NET reimplementation of Snappy. It has yet to prove its correctness and performance. Change history for this project consists of a single commit made 2 years ago. I therefore conclude that it is abandoned.

Kwal/Snappy on GitHub

Snappy.Net

This seems to have been an attempt to create .NET wrapper for Snappy. There is a single commit made 2 years ago, which contains empty .NET project. I assume this project was abandoned before any progress has been made.

Snappy.Net on GitHub

Project Snappy for Windows
Version 1.1.1.8
NuGet Snappy (C++), Snappy.NET (.NET)
Download snappy-windows-1.1.1.8.7z
(C++, .NET, and command-line tools)
Source code snappy-visual-cpp, Snappy.NET, and snappy-command-line on Bitbucket
License BSD license
Credits Robert Važan, upstream Snappy