TinyDB is a lightweight document-oriented database for applications that need straightforward local storage. It provides a compact database interface without requiring a separate server or external database infrastructure.
The database stores records as documents represented by dictionaries. Documents are organised into tables, but unlike relational database tables, they do not require a fixed set of fields.
TinyDB normally stores its data in JSON files. This makes the database suitable for scripts, small utilities and applications where records need to be persisted in a format that can also be inspected with a text editor.
The software includes a query interface for selecting records using comparisons and logical conditions. Developers can combine queries to retrieve documents matching more complex criteria.
TinyDB also supports alternative storage implementations and middleware. These allow developers to change how data is persisted or introduce additional behaviour around database operations.
It is intended for relatively small workloads. Applications requiring substantial concurrent access, large datasets or complex transactions are generally better served by a more capable database engine.
This is free and open source software.
Key Features
- Schemaless document storage.
- JSON-based persistence.
- Multiple logical tables within a database.
- Document insertion, retrieval, updating and deletion.
- Query expressions using field comparisons.
- Logical operators for combining query conditions.
- Document retrieval by identifier.
- In-memory storage backend.
- Custom storage implementations.
- Middleware for extending storage behaviour.
- Query result caching.
- Bulk document operations.
Website: github.com/msiemens/tinydb
Support:
Developer: Markus Siemens
License: MIT License
TinyDB is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Document-Oriented Databases | |
|---|---|
| SurrealDB | Scalable, distributed, collaborative, document-graph database |
| Couchbase | Distributed key-value database management system |
| CouchDB | Scalable, fault-tolerant, and schema-free written in Erlang |
| ArangoDB | Native multi-model database |
| eXist-db | Database management system entirely built on XML technology |
| RethinkDB | Scalable database built for realtime applications |
| BaseX | XML database engine |
| OrientDB | Document Database supporting ACID Transactions, SQL and Native Queries |
| Aerospike | Key-Value Store and high performance real-time NoSQL (flex-schema) database |
| RavenDB | Fully-transactional NoSQL ACID database |
| FerretDB | Database proxy that offers an open-source alternative to MongoDB |
| DocumentDB | MongoDB-compatible document database engine |
| Jackrabbit | Open-source content repository for Java |
| TerminusDB | Knowledge graph and document store |
| Kinto | Minimalist JSON storage service |
| CrateDB | Distributed SQL database management |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.