<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Language" content="en" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta name="author" content="FAL Labs" /> <meta name="keywords" content="Kyoto Cabinet, kyotocabinet, database, DBM" /> <meta name="description" content="homepage of Kyoto Cabinet" /> <link rel="contents" href="./" /> <link rel="stylesheet" href="common.css" /> <link rel="icon" href="icon16.png" /> <link rev="made" href="mailto:info@fallabs.com" /> <title>Kyoto Cabinet: a straightforward implementation of DBM</title> <script type="text/javascript">function startup() { if (!navigator) return; var lang = navigator.language; if (!lang) lang = navigator.browserLanguage; if (!lang) lang = navigator.userLanguage; if (lang != "ja") return; var elem = document.getElementById("headline"); if (!elem) return; var now = new Date(); if ((now.getFullYear() + now.getMonth() + now.getDate() + now.getHours()) % 8 == 0) { var label = ""; switch ((now.getDate() + now.getMinutes()) % 12) { case 0: label = "宇宙最強絶対無敵電光石火疾風迅雷資料基盤管理器"; break; case 3: label = "森羅万象古今東西老若男女空前絶後資料基盤管理器"; break; case 6: label = "とある科学の超資料基盤管理器"; break; case 9: label = "こちら葛飾区資料基盤管理器"; break; } var text = "DBMの率直な壱実装"; if (label.length == 0) { label = "京都収納棚"; var num = Math.floor(now.getTime() / 10000); if (num % 2 == 0) { num = Math.floor(num / 2); var texts = [ "丸竹夷二押御池", "姉三六角蛸錦", "四綾仏高松万五条", "雪駄せったちゃらちゃら魚の棚", "六条三哲とおりすぎ", "七条こえれば八九条", "十条東寺でとどめさす" ]; text = texts[num%texts.length]; } } elem.firstChild.nodeValue = label + ": " + text; } } </script> </head> <body onload="startup();"> <h1 id="headline">Kyoto Cabinet: a straightforward implementation of DBM</h1> <div class="note">Copyright (C) 2009-2010 FAL Labs</div> <div class="note">Last Update: Thu, 09 Dec 2010 21:50:02 +0900</div> <div class="logo"><img src="logo.png" id="logo" alt="Kyoto Cabinet" width="300" height="110" /></div> <hr /> <h2 id="overview">Overview</h2> <p>Kyoto Cabinet is a library of routines for managing a database. The database is a simple data file containing records, each is a pair of a key and a value. Every key and value is serial bytes with variable length. Both binary data and character string can be used as a key and a value. Each key must be unique within a database. There is neither concept of data tables nor data types. Records are organized in hash table or B+ tree.</p> <p>Kyoto Cabinet runs very fast. For example, elapsed time to store one million records is 0.9 seconds for hash database, and 1.1 seconds for B+ tree database. Moreover, the size of database is very small. For example, overhead for a record is 16 bytes for hash database, and 4 bytes for B+ tree database. Furthermore, scalability of Kyoto Cabinet is great. The database size can be up to 8EB (9.22e18 bytes).</p> <p>Kyoto Cabinet is written in the C++ language, and provided as API of C++, C, Java, Python, Ruby, Perl, and Lua. Kyoto Cabinet is available on platforms which have API conforming to C++03 with the TR1 library extensions. Kyoto Cabinet is a free software licensed under the GNU General Public License. On the other hand, a commercial license is also provided. If you use Kyoto Cabinet within a proprietary software, the commercial license is required.</p> <hr /> <h2 id="documents">Documents</h2> <p>The following are documents of Kyoto Cabinet. They are contained also in the source package.</p> <ul> <li><a href="spex.html">Fundamental Specifications</a></li> <li><a href="command.html">Specifications of Command Line Utilities</a></li> <li><a href="kyotoproducts.pdf">Presentation</a></li> <li><a href="api/">API Documents of the core library (C/C++)</a></li> </ul> <ul> <li><a href="http://fallabs.com/kyotocabinet/javadoc/">API Documents for Java</a></li> <li><a href="http://fallabs.com/kyotocabinet/pythondoc/">API Documents for Python 3.x</a></li> <li><a href="http://fallabs.com/kyotocabinet/pythonlegacydoc/">API Documents for Python 2.x</a></li> <li><a href="http://fallabs.com/kyotocabinet/rubydoc/">API Documents for Ruby</a></li> <li><a href="http://fallabs.com/kyotocabinet/perldoc/">API Documents for Perl</a></li> <li><a href="http://fallabs.com/kyotocabinet/luadoc/">API Documents for Lua</a></li> </ul> <hr /> <h2 id="packages">Packages</h2> <p>The following are the source packages of Kyoto Cabinet. As for binary packages, see the site of each distributor.</p> <ul> <li><a href="http://fallabs.com/kyotocabinet/pkg/">Source Packages of the core library (C/C++)</a></li> </ul> <ul> <li><a href="http://fallabs.com/kyotocabinet/javapkg/">Source Packages for Java</a></li> <li><a href="http://fallabs.com/kyotocabinet/pythonpkg/">Source Packages for Python 3.x</a></li> <li><a href="http://fallabs.com/kyotocabinet/pythonlegacypkg/">Source Packages for Python 2.x</a></li> <li><a href="http://fallabs.com/kyotocabinet/rubypkg/">Source Packages for Ruby</a></li> <li><a href="http://fallabs.com/kyotocabinet/perlpkg/">Source Packages for Perl</a></li> <li><a href="http://fallabs.com/kyotocabinet/luapkg/">Source Packages for Lua</a></li> </ul> <ul> <li><a href="http://fallabs.com/kyotocabinet/winpkg/">Binary Packages for Windows (C/C++/Java)</a></li> </ul> <hr /> <h2 id="information">Information</h2> <p>Kyoto Cabinet was written and is maintained by <a href="http://fallabs.com/">FAL Labs</a>. You can contact the author by e-mail to `info@fallabs.com'. If you want the commercial license, please see <a href="http://fallabs.com/license/">the license guide</a>.</p> <p>The following are sibling projects of Kyoto Cabinet.</p> <ul> <li><a href="http://fallabs.com/kyototycoon/">Remote Service (Kyoto Tycoon)</a></li> </ul> <hr /> </body> </html> <!-- END OF FILE -->