[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 |