Catalyst is an I/O and serialization framework designed for use in Atomix, Copycatand related projects. It provides high-level abstractions for common storage and networking facilities.
I/O
Catalyst provides a buffer abstraction over on-heap and off-heap memory, memory mapped files, and RandomAccessFile:
Catalyst provides an abstraction for asynchronous message-based
networking that allows different frameworks to be substituted for
communication in Copycat and Atomix:
Transport transport = NettyTransport.builder()
.withThreads(4)
.build();Client client = transport.client();
client.connect(new Address("localhost", 8888)).thenAccept(connection -> {
connection.send("Hello world!");
});
Serialization
Catalyst provides a binary serialization abstraction designed to
support a variety of frameworks and use cases. Serializers include
support for primitives, collections, Serializable, Externalizable, and Kryo andJackson serializers.