leveldb-sharp is a portable C# binding for the C API of the LevelDB library.

To support the most reach leveldb-sharp is available under the 3-clause BSD license, which is the same license LevelDB uses.

leveldb-sharp uses the C API instead of the C++ API for portability. Using C++/CLI would have been the direct route but it is currently not portable outside of Windows. As I use the binding for Smuxi which targets Linux, Windows and OS X, the C API was the better pick.


leveldb-sharp offers:

  • low-level function calls to LevelDB
  • high-level object oriented API with .NET enrichments (IEnumerable, IDisposable)
    • DB API
    • ReadOptions/WriteOptions/Options API
    • Write batch API
    • Iterator API
    • Cache API
    • Snapshot API
    • Compact range API
  • Allows combined use of low-level and high-level APIs
  • NUnit test-case coverage


Currently leveldb-sharp lacks:

  • comparator API (unsafe code? no thanks...)


Projects using leveldb-sharp