50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
# byte-mapper
|
||
|
||
Состояние: <blue-badge>v1.0.1</blue-badge>
|
||
|
||
Удобный сериализатор и десериализатор Java объектов в виде компактного массива байт. Берет лучшее из нескольких технологий:
|
||
- Компактность, схожая с ProtoBuf;
|
||
- Синтаксическое удобство, как у JPA;
|
||
- Простота использования, как у Jackson ObjectMapper;
|
||
|
||
Ссылки: [GitHub](https://github.com/FalmerF/byte-mapper)
|
||
|
||
## Пример
|
||
|
||
```java title="User.class"
|
||
@ByteEntity(1)
|
||
public class User {
|
||
|
||
@ByteProperty(1)
|
||
private int id;
|
||
|
||
@ByteProperty(2)
|
||
private String firstName;
|
||
|
||
@ByteProperty(3)
|
||
private short age;
|
||
|
||
@ByteProperty(4)
|
||
private Address address;
|
||
|
||
@ByteProperty(5)
|
||
private Contact[] contacts;
|
||
|
||
// Getters and Setters...
|
||
}
|
||
```
|
||
|
||
```java
|
||
// Create Byte Mapper Context
|
||
ByteMapperContext context = new ByteMapperContext();
|
||
mapper = context.getByteMapper();
|
||
|
||
// Write User object to ByteBuffer
|
||
ByteBuffer exampleBuffer = ByteBuffer.allocate(1024);
|
||
mapper.write(exampleBuffer, user);
|
||
|
||
buffer.flip();
|
||
|
||
// Read User object from ByteBuffer
|
||
user = mapper.read(exampleBuffer);
|
||
``` |