Skip to content

The Chronos versioning project aims to provide easy-to-use and reliable versioned data storage.

Notifications You must be signed in to change notification settings

MartinHaeusler/chronos

Repository files navigation

Attention: You are looking at the OLD version of Chronos.

The new repository can be found here: https://github.com/Txture/chronos

The Chronos Project

What is it?

The Chronos Project is an academic research project. It's aim is to provide simple versioned storage, for everyone. Chronos consists of several components, which will be released as soon as the corresponding research work is published.

Components

Currently, the following Chronos Components are available in the public repository:

  • ChronoDB, a Versioned Key-Value Store
  • ChronoGraph, a versioned TinkerPop-compliant OLTP Graph Database
  • ChronoSphere, a full-featured Ecore Model Repository

Version History

If somebody is wondering why the version numbers are "jumping" upwards: intermediate releases have been used for internal testing. Only releases that we consider fully stable will be released and published on this repository. This GitHub repository is not our development repository, so changes here will be infrequent.

0.9.1

  • Important: There has been a breaking change in the ChronoSphere persistence format. Files generated by older versions of ChronoSphere will not be compatible with this new version. This only affects ChronoSphere; ChronoGraph and ChronoDB are not affected by this change.
  • ChronoGraph now supports TinkerPop 3.3
  • ChronoDB now supports several merge modes in case of commit conflicts
  • ChronoGraph now attempts to merge conflicting commits instead of immediately throwing a CommitException
  • ChronoSphere now attempts to merge conflicting commits instead of immediately throwing a CommitException
  • Several performance enhancements to ChronoSphere
  • ChronoSphere now requires a terminating operation (e.g. toSet(), toList(), iterator()...) at the end of an EQuery chain. The implicit iterator has been removed.
  • ChronoSphere: several API extensions to the EQuery framework
  • Nummerous smaller improvements to stability and performance in all components

0.7.3

  • Added capabilities to index floating point numbers as well as integers (in addition to strings)
  • Many bugfixes to secondary indexing across all layers
  • Stability improvements
  • JavaDoc expanded
  • Public API of ChronoDB had an overhaul; these changes might be breaking if your code uses it directly.
  • ChronoGraph Public API was extended (non-breaking), ChronoSphere Public API remained the same.

0.5.x Early Release

  • First release with ChronoDB, ChronoGraph and ChronoSphere

Frequently Asked Questions

What about licencing?

The Chronos Project is based on a dual-license. For academic and open-source projects, the general license is the aGPLv3 license, unless noted otherwise. Commercial licenses are also available on demand.

BY CONTRIBUTING TO CHRONOS, YOU AGREE THAT YOUR CONTRIBUTIONS WILL BE LICENSED UNDER THE aGPL v3 LICENSE. Furthermore, by contributing to ChronoSphere, you hereby grant to Martin Häusler and any recipients of your contributions, including but not limited to users of this site, a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, use, make and distribute your contributions and any derivative works under all intellectual property rights including but not limited to copyright and patent. BY CONTRIBUTING TO CHRONOS, YOU REPRESENT AND WARRANT THAT YOU ARE LEGALLY ENTITLED TO GRANT THE FOREGOING LICENSE.

About

The Chronos versioning project aims to provide easy-to-use and reliable versioned data storage.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages