[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] irminsule 0.4.0 is released

I've just put the rough notes of the demo I've done this morning online: 


On 21 Jan 2014, at 15:27, Thomas Gazagnaire <thomas@xxxxxxxxxxxxxx> wrote:

> 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



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.