github apache/fory v0.15.0-rc1

pre-release7 hours ago

Highlights

  • feat(go): new golang xlang serialization implementation by @chaokunyang in #3063
  • feat(rust): add tuple struct support and improve generic type handling by @ariesdevil in #3087
  • refactor(rust): unify tuple struct and named struct protocol, and make schema evolution happy by @ariesdevil in #3092
    feat(java/python/rust/go/c++): align nullable meta for xlang struct fields serialization by @chaokunyang in #3093
  • feat(java/python/rust/go/c++): xlang fields reference and typeinfo alignment by @chaokunyang in #3107
  • feat(c++): add SharedWeak for circular reference support by @chaokunyang in #3109
  • feat(xlang): support unsigned int for xlang by @chaokunyang in #3111 and #3113
  • feat(xlang/java): refactor java native serialization type system and streaming type info for xlang by @chaokunyang in #3153

Features

  • feat(java): add config params for IdentityObjectIntMap by @jim-parsons in #3048
  • perf: add cpp benchmark report by @chaokunyang in #3051
  • feat(python): add Union type support for xlang serialization by @zhan7236 in #3059
  • feat(go): new golang xlang serialization implementation by @chaokunyang in #3063
  • feat(java): enhance ForyField annotation with tag ID support for optimized serialization by @mchernyakov in #3021
  • feat(c++): add iterator container serialization support by @zhan7236 in #3068
  • refactor(go): refactor go error processing by @chaokunyang in #3069
  • feat(rust): add generate_default attr, no longer generate Default trait impl by default by @ariesdevil in #3074
  • feat(java): implement Union type support for cross-language serialization by @zhan7236 in #3062
  • perf(go): add go benchmarks and optimize performance by @chaokunyang in #3071
  • feat(python): add java python xlang tests and align protocol by @chaokunyang in #3077
  • feat(rust): add i128 and isize type support by @ariesdevil in #3080
  • feat(rust): add unit type and PhantomData serializer support by @ariesdevil in #3081
  • refactor(python): refactor pyfory serializers code structure by @chaokunyang in #3083
  • feat(rust): add union and none type support by @ariesdevil in #3084
  • feat(go): add go struct field tag support by @chaokunyang in #3082
  • feat(rust): add tuple struct support and improve generic type handling by @ariesdevil in #3087
  • feat(rust): support configure rust field meta to reduce cost by @chaokunyang in #3089
  • feat(c++): support customize c++ field meta by @chaokunyang in #3088
  • feat(ci): make rust xlang ci run separately to make ci faster by @chaokunyang in #3090
  • feat(python): support configure field meta for python by @chaokunyang in #3091
  • refactor(rust): unify tuple struct and named struct protocol, and make schema evolution happy by @ariesdevil in #3092
  • feat(java): build Descriptors with final ref_tracking flags by @chaokunyang in #3070
  • feat(java/python/rust/go/c++): align nullable meta for xlang struct fields serialization by @chaokunyang in #3093
  • feat(rust): implement fine-grained ref tracking for rust by @chaokunyang in #3101
  • feat(c++): fine-grained ref tracking for c++ by @chaokunyang in #3103
  • feat(java/python/rust/go/c++): xlang nullable/ref alignment by @chaokunyang in #3104
  • feat(java/python/rust/go/c++): xlang fields reference and typeinfo alignment by @chaokunyang in #3107
  • feat(java/python/go/rust): add circular reference xlang tests by @chaokunyang in #3108
  • feat(c++): add SharedWeak for circular reference support by @chaokunyang in #3109
  • feat(js): add schema-based per-field nullable support for xlang by @theharsh999 in #3100
  • feat(xlang): support unsigned int for xlang by @chaokunyang in #3111
  • feat(java): long array serializer support varint encoding by @Pigsy-Monk in #3115
  • feat(xlang): support serialization for unsigned types and field encoding config by @chaokunyang in #3113
  • perf(go): optimize go struct fields serialization perf by @chaokunyang in #3120
  • feat(java): int array serializer support varint encoding by @Pigsy-Monk in #3124
  • feat(java): support xlang serialization for GraalVM native image by @chaokunyang in #3126
  • refactor(go): rename go interface{} to any by @chaokunyang in #3128
  • refactor(xlang): remove magic number from protocol by @chaokunyang in #3137
  • feat(xlang): use little endian when serializing array of multiple byte element size by @chaokunyang in #3140
  • refactor(java/c++): rename morphic to dynamic by @chaokunyang in #3142
  • feat(xlang): add unsigned integer type support for JavaScript by @ayush00git in #3139
  • feat(dart): add unsigned number for dart by @ayush00git in #3144
  • feat(xlang/java): refactor java native serialization type system and streaming type info for xlang by @chaokunyang in #3153

Bug Fix

  • fix(docs): fix graalvm link by @chaokunyang in #3056
  • fix(Rust): prevent obtaining generic type metadata on custom types(struct/enum) by @urlyy in #3057
  • fix(Rust): Move the calculating of TypeMeta::bytes and TypeMeta::hash ahead of serialization by @urlyy in #3060
  • fix(java): Better ergonomics for AllowListChecker by @Asuka-star in #3061
  • fix(rust): output original registered ID in type mismatch error log by @userzhy in #3067
  • fix(java): Fix CopyOnWriteArrayList field serialization by @vybhavjs in #3079
  • fix(go): reference tracking fails when >127 objects serialized by @jonyoder in #3086
  • fix(java): fix abstract enum and abstract array serialization for GraalVM by @chaokunyang in #3095
  • fix(rust): enable Union type cross-language serialization between Rust and Java by @ariesdevil in #3094
  • fix: x86 architecture missing from universal2 macOS wheel by @madhavajay in #3114
  • fix(java): optimize type resolver calls for xlang mode on graalvm by @chaokunyang in #3129
  • fix(java): stop compilation service when shutdowning compile service by @chaokunyang in #3138
  • fix(python): fix collection null elements read/write by @chaokunyang in #3149
  • fix: typo in the xlang_serialization_spec.md by @ayush00git in #3151
  • fix(java): use littlen endian for utf16 string on big endian by @chaokunyang in #3159
  • fix(java): fix openj9 sliced string serde by @chaokunyang in #3160

Other Improvements

New Contributors

Full Changelog: v0.14.1...v0.15.0-rc1

Don't miss a new fory release

NewReleases is sending notifications on new releases.