|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [MirageOS-devel] irminsule 0.4.0 is released
I am very happy to cut the first 'early-alpha' release of irminsule[1], which
should be available in OPAM quite soon.
Irminsule is a distributed database with built-in snapshot, branch and
revert mechanisms. It is designed to use a large variety of backends,
although it is optimized for append-only store. Currently, there are 4
backends implemented: in-memory, custom binary format on disk,
CRUD interface (using JSON over HTTP) and Git.
Irminsule is written in pure OCaml. It can thus be compiled to Javascript
-- and run in the browsers; or into a Mirage microkernel -- and run directly
on top of Xen. Currently, though, the package is split into a pure library
('irminsule'), a bunch of backends (called `irmsule.backend`) and a unix HTTP
server ('irminsule.server'). The HTTP server and some of the backends works
only in unix, but they should be easy to mirage.
The package also comes with a command-line tool to experiment with the
various backends.
$ irmin init -m -d # start a daemon to read and store data in memory
$ irmin init -l /path/ -d # start a daemon to read and store data on disk
$ irmin init -r <uri> -d # start a daemon to read and store data using a
JSON protocol to reach the given uri
# (another irminsule instance should
listen on the given uri)
$ irmin init -g -d # start a daemon to read and store data using
the Git format
You can store the default backend in the IRMIN shell variable. Running 'irmin'
will automatically look in that variable to select the right backend.
$ export IRMIN=m # memory backend
$ export IRMIN=g # Git backend
$ export IRMIN=l:<path> # local backend
$ export IRMIN=r:<uri> # remote backend
Use `irmin read` and `irmin write` to read a write keys in the dabase.
Use `irmin tree` and `irmin ls` to inspect the database state
Use `irmin dump` to dump the database state in a .dot file
Use `irmin snapshot` to get the current HEAD
Use `irmin revert` to rollback to a previous HEAD
Use `irmin clone` and `irmin fetch` to create/update the local disk store from
the given backend.
For whose interested to write new backends, I suggest to have a look at [3]. If
you can provide something which satisfies the `AO_BINARY` signature, it's then
easy to build a backend for irminsule (the simplest one being the in-memory
one[4]).
The command are (poorly) documented using `irmin <cmd> --help`. Feel free to
ask questions on that list, report bugs and request feature on the bugtracker
[2].
Best,
Thomas
[1] https://github.com/samoht/irminsule
[2] https://github.com/samoht/irminsule/issues
[3] https://github.com/samoht/irminsule/blob/master/lib/core/irminStore.mli
[4] https://github.com/samoht/irminsule/blob/master/lib/backend/irminMemory.ml
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |