consysT is a language and middleware which allows programmers to replicate data under specified consistency levels. The type system ensures safe mixing of consistency levels.
The language has a binding for Java. The implementation of the middleware is in Scala.
Find more information on our website at https://consysT-project.github.io.
The project is built with Maven. Detailed instructions are found at https://consyst-project.github.io/install.html.
In IntelliJ, you have to add the annotation processor manually.
-
Go to
Preferences > Annotation Processors
. You can try to checkObtain from project
. IntelliJ may be able to retrieve the correct checker by default. If it can, you are already finished. -
Add the compiled jar of the consys-type-checker project
-
Add the checker.jar from the CheckerFramework
-
Choose
de.tu_darmstadt.consistency_types.checker.ConsistencyChecker
as annotation processor.
These applications have to be installed and running to correctly use the system:
(For the Cassandra binding):
- Apache Cassandra 4.0.0-alpha3
- Zookeeper 3.5.6
You need Cassandra 4.0+ to run with Java 11.
When running Cassandra locally, best use the Cassandra Cluster Manager ccm
.
- Create a new cluster. Ensure that the cluster uses at least Cassandra version 4.0.
ccm create consys_cluster -v 4.0.3
- Create nodes for the cluster.
ccm populate -n 3
- Start the cluster.
ccm start
-
consys-core: Implementation of the middleware. Integrates Cassandra, Zookeeper, and/or Akka.
-
consys-japi: Implementation of the frontend API for Java projects. Requires the consys-compiler Javac plugin.
-
consys-compiler: Javac plugin for preprocessing Java API.
-
consys-type-checker: Implementation of the type checker using the Checker framework.
-
integration-tests: Fully integrated ConSysT project for testing and playing around.
-
consys-bench: Benchmark framework.
-
demos: Case studies and benchmarks.
-
examples: Implementation of several libraries/case studies using ConSysT.
The main developer is Mirko Köhler under supervision of Prof. Guido Salvaneschi.
We thank the many developers that helped with the project:
- PhD students
- Nafise Eskandani
- Pascal Weißenburger
- Students
- Victor Schümmer and Jesper Schlegel
- Martin Edlund
- Matthias Heinrich and Julian Hindelang
- Pascal Osterwinter
- Tobias Chen and Niklas Reiche