Paper

maintenance

by Aleksey Masny (pilgr) · since 2015 · also known as PaperDB, paperdb

Simple Android key-value store that persists plain Java/Kotlin objects with Kryo; no SQL, no schemas.

key-valueobjectembedded libraryopen source (permissive)mature

maintenance. No release since 2.7.2 (Jan 2022) and no commits since Jan 2023; still works but is effectively unmaintained.

Overview

Paper is a small Android persistence library that stores plain Java and Kotlin objects under string keys in named 'books', serializing them with Kryo so classes need no annotations, base classes or mappers, and coping with added or removed fields without explicit migrations. Each key is written to its own file with a backup copy for crash safety, and per-key locking makes concurrent reads and writes safe. It is a pragmatic step up from SharedPreferences when you need to cache object graphs, not a queryable database: there are no indexes, queries or multi-key transactions. The last release was 2.7.2 in January 2022 and the repository has been quiet since early 2023.

Strengths & trade-offs

Strengths

  • +Stores arbitrary object graphs with one call and no mapping code
  • +Tolerates class changes without migrations
  • +Crash-safe writes via per-key backup files

Trade-offs

  • −No queries, indexes or multi-key transactions
  • −One file per key scales poorly to many thousands of entries
  • −Kryo serialization ties stored data to class structure and needs ProGuard rules

Great for

  • +Caching API responses or settings objects on Android
  • +Simple offline persistence in small apps

Think twice for

  • −Relational or queryable data
  • −Large datasets on device

Capabilities

Native or official first-party support · 1 of 25 tracked

✓Durable persistence
–Transactions
–Joins
–Secondary indexes
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
Limited ACID
Consistency
Strong
Schema
Schemaless
Architecture
Embedded
Query languages
Key-value API

One file per key on device storage.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsJava/Kotlin API
client languagesJava, Kotlin

Alternatives to Paper

Compare all→
MMKVKey-Value6.3

Tencent's mmap-backed key-value store for mobile apps, built as a faster SharedPreferences/NSUserDefaults.

paper vs mmkv →
ObjectBoxObject12.4

Fast on-device object database with built-in HNSW vector search and an optional commercial sync server.

paper vs objectbox →
Realm (Atlas Device SDK)Object25.2

Object-oriented mobile database whose MongoDB sync service is gone; the local engine survives as open source.

paper vs realm →
SQLiteRelational75.5

The in-process SQL engine that ships in every phone, browser and OS: one file, zero servers.

paper vs sqlite →
ZODBObject22.7

Transparent persistence for Python objects with ACID transactions and history.

paper vs zodb →
Dexie.jsDocument25.8

The most popular IndexedDB wrapper, with live queries and an optional Dexie Cloud sync service.

paper vs dexie →

Paper FAQ

What is Paper?

Paper is a key-value database by Aleksey Masny (pilgr), first released in 2015. Paper is a small Android persistence library that stores plain Java and Kotlin objects under string keys in named 'books', serializing them with Kryo so classes need no annotations, base classes or mappers, and coping with added or removed fields without explicit migrations. Each key is written to its own file with a backup copy for crash safety, and per-key locking makes concurrent reads and writes safe. It is a pragmatic step up from SharedPreferences when you need to cache object graphs, not a queryable database: there are no indexes, queries or multi-key transactions. The last release was 2.7.2 in January 2022 and the repository has been quiet since early 2023.

Is Paper open source?

Yes. Paper is open source. License: Apache License 2.0.

Does Paper support ACID transactions?

Partly. Paper offers limited ACID guarantees (for example, single-record or single-partition transactions), with strong consistency.

Does Paper scale horizontally?

Paper does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run Paper?

You can self-host it and embed it in your application.

What is Paper best for?

Paper is a strong fit for caching API responses or settings objects on Android and simple offline persistence in small apps. Think twice for relational or queryable data.

What are the best alternatives to Paper?

Common alternatives to Paper include MMKV, ObjectBox, Realm (Atlas Device SDK), SQLite and ZODB. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is Paper still maintained?

Paper is in maintenance mode. No release since 2.7.2 (Jan 2022) and no commits since Jan 2023; still works but is effectively unmaintained.

How popular is Paper?

Paper ranks #470 of 844 databases on the WhichDB Score (2.6/100), and #73 among key-value databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.