OxiProto 0.1.1 Release
[0.1.1] - 2026-06-04
Added
Builder::incremental(cache_path)— enable incremental compilation inoxiproto-buildusing a FNV-1a 64-bit fingerprint cache; skips codegen entirely when all input.protofiles are unchangedBuilder::native_impl(bool)— newnative-codegenfeature flag onoxiproto-buildthat emitsOxiMessage+OxiNameimpl blocks alongside prost-generated code into*_oxi.rsfiles per proto packageEditiontype inoxiproto-buildparser AST — parsesedition = "2023";statements in.protofiles;UnsupportedEditionandSyntaxAndEditionConflictparse errors addedToken::Editionkeyword token added to the native parser lexeroxiproto_core::arenamodule —ArenaVec<T>,StringPool,BytesArena, andArenaDecodertypes for slab-based pre-allocation of repeated protobuf fields, reducing heap fragmentation on hot decode pathsoxiproto_core::reflect_bridgemodule — bridge between the nativeOxiMessage/OxiNametraits andprost_reflect::DynamicMessagefor runtime reflectionoxiproto_core::wire::alloc_profilemodule — allocation profiling utilities for wire-format encode/decode performance analysisDynamicMessage::to_json/to_json_string/from_json/from_json_str— canonical proto3 JSON encoding and decoding onoxiproto-reflectdynamic messages, including 64-bit integer string encoding,NaN/Infinityfloat literals, base64 bytes, and enum name mapping- Native text-format encode/decode (
oxiproto-reflect) —DynamicMessagetext-format serialisation and parsing in a newnative::textmodule oxiproto-cli mansubcommand — generates ROFF man pages for all CLI commands viaclap_mangen, written to a configurable output directoryoxiproto::migrationmodule — documentation-only guide mappingprost/prost-buildAPIs to their OxiProto equivalents (derive macros, build scripts, trait table)generate_to_writer/generate_to_writer_defaultfunctions inoxiproto-codegen— stream generated Rust source into anystd::io::Writesink without an extraStringcopy- Criterion benchmark suites for
oxiproto-build(parse throughput, import resolution, deep chains, diamond graphs, wide fan-out),oxiproto-codegen,oxiproto-reflect(dynamic dispatch, memory, pool), andoxiproto-cli(startup latency) proptest-based property tests and fuzz corpus tests foroxiproto-corewire encoding andoxiproto-buildparser- Cross-validation test suite (
prost_cross_validate.rs) comparing OxiProto wire output byte-for-byte against prost for all scalar and composite field types oxiproto-builddev-dependency onoxiproto-codegenrestored (was temporarily removed for publish)proptest,criterion, andclap_mangenadded to workspace dependencies
Changed
file_syntax_stringhelper introduced inoxiproto-builddescriptor builder:edition = "2023"files now emit"editions"as theFileDescriptorProto.syntaxsentinel, matching the protoc wire formatis_proto2detection refactored intofile_is_proto2()helper used consistently across bothbuild_file_descriptor_protocall sites- All workspace crates bumped from
0.1.0to0.1.1
Full Changelog: v0.1.0...v0.1.1