Skip to content
This repository was archived by the owner on Feb 21, 2024. It is now read-only.

Repository files navigation

IMPORTANT

Starting 21st of February 2024, splunk/lightproto project is archived. That means Splunk organization is no longer maintaining and supporting lightproto features/project.

Light Proto serialization

Features

  1. Generate the fastest possible Java code for Protobuf SerDe
  2. 100% Compatible with proto2 definition and wire protocol
  3. Zero-copy deserialization using Netty ByteBuf
  4. Deserialize from direct memory
  5. Zero heap allocations in serialization / deserialization
  6. Lazy deserialization of strings and bytes
  7. Reusable mutable objects
  8. No runtime dependency library
  9. Java based code generator with Maven plugin

Benchmark

java -jar benchmark/target/benchmarks.jar
Benchmark Mode Cnt Score Error Units
ProtoBenchmark.lightProtoDeserialize thrpt 3 8.445 ± 1.734 ops/us
ProtoBenchmark.lightProtoSerialize thrpt 3 4.056 ± 1.628 ops/us
ProtoBenchmark.protobufDeserialize thrpt 3 2.465 ± 0.682 ops/us
ProtoBenchmark.protobufSerialize thrpt 3 2.242 ± 0.186 ops/us
SimpleBenchmark.lightProtoDeserialize thrpt 3 37.414 ± 4.980 ops/us
SimpleBenchmark.lightProtoDeserializeReadString thrpt 3 17.367 ± 1.790 ops/us
SimpleBenchmark.lightProtoSerialize thrpt 3 35.473 ± 6.325 ops/us
SimpleBenchmark.protobufDeserialize thrpt 3 8.255 ± 1.104 ops/us
SimpleBenchmark.protobufSerialize thrpt 3 18.960 ± 4.626 ops/us
StringEncodingBenchmark.jdkEncoding thrpt 10 14.031 ± 0.394 ops/us
StringEncodingBenchmark.jdkEncodingAscii thrpt 10 19.279 ± 0.448 ops/us
StringEncodingBenchmark.nettyEncoding thrpt 10 27.273 ± 0.988 ops/us
StringEncodingBenchmark.nettyEncodingAscii thrpt 10 36.140 ± 0.693 ops/us

About

Protobuf compatible code generator

Resources

Stars

30 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages