A Java port of LevelDB that aims for feature parity and near-native performance while producing identical data files.
LevelDB in Java is a port of Google's LevelDB embedded key-value store to the Java programming language. It provides a persistent, ordered mapping from string keys to string values with high write performance and is designed to be a drop-in replacement for applications needing LevelDB functionality in Java. The project aims to maintain feature completeness and produce byte-for-byte identical data files to the C++ original.
Java developers who need an embedded, high-performance key-value store for applications like message brokers, caching systems, or local data persistence. It's particularly useful for projects already using LevelDB in other languages that require Java interoperability.
Developers choose this port because it offers the proven LevelDB architecture with Java convenience, maintains data compatibility with the C++ version, and targets performance close to the original. It's a pure Java solution that doesn't require native dependencies.
Port of LevelDB to Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Produces byte-for-byte identical data files to the C++ LevelDB, enabling seamless data sharing between Java and C++ applications, as highlighted in the GitHub description.
Supports all core LevelDB operations including puts, gets, deletes, batch writes, iteration, snapshots, and custom comparators, as demonstrated in the extensive code examples.
Provides close methods for database connections, iterators, snapshots, and write batches to prevent resource leaks, emphasized in the README's usage snippets.
Aims to achieve within 10% of the original C++ implementation's speed, targeting high-performance storage for Java applications with configurable caches and compression.
The README admits the code is only trivially tested, which raises concerns about reliability and bug potential in production environments.
The project initially keeps code structure close to the C++ original, making it less natural for Java developers to maintain and understand, as noted in the current status section.
As a Java port, it may not fully match the raw performance of C++ LevelDB, especially in memory-intensive scenarios, despite the 10% performance goal.