Skip to content

Releases: mirage/irmin

Support backend-specific push/pull protocols

11 Jun 10:11
Compare
Choose a tag to compare
  • Support backend specific protocols for push/pull
  • The Irmin Git backend can now sync with remote Git repositories
  • Simplify the organisation of the libraries: irmin, irmin.backend,
    irmin.server and irmin.unix (check how the example are compiled)
  • Small refactoring to ease the use of the API. Now use open Irmin_unix
    at the top of your file and use less functor in your code (again,
    check the examples)

Javascript graphs & fix IrminMemory.create to create a shared store

02 Jun 21:58
Compare
Choose a tag to compare
  • Fix the behavior of IrminMemory.Make to return an hanlder to a
    shared datastore instead of creating a fresh one. Add
    IrminMemory.Fresh to return a fresh in-memory datastore maker.
  • The HTTP server now outputs some nice graph (using dagre-d3). Don't
    expect to display very large graphs
  • More friendly tag names in the Git backend (no need to prefix
    everything by refs/heads/ anymore)
  • Partial support for recursive stores (WIP)

Cleaner external API

27 May 22:31
Compare
Choose a tag to compare
Cleaner external API Pre-release
Pre-release
  • Spring clean-ups in the API. Separation in IrminBranch for
    fork/join operations, IrminSnapshot for snapshot/revert
    operations and IrminDump for import/export operations.
    The later two implementation can be derived automaticaly
    from a base IrminBranch implementation. The update and merge
    operations are supported on each backend
  • IrminGit does not depend on unix anymore and can thus be
    compile to javascript or xen with mirage
  • No need to have bin_io converter for contents anymore
  • No need to have JSON converter for contents anymore
  • No more IrminDispatch
  • Add an optional branch argument to Irmin.create to use
    an already existing branch
  • Fix order of arguments in Irmin.merge

Support for views, speed improvement

02 May 14:41
Compare
Choose a tag to compare
Pre-release
  • Feature: support for in-memory transactions. They are built
    on top of views.
  • Feature: add support for views: these are temporary stores with
    lazy reads + in-memory writes; they can be used to convert back
    and forth an OCaml value into a store, or to have a fast stagging
    area without the need to commit every operation to the store.
  • Support custom messages in commit messages
  • Improve the IrminMerge API
  • Backend: add a 'dispatch' backend for combining multiple backends
    into one. This can be used to have a P2P store where there is
    well-defined mapping between keys and host (as a DHT).
  • Fix: limit the number of simulteanous open files in the Git and
    the file-system backend
  • Speed-up the in-memory store
  • Speed-up the import/export codepath
  • Speed-up the reads
  • Speed-up IrminValue.Mux
  • Deps: use ocaml-sha instead of cryptokit

Support for merge and user-defined contents

12 Apr 13:47
Compare
Choose a tag to compare
  • Support for user-defined contents (with custom merge operators)
  • Support for merge operations
  • Rename IrminTree to IrminNode to reflect the fact that we
    can support arbitrary immutable graphs (it's better if they are
    DAGs but that's not mandatory)
  • Rename IrminBlob to IrminContents to reflect the fact that
    we also support structured contents (as JSON objects)
  • Support for linking the library without linking to camlp4 as well (#23)

Support for cohttp 0.10.*

26 Mar 16:49
Compare
Choose a tag to compare
Pre-release
0.5.1

Bump version to 0.5.1

Support non-UTF8 blobs and consistent support for watches across backends

21 Feb 23:19
Compare
Choose a tag to compare
  • More consistent support for notifications. irmin watch works
    now for all backends.
  • Support for different blob formats on the command-line
  • Support for JSON blobs
  • More flexible irmin fetch command: we can now choose the backend to
    import the data in
  • Fix import of Git objects when the blobs were not imported first
  • Support non-UTF8 strings as path name and blob contents (for all
    backends, including the JSON one)
  • Speed-up the slow tests execution time
  • Improve the output graph when objects of different kinds might have
    the same SHA1

API changes and Git backend

21 Jan 14:13
Compare
Choose a tag to compare
Pre-release
  • The command-line tool now looks in the environment for the variable
    IRMIN to configure its default backend
  • Add a Git backend
  • Add Travis CI scripts to the repo
  • Use Lwt_bytes and Lwt_unix instead of the custom-made IrminChannel
  • Use bin_prot instead of a custom binary protocol
  • Major refactoring: Value is now Blob, Revision is now Commit
    and Tag becomes Reference (rational: consistency with Git names)
  • Use core_kernel instead of building a custom Identiable.S
  • Use dolog instead of a custom log library
  • Use mstruct (mutable buffers on top of cstruct) which is now
    released independently

switch to oasis

13 Dec 17:12
Compare
Choose a tag to compare
switch to oasis Pre-release
Pre-release

CHANGES:

  • Fix a fd leak in the filesystem bakend
  • Functorize the CRUD interface over the HTTP client implementation
  • Use oasis to build the project
  • Use the now released separately ezjsonm and alcotest libraries