MapDB VS Exposed

Compare MapDB vs Exposed and see what are their differences.


MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine. (by jankotek)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
MapDB Exposed
5 28
4,873 8,066
- 1.3%
0.0 9.5
about 2 months ago 3 days ago
Java Kotlin
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of MapDB. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-27.
  • GC, hands off my data!
    6 projects | | 27 Oct 2023
    I decided to start with an overview of what open-source options are currently available. When it comes to the implementation of the on-heap cache mechanism, the options are numerous – there is well known: guava, ehcache, caffeine and many other solutions. However, when I began researching cache mechanisms offering the possibility of storing data outside GC control, I found out that there are very few solutions left. Out of the popular ones, only Terracotta is supported. It seems that this is a very niche solution and we do not have many options to choose from. In terms of less-known projects, I came across Chronicle-Map, MapDB and OHC. I chose the last one because it was created as part of the Cassandra project, which I had some experience with and was curious about how this component worked:
  • Permazen: Language-natural persistence to KV stores
    6 projects | | 19 Sep 2023
    So, it's an object database, like Zope's ZODB on Python?

    I like the idea, but I'd like to learn about use cases for it.

    Otherwise, in Java, MapDB is about as far as I'd be willing to go:

  • what is the best persistent collection library?
    5 projects | /r/java | 2 Sep 2022
    Anyway, without further ado, I found MapDB ( which does exactly that. Of course, they also provide their own Java collection implementations as well, so I suspect using it with Vavr would be a poor idea, but it is very cool in its own right anyway. Of course, there is also Apache Derby and HSQLDB, and those great options with a long history as well. I haven't played with these in a while though, so I might give them a try again soon for some personal stuff.
  • Ask HN: What are the best key-value self-hosted storage engines?
    5 projects | | 31 Mar 2022
    In Java I like

    It is more feature rich than you want but in Python I'd probably just use sqlite3 since it is in the standard library.

  • Solution for hash-map with >100M values
    7 projects | /r/java | 21 Dec 2020
    I have had good results with mapdb


Posts with mentions or reviews of Exposed. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • Drizzle is just as unready for prime-time as Prisma, what else is there?
    12 projects | /r/reactjs | 6 Dec 2023
    So is it like Exposed for Kotlin which is a typesafe Kotlin DSL for building sql queries? I’ve been looking for something like this in typescript!
  • Database Testing with Testcontainers and Kotlin Exposed ORM
    3 projects | | 29 Jun 2023
    object TestDatabase { private val mySQLContainer: MySQLContainer = MySQLContainer("mysql:8.0.26").apply { withDatabaseName("test-db") withUsername("test-user") withPassword("test-password") start() // Start the container } init { val config = HikariConfig().apply { jdbcUrl = mySQLContainer.jdbcUrl username = mySQLContainer.username password = mySQLContainer.password driverClassName = "com.mysql.cj.jdbc.Driver" maximumPoolSize = 10 } val dataSource = HikariDataSource(config) // This doesn't connect to the database but provides a descriptor for future use // In the main app, we would do this on system start up // Database.connect(dataSource) // Create the schema transaction { SchemaUtils.create(Users) } } }
  • I'm creating a REST API using KTOR. What's the best ORM to go with KTOR ?
    2 projects | /r/Kotlin | 28 May 2023
    Exposed SQL is pretty good.
  • speed of a left join with millions of rows
    1 project | /r/SQL | 27 May 2023
    I am using Kotlins Exposed DSL to access my postgreSQL database. I am running an SQL query which involves doing a one-to-many left join, with the first table having tens of thousands of rows and the second table having millions of rows. The database is stored locally on the machine. I would expect the returned query to be less than one thousand rows.
  • Return a nested list of child table using Kotlin Exposed Dao
    1 project | /r/Kotlin | 22 May 2023
    I understand that `referrersOn` and `referencedOn` can be used, however in the documentations StarWars example, the child table needs to have a column indicating the parent_id row it is joined to. This does not work in my case as my child table can be associated to multiple parent_ids.
  • Replicating Jetbrains Exposed Star Wars Example in IntelliJ Scratch file
    1 project | /r/IntelliJIDEA | 21 May 2023
    I am following this wiki to learn kotlin exposed. It contains an example of 'Referencing' using Star Wars data. I would like to create a scratch and/or console file in IntelliJ which reproduces this simple example. However When I try to run the code I get errors (see below). Is there something I am missing here?
  • How are you all handling database persistence?
    4 projects | /r/Kotlin | 22 Mar 2023
    Exposed by JetBrains
  • Why people don't like Java?
    5 projects | /r/programming | 27 Feb 2023
    Alternatively there are... hybrid solutions like Kotlin's or that don't quite... do all the heavy lifting for querying but allow you to sorta stitch queries together manually.
  • Using PostgreSQL as an Append-only Datastore with Kotlin and Exposed
    3 projects | /r/Kotlin | 24 Feb 2023
    In our last episode (\_dWsNMUs) we worked out how to save stock items in PostgreSQL ( using the JetBrains Exposed library ( This time we refactor our existing file-based storage, extracting an interface that we can implement with files, in-memory, or with Exposed. For the database version, instead of replacing items in a table when they change, we choose to implement an append-only datastore. This keeps all the old versions of every row, using a query to select the latest versions when we want to see the current state. This has the advantage that we can rebuild the state of our system if things go wrong, and may also be faster than amending when we consider transactions. This is part 62 of an exploration of where a Test Driven Development implementation of the Gilded Rose stock control system might take us in Kotlin. You can see the whole series as a playlist\_KEZVW7BW7m2 and the code on GitHub If you like this, you’ll probably like my book Java to Kotlin, A Refactoring Guidebook ( It's about far more than just the syntax differences between the languages - it shows how to upgrade your thinking to a more functional style. I have some free time between producing videos and working for team Gilded Rose. If you like these videos I'd like to work with you - please get in touch - [email protected]
  • Writing to db
    5 projects | /r/Kotlin | 20 Feb 2023
    I have used hikari and exposed to do this in the past with postgres, although other dialects are supported.

What are some alternatives?

When comparing MapDB and Exposed you can also consider the following projects:

Chronicle Map - Replicate your Key Value Store across your network, with consistency, persistance and performance.

Ktorm - A lightweight ORM framework for Kotlin with strong-typed SQL DSL and sequence APIs.

H2 - H2 is an embeddable RDBMS written in Java.

SQLDelight - SQLDelight - Generates typesafe Kotlin APIs from SQL

JetBrains Xodus - Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.

kotlin-jpa-specification-dsl - This library provides a fluent DSL for querying spring data JPA repositories using spring data Specifications (i.e. the JPA Criteria API), without boilerplate code or a generated metamodel.

Redisson - Redisson - Easy Redis Java client and Real-Time Data Platform. Valkey compatible. Sync/Async/RxJava/Reactive API. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache ...

requery - requery - modern SQL based query & persistence for Java / Kotlin / Android

Jedis - Redis Java client

kwery - Kwery is an SQL library for Kotlin

kotlin-nosql - NoSQL database query and access library for Kotlin

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives

Did you konow that Java is
the 8th most popular programming language
based on number of metions?