Description
MapDB combines embedded database engine and Java collections. It is free under Apache 2 license. MapDB is flexible and can be used in many roles:
MapDB alternatives and similar libraries
Based on the "Database" category.
Alternatively, view MapDB alternatives based on common mentions on social networks and blogs.
-
orientdb
OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries. -
Crate
CrateDB is a distributed and scalable SQL database for storing and analyzing massive amounts of data in near real-time, even with complex queries. It is PostgreSQL-compatible, and based on Lucene. -
ObjectBox embedded database
Android Database - first and fast, lightweight on-device vector database -
Chronicle Map
Replicate your Key Value Store across your network, with consistency, persistance and performance. -
JDBI
The Jdbi library provides convenient, idiomatic access to relational databases in Java and other JVM technologies such as Kotlin, Clojure or Scala. -
sql2o
sql2o is a small library, which makes it easy to convert the result of your sql-statements into objects. No resultset hacking required. Kind of like an orm, but without the sql-generation capabilities. Supports named parameters. -
FlexyPool
FlexyPool adds metrics and failover strategies to a given Connection Pool, allowing it to resize on demand. -
JetBrains Xodus
Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of MapDB or a related project?
Popular Comparisons
README
MapDB: database engine
MapDB combines embedded database engine and Java collections. It is free under Apache 2 license. MapDB is flexible and can be used in many roles:
- Drop-in replacement for Maps, Lists, Queues and other collections.
- Off-heap collections not affected by Garbage Collector
- Multilevel cache with expiration and disk overflow.
- RDBMs replacement with transactions, MVCC, incremental backups etc…
- Local data processing and filtering. MapDB has utilities to process huge quantities of data in reasonable time.
Hello world
<dependency>
<groupId>org.mapdb</groupId>
<artifactId>mapdb</artifactId>
<version>VERSION</version>
</dependency>
Hello world:
//import org.mapdb.*
DB db = DBMaker.memoryDB().make();
ConcurrentMap map = db.hashMap("map").make();
map.put("something", "here");
You can continue with quick start or refer to the documentation.
Support
More details.
Development
MapDB is written in Kotlin, you will need IntelliJ Idea.
You can use Gradle to build MapDB.
MapDB is extensively unit-tested.
By default, only tiny fraction of all tests are executed, so build finishes under 10 minutes.
Full test suite has over million test cases and runs for several hours/days.
To run full test suite, set -Dmdbtest=1
VM option.
Longer unit tests might require more memory. Use this to increase heap memory assigned to unit tests: -DtestArgLine="-Xmx3G"
By default unit tests are executed in 3 threads. Thread count is controlled by -DtestThreadCount=3
property
On machine with limited memory you can change fork mode so unit test consume less RAM, but run longer: -DtestReuseForks=false
*Note that all licence references and agreements mentioned in the MapDB README section above
are relevant to that project's source code only.