,

Kyoto Cabinet – Installation with Lua, compression using zip, lzo and lzma

Install Kyoto Cabinet


# http://torum.net/2010/01/kyotocabinet-alpha-release/
ulimit -u unlimited

#zlib compression
sudo apt-get install -y zlib1g-dev build-essential

#lzma compression
sudo apt-get install -y lzma liblzma-dev

#lzo compression
sudo apt-get install -y liblzo2-dev
sudo apt-get remove -y libtokyocabinet-dbg libtokyocabinet-dev tokyocabinet-bin libtokyocabinet9
sudo apt-get install -y xz-utils

#lua
#sudo apt-get install -y build-essential lua5.2 liblua5.2-0 liblua5.2-0-dbg liblua5.2-dev
sudo apt-get remove -y lua5.2 liblua5.2-0 liblua5.2-0-dbg liblua5.2-dev
sudo apt-get remove -y lua50 liblua50 liblua50-dbg liblua50-dev
sudo apt-get install -y  lua5.1 liblua5.1 liblua5.1-dev

#    that was the fix
sudo apt-get install -y zlib1g zlib1g-dev
#/***
#apt-get install zlib-devel -y --force-yes
#    checking for zlib.h... no
#    configure: error: zlib.h is required
#****/

#kyoto cabinet build
mkdir -p /tmp/build
cd /tmp/build
version="1.2.76"

# download
wget http://fallabs.com/kyotocabinet/pkg/kyotocabinet-$version.tar.gz

# extract
tar xvzf kyotocabinet-$version.tar.gz

# build and install
cd kyotocabinet-$version
./configure --enable-zlib --enable-lzo --enable-lzma
make
sudo make install

Language bindings available

Lua: http://fallabs.com/kyotocabinet/luapkg/
Perl: http://fallabs.com/kyotocabinet/perlpkg/
Python3: http://fallabs.com/kyotocabinet/pythonpkg/
Python2: http://fallabs.com/kyotocabinet/pythonlegacypkg/
Ruby: http://fallabs.com/kyotocabinet/rubypkg/
Java: http://fallabs.com/kyotocabinet/javapkg/

Install Python Bindings for Kyoto Cabinet

cd /tmp
wget http://fallabs.com/kyotocabinet/pythonlegacypkg/kyotocabinet-python-legacy-1.18.tar.gz
tar xvfz kyotocabinet-python-legacy-1.18.tar.gz
cd kyotocabinet-python-*
sudo python setup.py install

Alternative


sudo port install kyotocabinet + lzma + lzo
pip install-U http://fallabs.com/kyotocabinet/pythonlegacypkg/kyotocabinet-python-legacy-1.16.tar.gz
pip install-U tornado

Limitations

Only one writer process is permitted at a time.
The number of database readers is however unlimited.

Notes

Comparison with LuxIO: http://luxio.sourceforge.net/
Comparison with Google LevelDB: http://maxpert.tumblr.com/post/8330476086/leveldb-vs-kyoto-cabinet-my-findings
LevelDB with Kyoto Tycoon: http://fallabs.com/blog/promenade.cgi?id=30

References

1. http://d.hatena.ne.jp/nashuaki/20110721/1311240883
2. http://skipperkongen.dk/2013/02/14/giving-kyotocabinet-a-go/


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *