{"repo":"alecthomas/go_serialization_benchmarks","free":true,"listed":false,"github":"https://github.com/alecthomas/go_serialization_benchmarks","clone":"git clone https://github.com/alecthomas/go_serialization_benchmarks.git","description":"Benchmarks of Go serialization methods","language":"Go","stars":1623,"topics":["benchmarking","go","golang"],"license":null,"category":"dev-tools","readme_excerpt":"Benchmarks of Go serialization methods This is a test suite for benchmarking various Go serialization methods. Current Serialization Results https://alecthomas.github.io/go serialization benchmarks Running the benchmarks To benchmark and validate, without cloning the repository, replace the . from the commands below with github.com/alecthomas/go serialization benchmarks@latest . To validate the correctness of the serializers: To update the benchmark report: To update the benchmark report with a longer benchmark run (to get more accurate results): Recommendation If correctness and interoperability are the most important factors JSON or Protobuf are your best options. But as always, make your own choice based on your requirements. Adding New Serializers Review the following instructions before opening the PR to add a new serializer: - Create all the required serializer code in internal/ . - Add an entry to the serializer in benchmarks.go. - If the serializer supports both reusing/not reusing its marshalling buffer: - Add both a serializer and serializer/reuse entries, each one respectively reusing/not reusing the resulting marshalling buffer. Set the BufferReuseMarshal flag accordingly. - If the serializer supports both safe and unsafe string unmarshalling: - Add both a serializer and serializer/unsafe entries, each one respectively unmarshalling into safe and unsafe strings. Set the UnsafeStringUnmarshal flag accordingly. - If the serializer supports both marshalling buffer re","default_branch":null,"files":null,"tree":[],"storefront":"/r/alecthomas","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/alecthomas/go_serialization_benchmarks/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}