Highlights
- feat(c#): c# serialization implementation by @chaokunyang in #3383
- feat(c#): add csharp target and idl integration tests by @chaokunyang in #3406
- feat(swift): implement fory serialization for swift language by @chaokunyang in #3359
- feat(swift): fory swift schema idl codegen by @chaokunyang in #3433
- feat(JavaScript): Support EXT,NAMED_EXT by @theweipeng in #3312
- feat(JavaScript): align xlang protocol by @theweipeng in #3316
- refactor(python): unify read/write api for python xlang and native mode by @chaokunyang in #3348
- feat(c++/python): support stream deserialization for c++ and python by @chaokunyang in #3307
- feat(python): fast cython struct serializer by @chaokunyang in #3443
- refactor(java): unify serializer write/read APIs and remove xwrite/xread by @chaokunyang in #3400
Features
- feat(grpc): update lexer/parser to support service and rpc definitions for idl compilers by @ayush00git in #3308
- feat(JavaScript): Support EXT,NAMED_EXT by @theweipeng in #3312
- feat(go): add missing type resolver for uint{16,32,64}slice by @BrianLii in #3311
- feat(JavaScript): support ForyField by @theweipeng in #3314
- feat(JavaScript): align xlang protocol by @theweipeng in #3316
- feat(javascript): add float16 support by @ayush00git in #3253
- feat(JavaScript): Align testcases by @theweipeng in #3319
- feat(go): update float16 array/slice logic in createSerializer by @BrianLii in #3318
- feat(JavaScript): Align testcase by @theweipeng in #3320
- feat(JavaScript): Align testcases by @theweipeng in #3321
- feat(dart): align dart xlang serialization by @chaokunyang in #3322
- feat(go): improve test coverage for int slice primitive serializers by @BrianLii in #3313
- refactor(dart): revamp runtime API and unify codegen naming by @chaokunyang in #3323
- feat(JavaScript): Align xlang protocol by @theweipeng in #3326
- feat(JavaScript): fix test_polymorphic_map by @theweipeng in #3327
- feat(dart): align dart with xlang serialization spec by @chaokunyang in #3325
- feat(go): add support for bfloat16 by @BrianLii in #3310
- feat(javascript): add bfloat16 and bfloat16_array support by @miantalha45 in #3328
- feat(JavaScript): fix testcase by @theweipeng in #3334
- refactor(dart): register xlang types by Type by @chaokunyang in #3332
- feat(javascript): align buffer read/write API with Java naming by @miantalha45 in #3346
- refactor(python): unify read/write api for python xlang and native mode by @chaokunyang in #3348
- feat(dart): add float16 to dart by @ayush00git in #3336
- feat(swift): implement fory serialization for swift language by @chaokunyang in #3359
- feat(compiler): add gRPC flags to fory compiler by @ayush00git in #3361
- feat(swift): implement schema evolution compatible mode for fory swift by @chaokunyang in #3363
- feat(swift): dynamic any serializer for polymorphism by @chaokunyang in #3368
- feat(swift): support enum/time serialization for swift by @chaokunyang in #3371
- feat(c++): add msgpack cpp benchmark by @chaokunyang in #3365
- feat(swift): add direct Fory initializer and update Swift docs by @chaokunyang in #3373
- feat: Add IEEE 754 float16 (binary16) support to Rust runtime by @AshharAhmadKhan in #3252
- feat(c#): c# serialization implementation by @chaokunyang in #3383
- perf(csharp): add csharp benchmarks and optimize hot serialization paths by @chaokunyang in #3396
- refactor(benchmarks): rename benchmark directories and update links by @chaokunyang in #3398
- refactor(java): unify serializer write/read APIs and remove xwrite/xread by @chaokunyang in #3400
- perf(swift): add fory swift serialization benchmark and optimize perf by @chaokunyang in #3395
- refactor(c#): refactor serializer interface to minimize API surface by @chaokunyang in #3403
- feat(compiler): add csharp target and idl integration tests by @chaokunyang in #3406
- feat(swift): harden decode paths and add missing wire type support by @chaokunyang in #3427
- feat(c#): add max depth and code lint support by @chaokunyang in #3428
- feat(c++/python): support stream deserialization for c++ and python by @chaokunyang in #3307
- feat(swift): fory swift schema idl codegen by @chaokunyang in #3433
- feat(dart): add configurable deserialization size guardrails by @yash-agarwa-l in #3434
- refactor(dart): merge all runtime exceptions into single fory_exception.dart by @yash-agarwa-l in #3436
- perf(python): optimize pyfory collection serialization performance by @chaokunyang in #3441
- feat(python): fast cython struct serializer by @chaokunyang in #3443
- perf(python): add python benchmark suite by @chaokunyang in #3448
- feat(python/cpp): add streaming serialization support to python and c++ by @chaokunyang in #3449
- feat(python/c++): shrink stream buffers after struct deserialization by @chaokunyang in #3453
- perf(c#): add csharp benchmark results by @chaokunyang in #3451
- refactor: clean java serialize api by @chaokunyang in #3454
- feat(rust): forbid late type registration after resolver snapshot ini… by @Geethapranay1 in #3435
- perf(ci): add Cargo caching to Rust CI jobs by @moon3482 in #3431
- feat(python): add configurable size guardrails by @eyad-hazem-elmorsy in #3429
- feat(go): add go desrialization support via io streams by @ayush00git in #3374
- perf(go): remove //go:inline directives and mark cold paths as //go:noinline by @ayush00git in #3456
- feat(c++): add configurable deserialization size guardrails by @shivendra-dev54 in #3455
- perf(swift): optimize swift performance by @chaokunyang in #3457
- feat(swift): make fory swift usable as deps by @chaokunyang in #3462
- perf: add fory performance optimization skill by @chaokunyang in #3463
- feat(xlang): support per-type evolution override by @chaokunyang in #3465
- feat(javascript): limit the depth of deserialize & serialize by @miantalha45 in #3382
Bug Fix
- fix(java): Fix EnumSetSerializer for enums with overriding methods by @NotLebedev in #3315
- fix(java): Deserialize nested HashMap subclasses by @mandrean in #3342
- fix(java): support TreeSet/TreeMap subclasses without Comparator constructor in SortedSet/SortedMapSerializer by @mandrean in #3344
- fix(c++): fix buffer read/write bound check by @chaokunyang in #3418
- fix: avoid NoClassDefFoundError in supportCodegenForJavaSerialization by @siy in #3424
- fix(docs): updated the compiler guide by @ayush00git in #3420
- fix(python): return UTC-aware datetime instead of naive datetime by @yuta4895 in #3439
- fix(docs): adjusted sidebar position and fixed typos by @ayush00git in #3450
- fix(python): support tuple dataclass fields and object instances by @chaokunyang in #3468
- fix(python): fix python wheel build by @chaokunyang in #3469
- fix(java): avoid deflater meta decompression hang on invalid input by @chaokunyang in #3472
Other Improvements
- docs: update guide and compiler docs by @chaokunyang in #3298
- docs: fix broken docs links and add fory-site check ci by @chaokunyang in #3299
- docs(java): fix benchmark images by @chaokunyang in #3304
- docs(c++): update readme and benchmarks docs by @chaokunyang in #3305
- docs: fix incorrect docs by @chaokunyang in #3309
- chore: Bump release version to 0.15.0 by @chaokunyang in #3317
- chore(deps): bump org.apache.avro:avro from 1.11.4 to 1.11.5 in /benchmarks/java_benchmark by @dependabot[bot] in #3338
- chore(python): define dependencies for development environment by @yuta4895 in #3360
- docs(java): update java benchmark plots by @chaokunyang in #3366
- docs(swift): refine swift api and docs by @chaokunyang in #3372
- chore: Bump MessagePack from 2.5.172 to 2.5.187 by @dependabot[bot] in #3401
- docs(csharp): add csharp guide and update README by @chaokunyang in #3404
- docs: adjust guide docs sidebar by @chaokunyang in #3407
- chore(python): handle duplicate field names by @eyad-hazem-elmorsy in #3384
- docs: Fix grammar: we follows to we follow by @04cb in #3442
- chore(c#): prepare for c# release by @chaokunyang in #3464
- docs: add ai contributing policy by @chaokunyang in #3437
- docs: simplify PR AI checklist and rename AI policy file by @chaokunyang in #3470
New Contributors
- @BrianLii made their first contribution in #3311
- @NotLebedev made their first contribution in #3315
- @miantalha45 made their first contribution in #3328
- @yuta4895 made their first contribution in #3360
- @AshharAhmadKhan made their first contribution in #3252
- @siy made their first contribution in #3424
- @yash-agarwa-l made their first contribution in #3434
- @eyad-hazem-elmorsy made their first contribution in #3384
- @04cb made their first contribution in #3442
- @Geethapranay1 made their first contribution in #3435
- @moon3482 made their first contribution in #3431
- @shivendra-dev54 made their first contribution in #3455
Full Changelog: v0.15.0...v0.16.0