diff --git a/byte-mapper/.metadata.json b/byte-mapper/.metadata.json new file mode 100644 index 0000000..980e0c8 --- /dev/null +++ b/byte-mapper/.metadata.json @@ -0,0 +1,5 @@ +{ + "displayName": "Byte Mapper", + "pubDate": "17.02.2026", + "hide": true +} \ No newline at end of file diff --git a/byte-mapper/index.md b/byte-mapper/index.md new file mode 100644 index 0000000..74e750f --- /dev/null +++ b/byte-mapper/index.md @@ -0,0 +1,48 @@ +# byte-mapper + +Удобный сериализатор и десериализатор 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); +``` \ No newline at end of file