This is an automated email from the ASF dual-hosted git repository. chaokunyang pushed a commit to branch release_0.13.0 in repository https://gitbox.apache.org/repos/asf/fory-site.git
commit 74ce5a6ca20008383e8197697375b823f8af829a Author: chaokunyang <[email protected]> AuthorDate: Tue Oct 28 00:04:23 2025 +0800 release 0.13.0 --- blog/2025-10-27-fory_0_13_0_release.md | 333 +++++++++++++++++++++ docs/docs/start/install.md | 29 +- docs/guide/scala_guide.md | 2 +- .../current/docs/start/install.md | 40 ++- src/pages/download/index.md | 14 +- 5 files changed, 392 insertions(+), 26 deletions(-) diff --git a/blog/2025-10-27-fory_0_13_0_release.md b/blog/2025-10-27-fory_0_13_0_release.md new file mode 100644 index 000000000..bab4a05e8 --- /dev/null +++ b/blog/2025-10-27-fory_0_13_0_release.md @@ -0,0 +1,333 @@ +--- +slug: fory_0_13_0_release +title: Fory v0.13.0 Released +authors: [chaokunyang] +tags: [fory] +--- + +The Apache Fory team is pleased to announce the 0.13.0 release. This is a major release that includes [217 PR](https://github.com/apache/fory/compare/v0.12.3...v0.13.0) from 19 distinct contributors. See the [Install](https://fury.apache.org/docs/docs/start/install) Page to learn how to get the libraries for your platform. + +## Highlights + +- Dynamic Trait Object Serialization for Rust +- Shared/Circular ownership serialization for Rust +- Schema Forward/Backward compatibilify for Rust +- Drop-in Replacement for Python pickle: support local function/classes/`__reduce__`/`__getstate__` serialization +- Schema Forward/Backward compatibilify for Python dataclass +- Support codegen for xlang mode in java +- Primitive array compression using SIMD +- Compact Row Codec for Row Format +- Schema Forward/Backward compatibilify for Go +- Ahead-of-time codegen for golang struct serialization + +## Rust: First Release Highlights + +This is the first Apache Fory Rust release, delivering a complete, high‑performance serialization stack. If you build Rust services or libraries, you can now use Fory natively with strong typing, performance, and schema evolution. + +- Derive-based object graph serialization via `#[derive(ForyObject)]` +- Polymorphism for trait objects: `Box<dyn Trait>`, `Rc<dyn Trait>`, `Arc<dyn Trait>`, plus `dyn Any` +- Shared and circular reference tracking: `Rc`/`Arc` and `RcWeak`/`ArcWeak` +- Forward/backward compatible schema evolution (Compatible mode) +- Zero-copy Row format via `#[derive(ForyRow)]` with selective field access +- Thread-safe and multi-thread capable serialization (context pool) +- Broad collection support (e.g., `VecDeque`, `LinkedList`, `BTreeMap`, `BTreeSet`, `BinaryHeap`) + +Quick start (minimal example): + +```rust +use fory::{Fory, Error}; +use fory::ForyObject; + +#[derive(ForyObject, Debug, PartialEq)] +struct User { + name: String, + age: i32, + email: String, +} + +fn main() -> Result<(), Error> { + let mut fory = Fory::default(); + fory.register::<User>(1)?; + + let user = User { name: "Alice".into(), age: 30, email: "[email protected]".into() }; + let bytes = fory.serialize(&user)?; + let decoded: User = fory.deserialize(&bytes)?; + assert_eq!(user, decoded); + Ok(()) +} +``` + +- Guide: Rust Serialization – https://fory.apache.org/docs/docs/guide/rust_serialization +- Crate: fory on crates.io – https://crates.io/crates/fory +- API docs: docs.rs – https://docs.rs/fory/latest/fory + +## Python: Drop‑in Replacement for pickle + +`pyfory` now acts as a high‑performance drop‑in replacement for `pickle`/`cloudpickle`, while keeping the same simple API and adding security and performance features. + +- Serialize any Python object in Python‑native mode (`xlang=False`): global/local functions, lambdas, global/local classes, instance/class/static methods +- Honors Python hooks: `__getstate__`, `__setstate__`, `__reduce__`, `__reduce_ex__` +- Reference tracking for shared/circular graphs with `ref=True` +- Pickle protocol 5 out‑of‑band buffers for zero‑copy via `pickle.PickleBuffer` (NumPy, Pandas, etc.) +- Security: `strict=True` for registration‑based safety and `DeserializationPolicy` for fine‑grained control +- Threading: `ThreadSafeFory` for safe multi‑thread use +- Familiar API: `dumps/loads` are aliases of `serialize/deserialize` + +Quick start: + +```python +import pyfory + +# Drop-in replacement for pickle/cloudpickle +fory = pyfory.Fory(xlang=False, ref=True, strict=False) + +def make_multiplier(k): + def mul(x): + return k * x + return mul + +binary = fory.dumps(make_multiplier(10)) +assert fory.loads(binary)(3) == 30 +``` + +Read more: Python Guide – https://fory.apache.org/docs/latest/python_serialization/ + +## Features + +- feat(java): support object stream serialization for graalvm by @chaokunyang in https://github.com/apache/fory/pull/2464 +- refactor(java): rename abstract collection/map serializers to Map/ListLikeSerializer by @chaokunyang in https://github.com/apache/fory/pull/2466 +- feat(memory): add customizable MemoryAllocator interface by @adriacabeza in https://github.com/apache/fory/pull/2467 +- feat: Chain wheel test/build and release workflows by @esafak in https://github.com/apache/fory/pull/2483 +- feat(python): set default languge to python for pyfory by @chaokunyang in https://github.com/apache/fory/pull/2490 +- feat(python): add register api to python by @chaokunyang in https://github.com/apache/fory/pull/2491 +- feat(python): meta compression for python by @chaokunyang in https://github.com/apache/fory/pull/2504 +- feat(python): type meta encoding for python by @chaokunyang in https://github.com/apache/fory/pull/2509 +- feat(CI): Cache npm, add node 24, lock file by @esafak in https://github.com/apache/fory/pull/2523 +- feat(Rust): Implementing Type Compatible by @urlyy in https://github.com/apache/fory/pull/2492 +- feat(Rust): support Option in MetaFieldType se/de by @urlyy in https://github.com/apache/fory/pull/2528 +- feat(rust): support skipping fields bytes when deserializing in compatible mode by @urlyy in https://github.com/apache/fory/pull/2545 +- feat(go): add type meta encoding for meta share by @junjiexh in https://github.com/apache/fory/pull/2554 +- feat(Rust): Support automatic conversion between T and Option<T> when deserialize by @urlyy in https://github.com/apache/fory/pull/2563 +- feat(java): bean encoder implemented interfaces honor `@Ignore` by @stevenschlansker in https://github.com/apache/fory/pull/2576 +- refactor(java): refactor fory java exception hierarchical structure by @chaokunyang in https://github.com/apache/fory/pull/2577 +- feat(Go): Implement ahead of time codegen for fory-go serialization by @ThisingL in https://github.com/apache/fory/pull/2553 +- feat(java): support limit deserialization depth by @chaokunyang in https://github.com/apache/fory/pull/2578 +- feat(rust): add fory rust benchmark by @chaokunyang in https://github.com/apache/fory/pull/2583 +- perf(rust): optimize rust deserialize perf by @chaokunyang in https://github.com/apache/fory/pull/2584 +- feat(rust): add rust profiler for serialization by @chaokunyang in https://github.com/apache/fory/pull/2588 +- refactor(go): rename FieldInfo to FieldDef to avoide name collision by @junjiexh in https://github.com/apache/fory/pull/2594 +- feat(python): meta share mode for pyfory compatible serialization by @chaokunyang in https://github.com/apache/fory/pull/2593 +- feat(java/python): align java and python compatible mode serialization by @chaokunyang in https://github.com/apache/fory/pull/2602 +- feat(java/python): support enum xlang serialization by @chaokunyang in https://github.com/apache/fory/pull/2603 +- feat(Rust): support basic type se/de aligned with java by @urlyy in https://github.com/apache/fory/pull/2585 +- perf(python/java): Fix & optimize cross-language meta-share mode by @pandalee99 in https://github.com/apache/fory/pull/2601 +- feat(go): align cross-language type serialization for primitive arrays by @pandalee99 in https://github.com/apache/fory/pull/2610 +- feat(java): support codegen for xlang mode in java by @chaokunyang in https://github.com/apache/fory/pull/2613 +- feat(java): primitive array compression using SIMD by @adriacabeza in https://github.com/apache/fory/pull/2485 +- refactor(go): Replace globalTypeResolver with factory-based serializer registration by @ThisingL in https://github.com/apache/fory/pull/2615 +- feat(go): Implement compatible mode with metashare mode by @junjiexh in https://github.com/apache/fory/pull/2607 +- feat(java): support concurent map serialization when being updated by @chaokunyang in https://github.com/apache/fory/pull/2617 +- feat(java): support concurrent updates when serializing collections by @chaokunyang in https://github.com/apache/fory/pull/2623 +- feat(python): support limit pyfory depth by @chaokunyang in https://github.com/apache/fory/pull/2625 +- feat(Rust): sort fields && feat Enum && fix read/write type_info && fix type_meta en/decode by @urlyy in https://github.com/apache/fory/pull/2630 +- feat(python): drop-in replacement for pickle serialization by @chaokunyang in https://github.com/apache/fory/pull/2629 +- refactor(java): refactor type resolver by @chaokunyang in https://github.com/apache/fory/pull/2640 +- feat(java): support type converters for comaptible mode by @chaokunyang in https://github.com/apache/fory/pull/2641 +- refactor(java/python): refine collection header bitmap by @chaokunyang in https://github.com/apache/fory/pull/2642 +- feat(go): metashare mode support collection and map and nested object by @junjiexh in https://github.com/apache/fory/pull/2643 +- feat(go): Add slice and map support to fory-go codegen serialization by @ThisingL in https://github.com/apache/fory/pull/2638 +- refactor(go): Change codegen annotation from //fory:gen to //fory:generate by @ThisingL in https://github.com/apache/fory/pull/2648 +- feat(rust): support Map and register_by_name by @urlyy in https://github.com/apache/fory/pull/2649 +- feat(java): support graalvm 25 by @chaokunyang in https://github.com/apache/fory/pull/2652 +- feat(java): support deserialize not registered/exsited class/fields for xlang compatible mode by @chaokunyang in https://github.com/apache/fory/pull/2655 +- refactor(Rust): Refactor compile-time code & fix named_enum & fix skip enum by @urlyy in https://github.com/apache/fory/pull/2657 +- feat(python): support local py class serialization by @chaokunyang in https://github.com/apache/fory/pull/2665 +- refactor(go): refine collection header bitmap by @junjiexh in https://github.com/apache/fory/pull/2656 +- feat(python): support class methods serialization by @chaokunyang in https://github.com/apache/fory/pull/2670 +- refactor(go): refine collection header bitmap in codegen by @ThisingL in https://github.com/apache/fory/pull/2676 +- feat(rust): support box serde for rust by @chaokunyang in https://github.com/apache/fory/pull/2677 +- feat(rust): support reference tracking for rust Rc/Arc by @chaokunyang in https://github.com/apache/fory/pull/2678 +- feat(python): refine python serialization api by @chaokunyang in https://github.com/apache/fory/pull/2673 +- refactor(Rust): Refine api name by @urlyy in https://github.com/apache/fory/pull/2671 +- feat(rust): support rust dyn trait object serialization by @chaokunyang in https://github.com/apache/fory/pull/2691 +- feat(rust): support dyn any trait object serialization for box/arc/rc by @chaokunyang in https://github.com/apache/fory/pull/2704 +- feat(rust): support shared reference tracking for arc/rc<dny T> by @chaokunyang in https://github.com/apache/fory/pull/2707 +- feat(rust): avoid downcast method of multiple trait objects in same module conflict by @chaokunyang in https://github.com/apache/fory/pull/2708 +- feat(rust): add deref to arc/rc wrapper by @chaokunyang in https://github.com/apache/fory/pull/2709 +- refactor(rust): unify rc/arc wrapper macro arms into one function by @chaokunyang in https://github.com/apache/fory/pull/2711 +- perf(Rust): Use SIMD to se/de string by @urlyy in https://github.com/apache/fory/pull/2716 +- feat(Rust): named_xx se/de && ext se/de && add unittest by @urlyy in https://github.com/apache/fory/pull/2712 +- feat(rust): support RcWeak/ArcWeak for circular reference tracking by @chaokunyang in https://github.com/apache/fory/pull/2714 +- feat(rust): support limit max dyn depth by @chaokunyang in https://github.com/apache/fory/pull/2730 +- feat(Rust): Unroll fields loop & Add a feature for this by @urlyy in https://github.com/apache/fory/pull/2724 +- feat(python): make fory out-of-band serialization compatible with pickle5 by @chaokunyang in https://github.com/apache/fory/pull/2732 +- refactor(go): Replace legacy RegisterTagType api call by @junjiexh in https://github.com/apache/fory/pull/2696 +- feat(python): add thread safe fory by @chaokunyang in https://github.com/apache/fory/pull/2735 +- feat(rust): support VecDeque/LinkedList serialization by @chaokunyang in https://github.com/apache/fory/pull/2741 +- feat(rust): support btreemap serialization by @chaokunyang in https://github.com/apache/fory/pull/2743 +- feat(rust): support btree set and binary heap serialization by @chaokunyang in https://github.com/apache/fory/pull/2744 +- feat(Rust): support context_pool to reduce context allocation && support se/de in multi-thread by @urlyy in https://github.com/apache/fory/pull/2737 +- feat(ci): cache Bazel binary in Python CI workflow by @SanyamSuyal in https://github.com/apache/fory/pull/2745 +- feat(rust): rewrite fory derive macro for smaller and faster generated code using compile-time fields sort algorithm by @chaokunyang in https://github.com/apache/fory/pull/2749 +- feat(ci): add maven cache to ci for faster build by @chaokunyang in https://github.com/apache/fory/pull/2751 +- feat(rust): fast fory_read_compatible macro to use match by assigned field id by @chaokunyang in https://github.com/apache/fory/pull/2758 +- refactor(rust): use compatible bool instead of enum to simplify API by @chaokunyang in https://github.com/apache/fory/pull/2763 +- feat(rust): query type meta from parsed cache to speed up deserialization by @chaokunyang in https://github.com/apache/fory/pull/2764 +- feat(java): introduce Compact Row Codec by @stevenschlansker in https://github.com/apache/fory/pull/2414 +- feat(go): Add pointer field test for meta share mode by @junjiexh in https://github.com/apache/fory/pull/2674 +- feat(rust): make Serializer api to return Result && replace panic/expect/assert/unwrap with Result by @urlyy in https://github.com/apache/fory/pull/2765 +- feat(rust): refactor rust serialization system by @chaokunyang in https://github.com/apache/fory/pull/2774 +- feat(python): support optional typehint for dataclass fields by @chaokunyang in https://github.com/apache/fory/pull/2766 +- feat(rust): dynamic rust serializer system by @chaokunyang in https://github.com/apache/fory/pull/2778 +- feat(rust): use rc instead of arc for type meta for faster performance by @chaokunyang in https://github.com/apache/fory/pull/2782 +- feat(python): support dataclass compatible mode for python native mode by @chaokunyang in https://github.com/apache/fory/pull/2784 +- feat(java): support deserialize non exist enum variant to default by @chaokunyang in https://github.com/apache/fory/pull/2787 +- feat(go): update codegen field sorting to generate smaller and faster code by @ThisingL in https://github.com/apache/fory/pull/2779 +- feat(rust): make type meta resolve return type info directly by @chaokunyang in https://github.com/apache/fory/pull/2789 +- perf(Rust): remove clone()/to_owned() on MetaString/MetaStringBytes in MetaStringResolver to improve performance && fix xlang test by @urlyy in https://github.com/apache/fory/pull/2791 +- feat(rust): support static struct version hash check for rust by @chaokunyang in https://github.com/apache/fory/pull/2793 +- feat(rust): support profile all data types in rust benchmark by @chaokunyang in https://github.com/apache/fory/pull/2801 +- perf(rust): optimize rust small string/struct read/write performance by @chaokunyang in https://github.com/apache/fory/pull/2803 +- perf(rust): optimize rust performance by remove copy simd and add more inline hints by @chaokunyang in https://github.com/apache/fory/pull/2807 +- perf(rust): always use utf8 when writing string by @chaokunyang in https://github.com/apache/fory/pull/2809 +- feat(python): add deserialization policy for more fine-grained control and audit deserialization behaviour by @chaokunyang in https://github.com/apache/fory/pull/2811 +- perf(Rust): Enchance performance by @theweipeng in https://github.com/apache/fory/pull/2810 +- feat(Rust): Support serialize_to by @theweipeng in https://github.com/apache/fory/pull/2822 +- feat(rust): lazy build typeinfo for rust to avoid nested struct register deps by @chaokunyang in https://github.com/apache/fory/pull/2824 +- perf(Rust): Refactor reader by @theweipeng in https://github.com/apache/fory/pull/2826 +- perf(python): optimize pyfory perf by @chaokunyang in https://github.com/apache/fory/pull/2829 + +## Bug Fix + +- fix(java): fix map/list element type same with collection type jit error by @chaokunyang in https://github.com/apache/fory/pull/2465 +- fix(python): fix gh action pypi publish by @chaokunyang in https://github.com/apache/fory/pull/2468 +- fix(java): fix row encoder for private struct by @chaokunyang in https://github.com/apache/fory/pull/2469 +- fix(python): fix pyfory pypi release by @chaokunyang in https://github.com/apache/fory/pull/2473 +- fix(python): fix py release on macos 13 by @chaokunyang in https://github.com/apache/fory/pull/2478 +- fix(ci): Build python wheels using interpreters in manylinux2014 by @esafak in https://github.com/apache/fory/pull/2486 +- fix(java): Encoders.mapEncoder(TypeRef, TypeRef, TypeRef, Fory) should load bean classes by @stevenschlansker in https://github.com/apache/fory/pull/2494 +- fix(java): row format generated bean types handling Optional by @stevenschlansker in https://github.com/apache/fory/pull/2497 +- fix: Fix the issue of addListener not releasing the lock by @open-snail in https://github.com/apache/fory/pull/2500 +- fix(ci): Use $ROOT/dist for wheel distribution by @esafak in https://github.com/apache/fory/pull/2506 +- fix(python): fix publich tag for workflow by @chaokunyang in https://github.com/apache/fory/pull/2517 +- fix(ci): print workflow head branch by @chaokunyang in https://github.com/apache/fory/pull/2518 +- fix(python): fix release python wheel head_branch tag by @chaokunyang in https://github.com/apache/fory/pull/2519 +- fix(java): MemoryBuffer tests that equalTo works with size zero buffers by @stevenschlansker in https://github.com/apache/fory/pull/2524 +- fix(ci): Pass tag to bump_py_version, set PLAT inside manylinux container by @esafak in https://github.com/apache/fory/pull/2522 +- fix(ci): Use ref_name tag in Windows, name release runs, verify wheel versions, use all python versions for release by @esafak in https://github.com/apache/fory/pull/2532 +- ci: Fix verify_version() by capturing version properly by @esafak in https://github.com/apache/fory/pull/2535 +- fix(python): fix bump_wheel version by @chaokunyang in https://github.com/apache/fory/pull/2534 +- fix(python): fix bump version by @chaokunyang in https://github.com/apache/fory/pull/2536 +- fix(python): add macos 13 release by @chaokunyang in https://github.com/apache/fory/pull/2538 +- fix(ci): use lowercase for betahuhn/repo-file-sync-action by @chaokunyang in https://github.com/apache/fory/pull/2541 +- fix(ci): use commit hash for repo-file-sync-action by @chaokunyang in https://github.com/apache/fory/pull/2542 +- fix(java): array encoder seems to waste 8 bytes in encode(T) by @stevenschlansker in https://github.com/apache/fory/pull/2551 +- fix(ci): Install pyfory for golang xlang tests by @esafak in https://github.com/apache/fory/pull/2561 +- fix(ci): Exit with subprocess return code in run_ci.py by @esafak in https://github.com/apache/fory/pull/2560 +- fix(java): fix codegen name conflict by @chaokunyang in https://github.com/apache/fory/pull/2565 +- fix(java): fix classinfo npe on graalvm by @chaokunyang in https://github.com/apache/fory/pull/2572 +- fix(java): Skip calculation of classVersionHash if checkClassVersion is false by @theigl in https://github.com/apache/fory/pull/2573 +- fix(java): skip hash compute for abstract field type by @chaokunyang in https://github.com/apache/fory/pull/2575 +- fix(java): row format buffer recycling leaves offset and size for null values by @stevenschlansker in https://github.com/apache/fory/pull/2540 +- fix(java): fix xlang register type by id by @chaokunyang in https://github.com/apache/fory/pull/2591 +- fix(java): fix xlang mode meta shared for java by @chaokunyang in https://github.com/apache/fory/pull/2592 +- fix(python): Fix the build dependency failure that occurred in pyfory by @pandalee99 in https://github.com/apache/fory/pull/2596 +- fix(python): Delete the redundant code in typedef by @pandalee99 in https://github.com/apache/fory/pull/2600 +- fix(java): fix register by id for xlang metashare mode in java by @chaokunyang in https://github.com/apache/fory/pull/2614 +- fix(java/python): fix meta string encoding order by @chaokunyang in https://github.com/apache/fory/pull/2616 +- fix(go): Complete type registration in factory-based serializer system by @ThisingL in https://github.com/apache/fory/pull/2619 +- fix(python): fix pyfory depth limit by @chaokunyang in https://github.com/apache/fory/pull/2626 +- fix(java): fix get nested genericType for codegen by @chaokunyang in https://github.com/apache/fory/pull/2632 +- fix(python): register dynamic serializer only not require registration by @chaokunyang in https://github.com/apache/fory/pull/2634 +- fix(java): fix record serialization on graalvm25 by @chaokunyang in https://github.com/apache/fory/pull/2644 +- fix(java): fix field converter for xlang by @chaokunyang in https://github.com/apache/fory/pull/2654 +- fix(java): fix array serialization on graalvm by @chaokunyang in https://github.com/apache/fory/pull/2664 +- fix(java): fix meta share deserialization for register by @chaokunyang in https://github.com/apache/fory/pull/2667 +- fix(java): retain serializers in graalvm native images by @gudzpoz in https://github.com/apache/fory/pull/2680 +- fix(java): fix graalvm not use generated serializer by @chaokunyang in https://github.com/apache/fory/pull/2682 +- fix(java): fix register serializer for xlang in java by @chaokunyang in https://github.com/apache/fory/pull/2683 +- fix(java): fix InputStream read big buffer error by @wuwangben in https://github.com/apache/fory/pull/2687 +- fix(python): fix python module/type serialize by @chaokunyang in https://github.com/apache/fory/pull/2688 +- fix(java): Fix flakiness in CollectionSerializersTest#tesPriorityQueueSerializer by @swj20010308 in https://github.com/apache/fory/pull/2693 +- fix(java): Fix flakiness in LazyMapTest#testMap by @swj20010308 in https://github.com/apache/fory/pull/2692 +- fix(java): fix deserializing EXT type bug by @mengnankkkk in https://github.com/apache/fory/pull/2700 +- fix(java): fix xlang typedef encode by @chaokunyang in https://github.com/apache/fory/pull/2719 +- fix(java): Fix flakiness in MetaContextTest#testShareClassName and #testShareClassDefCompatible by @swj20010308 in https://github.com/apache/fory/pull/2739 +- fix(java): Fix flakiness in ForyCopyTest#mutableObjectCopyTest by @swj20010308 in https://github.com/apache/fory/pull/2738 +- fix(ci): add retry logic to Bazel downloads to prevent flaky CI failures by @SanyamSuyal in https://github.com/apache/fory/pull/2733 +- fix(java): serialize collections with only null elements in xlang mode by @mymde in https://github.com/apache/fory/pull/2740 +- fix(ci): fix sync file by @chaokunyang in https://github.com/apache/fory/pull/2750 +- fix(ci): fix sync files by @chaokunyang in https://github.com/apache/fory/pull/2752 +- fix(docs): fix rust doc links build and check by @chaokunyang in https://github.com/apache/fory/pull/2753 +- fix(java): fix maven cache by @chaokunyang in https://github.com/apache/fory/pull/2755 +- fix(rust): fix rust xlang tests by @chaokunyang in https://github.com/apache/fory/pull/2788 +- fix(java): Fix flakiness in CollectionSerializersTest#testCollectionFieldSerializers, CollectionSerializersTest#testCollectionFieldSerializersCopy and ProtocolInteroperabilityTest#testComplexCollection by @swj20010308 in https://github.com/apache/fory/pull/2790 +- fix(java): fix java shanpshot version by @chaokunyang in https://github.com/apache/fory/pull/2800 +- fix(go): Adjust serialization of nullable value to align python behavior by @junjiexh in https://github.com/apache/fory/pull/2814 + +## Other Improvements + +- chore(python): disable pyfory.format import warning by @chaokunyang in https://github.com/apache/fory/pull/2476 +- chore: bump release version to 0.12.0 by @chaokunyang in https://github.com/apache/fory/pull/2489 +- docs: fix meta_size_mask by @urlyy in https://github.com/apache/fory/pull/2495 +- chore: fix typos by @Asnowww in https://github.com/apache/fory/pull/2496 +- docs: Improve pyfory PyPI documentation by @esafak in https://github.com/apache/fory/pull/2498 +- docs(python): add row format doc by @chaokunyang in https://github.com/apache/fory/pull/2499 +- chore: translate Chinese comments into English by @Asnowww in https://github.com/apache/fory/pull/2503 +- docs: Improve pull request template by @esafak in https://github.com/apache/fory/pull/2508 +- ci: Fix Windows wheel creation by @esafak in https://github.com/apache/fory/pull/2511 +- ci: Pass the GH token to actions/download-artifact by @esafak in https://github.com/apache/fory/pull/2514 +- chore: fix MetaStrEncoding by @co63oc in https://github.com/apache/fory/pull/2516 +- chore(javascript): rename foryjs to apache-fory and remove install docs by @chaokunyang in https://github.com/apache/fory/pull/2544 +- chore: bump release version to 0.12.1 by @chaokunyang in https://github.com/apache/fory/pull/2556 +- docs: update contributing.md with Rust lint command by @urlyy in https://github.com/apache/fory/pull/2569 +- chore(ci): use str replace to make bump java version faster by @chaokunyang in https://github.com/apache/fory/pull/2568 +- docs(java): add idea jdk11 usage config by @chaokunyang in https://github.com/apache/fory/pull/2570 +- docs(rust): add rust document by @chaokunyang in https://github.com/apache/fory/pull/2582 +- chore: bump release version to 0.12.2 by @chaokunyang in https://github.com/apache/fory/pull/2589 +- chore: add trademark for fory name by @chaokunyang in https://github.com/apache/fory/pull/2590 +- chore: Revert "fix(python): Fix the build dependency failure that occurred in pyfory" by @chaokunyang in https://github.com/apache/fory/pull/2597 +- chore: remove slash in homepage URL by @chaokunyang in https://github.com/apache/fory/pull/2604 +- chore(go): replace all typ to type\_ by @chaokunyang in https://github.com/apache/fory/pull/2612 +- chore: bump release version to 0.12.3 by @chaokunyang in https://github.com/apache/fory/pull/2645 +- docs: add AGENT.md to make AI coding more efficient by @chaokunyang in https://github.com/apache/fory/pull/2646 +- chore(rust): remove tag read/write by @chaokunyang in https://github.com/apache/fory/pull/2681 +- docs(python): refine python readme with detailed docs by @chaokunyang in https://github.com/apache/fory/pull/2689 +- docs(python): update schema evolution support in README by @chaokunyang in https://github.com/apache/fory/pull/2690 +- docs: fix python readme lint by @chaokunyang in https://github.com/apache/fory/pull/2694 +- docs(rust): add comprehensive rust readme document by @chaokunyang in https://github.com/apache/fory/pull/2723 +- docs(rust): add detailed rust api doc and readme by @chaokunyang in https://github.com/apache/fory/pull/2728 +- docs: sync rust and python document to fory-site by @chaokunyang in https://github.com/apache/fory/pull/2734 +- docs(rust): update rust roadmap by @chaokunyang in https://github.com/apache/fory/pull/2754 +- docs(rust): fix rust doc broken link by @chaokunyang in https://github.com/apache/fory/pull/2756 +- docs(rust): fix rust doc lint by @chaokunyang in https://github.com/apache/fory/pull/2757 +- docs(go): Update README.md by @junjiexh in https://github.com/apache/fory/pull/2675 +- docs(rust): add rust thread safety and troubleshooting doc by @chaokunyang in https://github.com/apache/fory/pull/2781 +- chore(rust): rename fory-tests to tests by @chaokunyang in https://github.com/apache/fory/pull/2783 +- docs(rust): update rust serializer trait doc by @chaokunyang in https://github.com/apache/fory/pull/2795 +- chore: fix release error by @chaokunyang in https://github.com/apache/fory/pull/2796 +- chore(python): rename numeric typehint by @chaokunyang in https://github.com/apache/fory/pull/2808 +- chore(rust): reorder fory rust methods by @chaokunyang in https://github.com/apache/fory/pull/2813 +- docs(python): refine python code and add api doc by @chaokunyang in https://github.com/apache/fory/pull/2816 +- chore(ci): remove macos13 ci for rust/c++ by @chaokunyang in https://github.com/apache/fory/pull/2817 +- chore(rust): rename metastring to meta_string by @urlyy in https://github.com/apache/fory/pull/2812 +- docs(rust): add serialize_to api doc by @chaokunyang in https://github.com/apache/fory/pull/2825 +- chore(Rust): Streamline code by @theweipeng in https://github.com/apache/fory/pull/2828 +- docs(rust): update serialize to deserialize from doc by @chaokunyang in https://github.com/apache/fory/pull/2830 +- chore(Rust): Remove new_from_fory from context.rs by @urlyy in https://github.com/apache/fory/pull/2831 + +## New Contributors + +- @adriacabeza made their first contribution in https://github.com/apache/fory/pull/2467 +- @Asnowww made their first contribution in https://github.com/apache/fory/pull/2496 +- @open-snail made their first contribution in https://github.com/apache/fory/pull/2500 +- @junjiexh made their first contribution in https://github.com/apache/fory/pull/2554 +- @ThisingL made their first contribution in https://github.com/apache/fory/pull/2553 +- @gudzpoz made their first contribution in https://github.com/apache/fory/pull/2680 +- @wuwangben made their first contribution in https://github.com/apache/fory/pull/2687 +- @swj20010308 made their first contribution in https://github.com/apache/fory/pull/2693 +- @mengnankkkk made their first contribution in https://github.com/apache/fory/pull/2700 +- @SanyamSuyal made their first contribution in https://github.com/apache/fory/pull/2733 +- @mymde made their first contribution in https://github.com/apache/fory/pull/2740 + +**Full Changelog**: https://github.com/apache/fory/compare/v0.12.3...v0.13.0-rc2 diff --git a/docs/docs/start/install.md b/docs/docs/start/install.md index bde750807..99ad0b517 100644 --- a/docs/docs/start/install.md +++ b/docs/docs/start/install.md @@ -16,13 +16,13 @@ To add a dependency on Apache Fory™ using Maven, use the following: <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-core</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> <!-- row/arrow format support --> <!-- <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-format</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> --> ``` @@ -34,7 +34,7 @@ To add a dependency on Apache Fory™ scala for scala 2.13 with maven, use the f <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-scala_2.13</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> ``` @@ -44,20 +44,20 @@ To add a dependency on Apache Fory™ scala for scala 3 with maven, use the foll <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-scala_3</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> ``` To add a dependency on Apache Fory™ scala for scala 2.13 with sbt, use the following: ```sbt -libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "0.12.3" +libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "0.13.0" ``` To add a dependency on Apache Fory™ scala for scala 3 with sbt, use the following: ```sbt -libraryDependencies += "org.apache.fory" % "fory-scala_3" % "0.12.3" +libraryDependencies += "org.apache.fory" % "fory-scala_3" % "0.13.0" ``` ## Kotlin @@ -68,7 +68,7 @@ To add a dependency on Apache Fory™ kotlin with maven, use the following: <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-kotlin</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> ``` @@ -76,7 +76,20 @@ To add a dependency on Apache Fory™ kotlin with maven, use the following: ```bash python -m pip install --upgrade pip -pip install pyfory==0.12.3 +pip install pyfory==0.13.0 +``` + +## Rust + +```toml +[dependencies] +fory = "0.13" +``` + +or just execute command: + +```bash +cargo add [email protected] ``` ## JavaScript diff --git a/docs/guide/scala_guide.md b/docs/guide/scala_guide.md index ab517eb3e..29da5ee33 100644 --- a/docs/guide/scala_guide.md +++ b/docs/guide/scala_guide.md @@ -34,7 +34,7 @@ Scala 2 and 3 are both supported. To add a dependency on Apache Fory™ scala for with sbt, use the following: ```sbt -libraryDependencies += "org.apache.fory" %% "fory-scala" % "0.12.3" +libraryDependencies += "org.apache.fory" %% "fory-scala" % "0.13.0" ``` ## Quick Start diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/docs/start/install.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/docs/start/install.md index 071b8001b..ce3419beb 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/docs/start/install.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/docs/start/install.md @@ -6,7 +6,7 @@ sidebar_position: 0 Apache Fory™ 源码下载请参见 Apache Fory™ [download](https://github.com/apache/fory/releases)页面。 -### Apache Fory™ Java 安装 +## 安装 Apache Fory™ Java 要使用 Maven 添加对 Apache Fory™ 的依赖,请使用以下配置: @@ -14,17 +14,17 @@ Apache Fory™ 源码下载请参见 Apache Fory™ [download](https://github.co <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-core</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> <!-- row/arrow format support --> <!-- <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-format</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> --> ``` -### Apache Fory™ Scala 安装 +## 安装 Apache Fory™ Scala 要使用 Maven 添加 scala 2.13 的 Fory scala 依赖,请使用以下配置: @@ -32,7 +32,7 @@ Apache Fory™ 源码下载请参见 Apache Fory™ [download](https://github.co <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-scala_2.13</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> ``` @@ -42,23 +42,23 @@ Apache Fory™ 源码下载请参见 Apache Fory™ [download](https://github.co <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-scala_3</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> ``` 要使用 sbt 添加 scala 2.13 的 Fory scala 依赖,请使用以下配置: ```sbt -libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "0.12.3" +libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "0.13.0" ``` 要使用 sbt 添加 scala 3 的 Fory scala 依赖,请使用以下配置: ```sbt -libraryDependencies += "org.apache.fory" % "fory-scala_3" % "0.12.3" +libraryDependencies += "org.apache.fory" % "fory-scala_3" % "0.13.0" ``` -## Apache Fory™ Kotlin 安装 +## 安装 Apache Fory™ Kotlin To add a dependency on Apache Fory™kotlin with maven, use the following: @@ -66,6 +66,26 @@ To add a dependency on Apache Fory™kotlin with maven, use the following: <dependency> <groupId>org.apache.fory</groupId> <artifactId>fory-kotlin</artifactId> - <version>0.12.3</version> + <version>0.13.0</version> </dependency> ``` + +## 安装 Apache Fory™ Python + +```bash +python -m pip install --upgrade pip +pip install pyfory==0.13.0 +``` + +## 安装 Apache Fory™ Rust + +```toml +[dependencies] +fory = "0.13" +``` + +或者直接执行以下命令: + +```bash +cargo add [email protected] +``` diff --git a/src/pages/download/index.md b/src/pages/download/index.md index 8f0d175b1..bbb53df74 100644 --- a/src/pages/download/index.md +++ b/src/pages/download/index.md @@ -9,11 +9,11 @@ For binary install, please see Apache Fory™ [install](/docs/docs/start/install ## The latest release -The latest source release is 0.12.3: +The latest source release is 0.13.0: -| Version | Date | Source | Release Notes | -| ------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -| 0.12.3 | 2025-09-23 | [source](https://www.apache.org/dyn/closer.lua/fory/0.12.3/apache-fory-0.12.3-src.tar.gz?action=download) [asc](https://downloads.apache.org/fory/0.12.3/apache-fory-0.12.3-src.tar.gz.asc) [sha512](https://downloads.apache.org/fory/0.12.3/apache-fory-0.12.3-src.tar.gz.sha512) | [release notes](https://github.com/apache/fory/releases/tag/v0.12.3) | +| Version | Date | Source | Release Notes | +| ------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| 0.13.0 | 2025-09-23 | [source](https://www.apache.org/dyn/closer.lua/fory/0.13.0/apache-fory-v0.13.0-src.tar.gz?action=download) [asc](https://downloads.apache.org/fory/0.13.0/apache-fory-v0.13.0-src.tar.gz.asc) [sha512](https://downloads.apache.org/fory/0.13.0/apache-fory-v0.13.0-src.tar.gz.sha512) | [release notes](https://github.com/apache/fory/releases/tag/v0.13.0) | ## All archived releases @@ -31,13 +31,13 @@ These files are named after the files they relate to but have `.sha512/.asc` ext To verify the SHA digests, you need the `.tgz` and its associated `.tgz.sha512` file. An example command: ```bash -sha512sum --check apache-fory-0.12.3-src.tar.gz +sha512sum --check apache-fory-v0.13.0-src.tar.gz ``` It should output something like: ```bash -apache-fory-0.12.3-src.tar.gz: OK +apache-fory-v0.13.0-src.tar.gz: OK ``` ### Verifying Signatures @@ -54,7 +54,7 @@ gpg --import KEYS Then you can verify signature: ```bash -gpg --verify apache-fory-0.12.3-src.tar.gz.asc apache-fory-0.12.3-src.tar.gz +gpg --verify apache-fory-v0.13.0-src.tar.gz.asc apache-fory-v0.13.0-src.tar.gz ``` If something like the following appears, it means the signature is correct: --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
