record-net/README.md

42 lines
1.6 KiB
Markdown

# record-net
Simple, performant message library for Java, using records.
record-net gives you the advantages of reflection, without the runtime costs. By registering message types before starting your work, record-net is able to generate custom serializers and deserializers for all registered message types, which translates to read and write speeds that are nearly equivalent to directly writing bytes to a stream.
Here's an example of how you can use record-net:
```java
import com.andrewlalis.record_net.Message;
import com.andrewlalis.record_net.impl.TypeMappedSerializer;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.Socket;
class Example {
record ChatMessage(
long timestamp,
String username,
String msg
) implements Message {
}
public static void main(String[] args) throws IOException {
var ser = new TypeMappedSerializer();
ser.registerType(1, ChatMessage.class);
var socket = new Socket("127.0.0.1", 8081);
var bOut = new ByteArrayOutputStream();
var msg = new ChatMessage(
System.currentTimeMillis(),
"andrew",
"Hello world!"
);
ser.writeMessage(msg, socket.getOutputStream());
ChatMessage response = (ChatMessage) ser.readMessage(socket.getInputStream());
}
}
```
## Get record-net
This project is published as a package on GitHub. You can view available packages [here](https://github.com/andrewlalis/record-net/packages). Alternatively, [you can get this project on jitpack.io](https://jitpack.io/#andrewlalis/record-net).