Chronos

Versioned data storage, embeddable and easy to use.

License

License

GroupId

GroupId

com.github.martinhaeusler
ArtifactId

ArtifactId

chronos
Last Version

Last Version

0.9.1
Release Date

Release Date

Type

Type

jar
Description

Description

Chronos
Versioned data storage, embeddable and easy to use.
Project URL

Project URL

https://github.com/MartinHaeusler/chronos
Source Code Management

Source Code Management

https://github.com/MartinHaeusler/chronos

Download chronos

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.martinhaeusler/chronos/ -->
<dependency>
    <groupId>com.github.martinhaeusler</groupId>
    <artifactId>chronos</artifactId>
    <version>0.9.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.martinhaeusler/chronos/
implementation 'com.github.martinhaeusler:chronos:0.9.1'
// https://jarcasting.com/artifacts/com.github.martinhaeusler/chronos/
implementation ("com.github.martinhaeusler:chronos:0.9.1")
'com.github.martinhaeusler:chronos:jar:0.9.1'
<dependency org="com.github.martinhaeusler" name="chronos" rev="0.9.1">
  <artifact name="chronos" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.martinhaeusler', module='chronos', version='0.9.1')
)
libraryDependencies += "com.github.martinhaeusler" % "chronos" % "0.9.1"
[com.github.martinhaeusler/chronos "0.9.1"]

Dependencies

compile (9)

Group / Artifact Type Version
com.google.guava : guava jar 19.0
org.apache.commons : commons-lang3 jar 3.4
org.apache.commons : commons-collections4 jar 4.1
commons-io : commons-io jar 2.4
commons-configuration : commons-configuration jar 1.10
org.slf4j : slf4j-api jar 1.7.12
org.slf4j : jcl-over-slf4j jar 1.7.12
org.slf4j : jul-to-slf4j jar 1.7.12
ch.qos.logback : logback-classic jar 1.1.3

test (2)

Group / Artifact Type Version
junit : junit jar 4.12
org.hamcrest : hamcrest-all jar 1.3

Project Modules

There are no modules declared in this project.

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.

Versions

Version
0.9.1
0.7.3
0.5.7
0.5.4