Clone wiki

yatce / Home

Welcome to Yatce wiki

YATCE is Yet Another Tokyo Cabinet-Erlang binding. Pronounces like <catch>. Japanese documentation follows English documentation.

Why Yatce?

This kind of bindings are already popular but at last I've found myself having written the code. What's different from existing ones:

They are mostly using erlang:port_command/2 or erlang:send/2 (same as '!'), which makes additional cost for thread-context switch (sometimes erlang process, sometimes pthread! ).

Yatce is different from these because using Linked-in drivers of erlang, using erlang:port_control/3, directly calls C-written code without any context switching. This is not only recommend-me-not, but strongly discouraged in erlang online document.


  • (maybe) fast because uses erlang:port_control/3
  • concurrent implementation, of course. fully utilizes both multicore and I/O
  • OO-friendly interface (basically using tokyocabinet.idl)
  • Accessible to Multiple Tables
  • dual license: LGPL/MIT (any Lisence will be considered if you want)
  • Works on Linux(Especially Debian, *nix-like OSes) and Mac Leopard / erlang R13B01 / TC 1.4.24

Current Status

  • Latest Version: 0.10.0 in default (development line is branch 'dev' - which was NIF'd)
  • seems working well with erlang:port_control/3
  • supports most operations of TCADB
    • wraps CRUD, tcadbiterinit, tcadbiternext, tcadbsync, tcadbvanish
  • memory seems not leaking
  • looking for commiters!

Future Works

see Issues.


Japanese Translation

ようこそ! YATCEは「やっちぇ」と読んでいます。もっといい名前があったら教えてください。

Why Yatce?


Future Works

see Issues.