Tokyo Cabinet is an embedded key-value store written in C, with native support for C and C++ and wrapper APIs for other languages. Keys and values are NULL-terminated strings or arbitrary sequences of bytes, and generally have variable size. Tokyo Cabinet is not a relational database management system; It is a dedicated key-value store similar to LevelDB, RocksDB etc. An application uses a custom non-SQL API to invoke insert, delete, update operations on data and other management functions. In addition, it supports repeatedly appending to a value, characterized as a "concatenate" operation.[03][02]
- Source Code
- https://fallabs.com/tokyocabinet[02]
- Developer
- Country of Origin
- JP
- Start Year
- 2006 [02]
- End Year
- 2012 [02]
- Former Name
- Sugamo Cabinet
- Project Type
- Open Source
- Written in
- C
- License
- LGPL v2
Tokyo Cabinet is an embedded key-value store written in C, with native support for C and C++ and wrapper APIs for other languages. Keys and values are NULL-terminated strings or arbitrary sequences of bytes, and generally have variable size. Tokyo Cabinet is not a relational database management system; It is a dedicated key-value store similar to LevelDB, RocksDB etc. An application uses a custom non-SQL API to invoke insert, delete, update operations on data and other management functions. In addition, it supports repeatedly appending to a value, characterized as a "concatenate" operation.[03][02]
History[04][03][02]
Tokyo Cabinet was developed in the late 2000s and improves upon older and simpler data storage libraries such as the Unix dbm ("database manager") and the GNU GDBM by providing a greater variety of backing data structures and additional API functions.
Tokyo Cabinet is succeeded by a similar key-value store called Kyoto Cabinet.
Compression[03]
A Tokyo Cabinet database file is not globally compressed. Compression is done at the record (key and value) level or the page level (for a B+ Tree-based store) using the Burrows–Wheeler transform or the Lempel–Ziv compression algorithm.
Data Model[05][03]
Tokyo Cabinet is not a relational database management system; It is a dedicated key-value store. Applications need to use a custom non-SQL API to invoke insert, delete, update operations on data and other management functions.
Tokyo Cabinet also implements a thin "table" abstraction which simulates columns over a key-value store. Schemas and data types are not supported, and therefore, the a Tokyo Cabinet table can contain tuples with a different kind and number of columns. In the table abstraction, a key and a column index (a non-negative integer) together serve as a pointer to a value, unlike a standard key-value record, where only the key serves as such a pointer.
Query Interface[05][03]
Tokyo Cabinet does not support SQL. Applications need to use a custom non-SQL API to invoke insert, delete, update operations on data and other management functions. In addition, Tokyo Cabinet supports repeatedly appending to a value, characterized as a "concatenate" operation.
Tokyo Cabinet has native support for C and C++ and wrapper APIs for other languages.
Citations
5 sources- http://fallabs.com/tokyocabinet fallabs.com
- https://fallabs.com/tokyocabinet fallabs.com
- https://fallabs.com/tokyocabinet/spex-en.html fallabs.com
- Tkrzw - Wikipedia wikipedia.org
- https://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz fallabs.com