Skip to content

Releases: mirage/irmin

Improved efficiency and removal of Core_kernel dependency

26 Dec 01:14
Compare
Choose a tag to compare
  • Improve the efficiency of the Git backend
  • Expose a cleaner API for the Unix backends
  • Expose a cleaner public API
  • Rename Origin into Task and use it pervasively through the API
  • Expose a high-level REST API over HTTP (#80)
  • Fix the Git backend to stop constantly overwrite .git/HEAD (#76)
  • Add a limit on concurrently open files (#93, #75)
  • Add remove_rec to remove directories (#74, #85)
  • Remove dependency to core_kernel (#22, #81)
  • Remove dependency to cryptokit andsha1and usenocrypto` instead
  • Remove dependency to caml4
  • Fix writing contents at the root of the store (#73)
  • More efficient synchronization protocol between Irmin stores (#11)

Improve View.merge_path + dump graphs improvement

25 Jun 19:31
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)

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