From Fedora Project Wiki
Line 3: Line 3:
 
** '''Wrappers for:''' C++, Java, Python, Perl, Ruby, Go, Erlang, PHP, Lua
 
** '''Wrappers for:''' C++, Java, Python, Perl, Ruby, Go, Erlang, PHP, Lua
 
** '''Packages available for:''' Fedora 23+, EPEL6+
 
** '''Packages available for:''' Fedora 23+, EPEL6+
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
 
** '''Supported architectures:'''
 
** '''Supported architectures:'''
 
** '''Query keys larger than X:'''
 
** '''Query keys larger than X:'''
 +
 +
* '''[http://fallabs.com/kyotocabinet/ Kyoto Cabinet]''' (replacing Tokyo Cabinet)
 +
** '''Written in:''' C++
 +
** '''Wrappers for:''' C, Java, Python, Ruby, Perl, and Lua
 +
** '''Packages available for:''' Fedora 23+, EPEL5+
 +
** '''License:'''
 +
** '''Search key length:''' No limit from database itself (uses c++ std::string or combination of c-style string and its length).
 +
** '''Read-only access to DB:''' See http://fallabs.com/kyotocabinet/spex.html, part ''Sharing One database by Multiple Processes''. TL;DR: One DB cannot be accessed by multiple processes, DB file is protected by reader-writer lock (which means it will probably require write access even for read-only operation).
 +
** '''Supported architectures:''' Linux 2.6 and later (i386/x86-64/PowerPC/Alpha/SPARC)
 +
** '''Query keys larger than X:''' DB supports [http://fallabs.com/kyotocabinet/api/classkyotocabinet_1_1PolyDB.html#a23cafa21e981567d1d3f82b437ebcd9d matching by regex], which should be possible to use for this kind of query. Other possibilities are [http://fallabs.com/kyotocabinet/api/classkyotocabinet_1_1PolyDB.html#ae1a3c5cf00e8b44d058e13bef372cc4f match by prefix] and [http://fallabs.com/kyotocabinet/api/classkyotocabinet_1_1PolyDB.html#af822c534ddc01b51a3b21ccd4bcdedea match by similarity].
  
 
* '''[http://leveldb.org/ LevelDB]'''
 
* '''[http://leveldb.org/ LevelDB]'''
** '''Written in:'''
+
** '''Written in:''' C++
** '''Wrappers for:'''
+
** '''Wrappers for:''' Java, Go, Erlang, node.js
** '''Packages available for:'''
+
** '''Packages available for:''' Fedora 23+, EPEL6+
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
Line 17: Line 29:
 
** '''Query keys larger than X:'''
 
** '''Query keys larger than X:'''
  
* '''[http://rocksdb.org/ RocksDB]'''
+
* '''[http://rocksdb.org/ RocksDB]''' (Built on LevelDB)
 
** '''Written in:'''
 
** '''Written in:'''
 
** '''Wrappers for:'''
 
** '''Wrappers for:'''
** '''Packages available for:'''
+
** '''Packages available for:''' Not available in Fedora?
 +
** '''License:'''
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
 
** '''Supported architectures:'''
 
** '''Supported architectures:'''
 
** '''Query keys larger than X:'''
 
** '''Query keys larger than X:'''
 
* '''[http://fallabs.com/kyotocabinet/ Kyoto Cabinet]''' (replacing Tokyo Cabinet)
 
** '''Written in:''' C++
 
** '''Wrappers for:''' C, Java, Python, Ruby, Perl, and Lua
 
** '''Packages available for:''' Fedora 23+, EPEL5+
 
** '''Search key length:''' No limit from database itself (uses c++ std::string or combination of c-style string and its length).
 
** '''Read-only access to DB:''' See http://fallabs.com/kyotocabinet/spex.html, part ''Sharing One database by Multiple Processes''. TL;DR: One DB cannot be accessed by multiple processes, DB file is protected by reader-writer lock (which means it will probably require write access even for read-only operation).
 
** '''Supported architectures:''' Linux 2.6 and later (i386/x86-64/PowerPC/Alpha/SPARC)
 
** '''Query keys larger than X:''' DB supports [http://fallabs.com/kyotocabinet/api/classkyotocabinet_1_1PolyDB.html#a23cafa21e981567d1d3f82b437ebcd9d matching by regex], which should be possible to use for this kind of query. Other possibilities are [http://fallabs.com/kyotocabinet/api/classkyotocabinet_1_1PolyDB.html#ae1a3c5cf00e8b44d058e13bef372cc4f match by prefix] and [http://fallabs.com/kyotocabinet/api/classkyotocabinet_1_1PolyDB.html#af822c534ddc01b51a3b21ccd4bcdedea match by similarity].
 
  
 
* '''[http://unqlite.org/ UnQlite]'''
 
* '''[http://unqlite.org/ UnQlite]'''
** '''Written in:'''
+
** '''Written in:''' C
 
** '''Wrappers for:'''
 
** '''Wrappers for:'''
** '''Packages available for:'''
+
** '''Packages available for:''' Not yet available in Fedora
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
Line 51: Line 57:
 
** '''Wrappers for:''' Perl, Ruby, Java, and Lua
 
** '''Wrappers for:''' Perl, Ruby, Java, and Lua
 
** '''Packages available for:''' Fedora 23+, EPEL5+, RHEL6+
 
** '''Packages available for:''' Fedora 23+, EPEL5+, RHEL6+
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
Line 60: Line 67:
 
** '''Wrappers for:''' C++, Java, Perl, and Ruby
 
** '''Wrappers for:''' C++, Java, Perl, and Ruby
 
** '''Packages available for:''' Fedora 23+
 
** '''Packages available for:''' Fedora 23+
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
Line 69: Line 77:
 
** '''Wrappers for:'''
 
** '''Wrappers for:'''
 
** '''Packages available for:'''
 
** '''Packages available for:'''
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
Line 78: Line 87:
 
** '''Wrappers for:'''
 
** '''Wrappers for:'''
 
** '''Packages available for:'''
 
** '''Packages available for:'''
 +
** '''License:'''
 
** '''Search key length:'''
 
** '''Search key length:'''
 
** '''Read-only access to DB:'''
 
** '''Read-only access to DB:'''
 
** '''Supported architectures:'''
 
** '''Supported architectures:'''
 
** '''Query keys larger than X:'''
 
** '''Query keys larger than X:'''

Revision as of 08:40, 27 July 2016

  • LMDB
    • Written in: C
    • Wrappers for: C++, Java, Python, Perl, Ruby, Go, Erlang, PHP, Lua
    • Packages available for: Fedora 23+, EPEL6+
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X:
  • Kyoto Cabinet (replacing Tokyo Cabinet)
    • Written in: C++
    • Wrappers for: C, Java, Python, Ruby, Perl, and Lua
    • Packages available for: Fedora 23+, EPEL5+
    • License:
    • Search key length: No limit from database itself (uses c++ std::string or combination of c-style string and its length).
    • Read-only access to DB: See http://fallabs.com/kyotocabinet/spex.html, part Sharing One database by Multiple Processes. TL;DR: One DB cannot be accessed by multiple processes, DB file is protected by reader-writer lock (which means it will probably require write access even for read-only operation).
    • Supported architectures: Linux 2.6 and later (i386/x86-64/PowerPC/Alpha/SPARC)
    • Query keys larger than X: DB supports matching by regex, which should be possible to use for this kind of query. Other possibilities are match by prefix and match by similarity.
  • LevelDB
    • Written in: C++
    • Wrappers for: Java, Go, Erlang, node.js
    • Packages available for: Fedora 23+, EPEL6+
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X:
  • RocksDB (Built on LevelDB)
    • Written in:
    • Wrappers for:
    • Packages available for: Not available in Fedora?
    • License:
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X:
  • UnQlite
    • Written in: C
    • Wrappers for:
    • Packages available for: Not yet available in Fedora
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X:

Older (possibly unmantained) projects

  • TokyoCabinet (replacing QDBM)
    • Written in: C
    • Wrappers for: Perl, Ruby, Java, and Lua
    • Packages available for: Fedora 23+, EPEL5+, RHEL6+
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X:
  • QDBM
    • Written in: C
    • Wrappers for: C++, Java, Perl, and Ruby
    • Packages available for: Fedora 23+
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X:
  • NDBM
    • Written in:
    • Wrappers for:
    • Packages available for:
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X:
  • GDBM
    • Written in:
    • Wrappers for:
    • Packages available for:
    • License:
    • Search key length:
    • Read-only access to DB:
    • Supported architectures:
    • Query keys larger than X: