ruby-tdb.git  about / heads / tags
Trivial Database bindings for Ruby
$ git log --pretty=format:'%h %s (%cs)%d' v0.2.0 --
be4d28e Ruby tdb - 0.2.0 - optional thread-safety (2010-12-07)
	(tag: v0.2.0)
203e6a4 README: fix grammar error (2010-12-06)
76a6857 add support for "clear" and "repack" methods (2010-12-04)
91774f1 README: update with thread-safety usage (2010-12-03)
c6c2f77 add optional thread-safety on a per-object basis (2010-12-03)
2a31a29 README: add an extra note for non-Debian users (2010-12-03)
2ad2c8b lookup3: fix build from missing #include (2010-12-03)
424f350 README: add Caveats section (2010-12-02)
cd3d6d5 RDoc updates (2010-12-02)
edb517a gemspec: do not modify VERSION env (2010-12-01)
...

$ git cat-file blob v0.2.0:README
= tdb - Trivial Database bindings for Ruby

TDB is much like other DBM implementations, except it allows concurrent
writer processes.  TDB was initially developed for Samba, but is used by
other projects as well.  These Ruby bindings allow Ruby apps to read and
write to the same databases used by Samba!

== Features

* Concurrent reader and writer processes may safely operate on the
  same file.  This is great for MRI 1.8 and 1.9 where multi-core
  performance is easiest to achieve with processes and not threads.

* Fork-safe, you may fork and share the same TDB object in your parent
  and child processes.

* Releases the GVL for slow disk operations under Ruby 1.9 so
  other threads can run (but not other TDB operations on the same file)

* Includes several {hash functions}[link:Hash_Functions.html]
  not included by upstream TDB.

== Caveats

These caveats will be addressed upstream in
{TDB2}[http://mid.gmane.org/201008021002.47351.rusty@rustcorp.com.au]

* NOT native thread-safe by default, you MUST initialize your TDB
  objects with <code>:threadsafe => true</code> or call
  TDB#threadsafe! on each TDB object if you run with threads
  under Ruby 1.9 (but not 1.8).

* Database size is limited to 4G, even on 64-bit systems.

* TDB should be created with an appropriate :hash_size for large databases
  or performance will suffer.

== Install

The original tdb library from the {main site}[http://tdb.samba.org/] is
required.  Debian users can just <code>apt-get install tdb-dev</code>.
Non-Debian users: building against upstream tdb 1.2.2 and 1.2.7 are
known to be broken, so installing tdb from the latest git is
recommended.

The library consists of a C extension so you'll need a C compiler
and Ruby development libraries/headers.

You may download the tarball from our
{download site}[http://bogomips.org/ruby-tdb/files/] and run setup.rb after
unpacking it:

  http://bogomips.org/ruby-tdb/files/

You may also install it via RubyGems on RubyGems.org:

  gem install tdb

If you have a tdb installation in a non-standard prefix, you
will have to use:

  gem install tdb -- --with-tdb-dir=$PFX

Or if you have a non-standard prefix that linkers normally do not search:

  gem install tdb -- --with-tdb-dir=$PFX --with-dldflags=-Wl,-rpath=$PFX/lib

You can get the latest source via git from the following locations
(these versions may not be stable):

  git://git.bogomips.org/ruby-tdb.git
  git://repo.or.cz/ruby-tdb.git (mirror)

You may browse the code from the web and download the latest snapshot
tarballs here:

* http://git.bogomips.org/cgit/ruby-tdb.git (cgit)
* http://repo.or.cz/w/ruby-tdb.git (gitweb)

See the HACKING guide on how to contribute and build prerelease gems
from git.

== Contact

All feedback (bug reports, user/development dicussion, patches, pull
requests) go to the {mailing list}[mailto:ruby.tdb@librelist.org].

For the latest on tdb releases, you may check our NEWS page (and
subscribe to our Atom feed).

# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
	--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master       Ruby tdb 0.6.4 (2020-02-21)

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
v0.6.4       Ruby tdb 0.6.4 (2020-02-21) tar.gz
v0.6.2       Ruby tdb 0.6.2 - fix for Ruby 1.9.3, new mailing list (2014-10-03) tar.gz
v0.6.1       Ruby tdb 0.6.1 - many updates (2014-02-10) tar.gz
v0.6.0       Ruby tdb 0.6.0 - many updates (2014-02-10) tar.gz
v0.5.0       Ruby tdb 0.5.0 - reusable buffer for fetch (2011-01-17) tar.gz
v0.3.0       Ruby tdb - 0.3.0 - TDB::HashFunctions for Metropolis (2010-12-13) tar.gz
v0.2.0       Ruby tdb - 0.2.0 - optional thread-safety (2010-12-07) tar.gz
v0.1.0       tdb 0.1.0 - initial release! (2010-12-01) tar.gz

# associated public inboxes:
# (number on the left is used for dev purposes)
            https://yhbt.net/ruby-tdb-public

git clone https://yhbt.net/ruby-tdb.git