【腾讯 × 嘉为科技】 专题沙龙 |:共筑韧性运维底座
在数字化转型的浪潮中,运维不再只是“救火队”,而是企业韧性的基石。 11月15日,腾讯蓝鲸智云携手嘉为科技,邀您共赴【稳定筑基·轻量演进】运维主题沙龙。 从“卡顿到稳定”,从“工具孤岛到智能一体”,从“急诊室到PH医院”, 解锁蓝鲸生态的实战演进,体验 BkLite 带来的轻盈与智能运维新范式。 📅 活动时间: 11月15日 13:30 - 17:30 📍 活动地点: 深圳·腾讯大厦 二楼梦梦剧厅 扫码报名,共探未来运维的稳与轻!
🚀 Apache Fory 0.13.0 重磅发布! 这一版本带来两大震撼更新:
• Rust 首个正式版本 :完整高性能序列化栈、Dynamic Trait Object、多集合支持与 Schema 演进能力,让静态语言拥有动态序列化的灵活性。 在性能测试中,比 JSON/Protobuf 快最多 10 倍,压缩率媲美 Protobuf。
• Python Pickle 全面替代方案 :无缝兼容 pickle/cloudpickle API,同时做到 更快⚡、更小📦、更安全,支持本地函数/类、lambda、零拷贝 NumPy/Pandas 等高级场景。
无论是跨语言服务还是单语言优化,Fory 都能让数据传输更高效、更可靠。 立即升级,体验 Rust 与 Python 序列化的全新时代!
• 🧠 Rust 的 Dynamic Trait Object 序列化
• 🔁 Rust 的 Shared/Circular ownership 序列化
• 🔮 Rust 的 Schema Forward/Backward compatibilify
• 🐍 Python pickle 的 Drop-in Replacement:支持本地函数/类/__reduce__/__getstate__ 序列化
• 🧾 支持 Python dataclass Schema 向前向后兼容性
• ☕️ Java xlang 模式支持 jit codegen,加速跨语言序列化性能
• ⚙️ 使用 SIMD 的 primitive array compression,大幅压缩数组的序列化体积
• 📦 Row Format 新增 Compact Row Codec,编码压缩率提升50%
• 🐹 支持Go Struct Schema 向前向后兼容性
• 🚀 Golang struct 序列化 的 ahead-of-time codegen,加速 Golang 序列化性能
这是 Apache Fory 首个 Rust 正式版本,带来完整、高性能的序列化栈。如果你正在构建 Rust 服务或库,现在可以在强类型、性能和 schema 演进方面原生使用 Fory。
• 通过 #[derive(ForyObject)] 实现 derive-based object graph serialization
• 支持 trait objects 的多态:Box<dyn Trait>、Rc<dyn Trait>、Arc<dyn Trait>,以及 dyn Any
• Rc/Arc 与 RcWeak/ArcWeak 的共享与循环引用追踪
• 提供向前/向后兼容的 schema 演进(Compatible 模式)
• 借助 #[derive(ForyRow)] 和按需字段访问,实现零拷贝 Row format
• 线程安全并支持多线程序列化(context pool)
• 广泛的集合支持(例如 VecDeque、LinkedList、BTreeMap、BTreeSet、BinaryHeap)
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: "alice@example.com".into() };
let bytes = fory.serialize(&user)?;
let decoded: User = fory.deserialize(&bytes)?;
assert_eq!(user, decoded);
Ok(())
}
• 指南:Rust Serialization – https://fory.apache.org/docs/docs/guide/rust_serialization
• Crate:fory on crates.io – https://crates.io/crates/fory
• API 文档:docs.rs – https://docs.rs/fory/latest/fory
下表展示了在多个数据集和规模上,Fory 与 JSON、Protobuf 的序列化吞吐量(TPS,越高越好)对比,结果表面 Fory 性能是 Protobuf/JSON的10倍以上:
序列化结果大小跟 Protobuf Rust 持平:
注意:结果会受到硬件、数据集和实现版本的影响。参阅 Rust 指南了解如何自行运行基准测试:https://github.com/apache/fory/blob/main/rust/benches/README.md
pickle 的替代方案 🐍pyfory 现在是一款高性能的 pickle/cloudpickle Drop-in Replacement,同时保持一致的简洁 API,并增强安全性与性能。
• 在 Python-native 模式(xlang=False)下序列化任意 Python 对象:全局/本地函数、lambdas、全局/本地类、实例/类/静态方法
• 遵循 Python 钩子:__getstate__、__setstate__、__reduce__、__reduce_ex__
• 通过 ref=True 提供共享/循环对象图的引用追踪
• 借助协议 5 的 out-of-band buffers 和 pickle.PickleBuffer 实现零拷贝(如 NumPy、Pandas 等)
• 安全性:strict=True 支持基于注册的安全策略,DeserializationPolicy 提供精细化管控
• 线程:ThreadSafeFory 支持多线程安全使用
• 熟悉的 API:dumps/loads 是 serialize/deserialize 的别名
快速上手:
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
延伸阅读:Python Guide – https://fory.apache.org/docs/latest/python_serialization/
默认情况下会使用各语言的原生模式以获得最佳性能;只有在需要跨语言互通时,才将序列化模式切换为 xlang=true(或等效选项)。
[dependencies]
fory = "0.13"
use fory::{Error, Fory};
use fory::ForyObject;
#[derive(ForyObject, Debug, PartialEq)]
struct Person {
name: String,
age: i32,
}
fn main() -> Result<(), Error> {
let mut fory = Fory::default();
fory.register::<Person>(1)?;
let bytes = fory.serialize(&Person { name: "Alice".into(), age: 30 })?;
let decoded: Person = fory.deserialize(&bytes)?;
assert_eq!(decoded.age, 30);
Ok(())
}
python -m pip install --upgrade pip
pip install pyfory==0.13.0
from dataclasses import dataclass
import pyfory
@dataclass
class Person:
name: str
age: pyfory.int32
fory = pyfory.Fory()
fory.register_type(Person)
payload = fory.serialize(Person(name="Alice", age=30))
decoded = fory.deserialize(payload)
print(decoded.name, decoded.age)
<dependency>
<groupId>org.apache.fory</groupId>
<artifactId>fory-core</artifactId>
<version>0.13.0</version>
</dependency>
import org.apache.fory.*;
import org.apache.fory.config.*;
public class QuickStart {
public static class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
public static void main(String[] args) {
Fory fory = Fory.builder()
.withLanguage(Language.JAVA)
.requireClassRegistration(true)
.build();
fory.register(Person.class);
byte[] bytes = fory.serialize(new Person("Alice", 30));
Person result = (Person) fory.deserialize(bytes);
System.out.println(result.name + " " + result.age);
}
}
// SBT Scala 2.13
libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "0.13.0"
// SBT Scala 3
libraryDependencies += "org.apache.fory" % "fory-scala_3" % "0.13.0"
import org.apache.fory.Fory
import org.apache.fory.config.Language
import org.apache.fory.serializer.scala.ScalaSerializers
case class Person(name: String, age: Int)
object Example {
def main(args: Array[String]): Unit = {
val fory = Fory.builder()
.withLanguage(Language.JAVA)
.requireClassRegistration(true)
.build()
ScalaSerializers.registerSerializers(fory)
fory.register(classOf[Person])
val bytes = fory.serialize(Person("Alice", 30))
val result = fory.deserialize(bytes).asInstanceOf[Person]
println(s"${result.name} ${result.age}")
}
}
<dependency>
<groupId>org.apache.fory</groupId>
<artifactId>fory-kotlin</artifactId>
<version>0.13.0</version>
</dependency>
import org.apache.fory.Fory
import org.apache.fory.config.Language
import org.apache.fory.serializer.kotlin.KotlinSerializers
data class Person(val name: String, val age: Int)
fun main() {
val fory = Fory.builder()
.withLanguage(Language.JAVA)
.requireClassRegistration(true)
.build()
KotlinSerializers.registerSerializers(fory)
fory.register(Person::class.java)
val bytes = fory.serialize(Person("Alice", 30))
val result = fory.deserialize(bytes) as Person
println("${result.name} ${result.age}")
}
package main
import (
"fmt"
forygo "github.com/apache/fory/go/fory"
)
type Person struct {
Name string
Age int32
}
func main() {
fory := forygo.NewFory(true)
fory.Register(Person{}, 1)
payload, _ := fory.Marshal(Person{Name: "Alice", Age: 30})
var decoded Person
fory.Unmarshal(payload, &decoded)
fmt.Println(decoded.Name, decoded.Age)
}
import Fory, { Type } from "@apache-fory/fory";
import hps from "@apache-fory/hps";
const description = Type.object("example.Person", {
name: Type.string(),
age: Type.int32(),
});
const fory = new Fory({ hps });
const { serialize, deserialize } = fory.registerSerializer(description);
const payload = serialize({ name: "Alice", age: 30 });
const decoded = deserialize(payload);
console.log(decoded.name, decoded.age);
• feat(java): 为 graalvm 支持 object stream 序列化 @chaokunyang,https://github.com/apache/fory/pull/2464
• refactor(java): 将抽象集合/映射序列化器重命名为 Map/ListLikeSerializer,by @chaokunyang,https://github.com/apache/fory/pull/2466
• feat(memory): 新增可定制的 MemoryAllocator interface,by @adriacabeza,https://github.com/apache/fory/pull/2467
• feat: 串联 wheel test/build 和 release workflows,by @esafak,https://github.com/apache/fory/pull/2483
• feat(python): 为 pyfory 将默认语言设为 python,by @chaokunyang,https://github.com/apache/fory/pull/2490
• feat(python): 为 python 新增 register api,by @chaokunyang,https://github.com/apache/fory/pull/2491
• feat(python): 为 python 提供 meta compression,by @chaokunyang,https://github.com/apache/fory/pull/2504
• feat(python): 为 python 提供 type meta encoding,by @chaokunyang,https://github.com/apache/fory/pull/2509
• feat(CI): Cache npm,新增 node 24 与 lock file,by @esafak,https://github.com/apache/fory/pull/2523
• feat(Rust): 实现 Type Compatible,by @urlyy,https://github.com/apache/fory/pull/2492
• feat(Rust): 在 MetaFieldType se/de 中支持 Option,by @urlyy,https://github.com/apache/fory/pull/2528
• feat(rust): 在 compatible 模式反序列化时支持 skipping fields bytes,by @urlyy,https://github.com/apache/fory/pull/2545
• feat(go): 为 meta share 新增 type meta encoding,by @junjiexh,https://github.com/apache/fory/pull/2554
• feat(Rust): 反序列化时支持 T 与 Option<T> 的自动转换,by @urlyy,https://github.com/apache/fory/pull/2563
• feat(java): bean encoder 实现的 interfaces 支持 @Ignore,by @stevenschlansker,https://github.com/apache/fory/pull/2576
• refactor(java): 重构 fory java exception hierarchical structure,by @chaokunyang,https://github.com/apache/fory/pull/2577
• feat(Go): 为 fory-go serialization 实现 ahead of time codegen,by @ThisingL,https://github.com/apache/fory/pull/2553
• feat(java): 支持限制 deserialization depth,by @chaokunyang,https://github.com/apache/fory/pull/2578
• feat(rust): 新增 fory rust benchmark,by @chaokunyang,https://github.com/apache/fory/pull/2583
• perf(rust): 优化 rust deserialize 性能,by @chaokunyang,https://github.com/apache/fory/pull/2584
• feat(rust): 新增 rust profiler for serialization,by @chaokunyang,https://github.com/apache/fory/pull/2588
• refactor(go): 将 FieldInfo 重命名为 FieldDef 以避免 name collision,by @junjiexh,https://github.com/apache/fory/pull/2594
• feat(python): 为 pyfory compatible serialization 提供 meta share mode,by @chaokunyang,https://github.com/apache/fory/pull/2593
• feat(java/python): 对齐 java 与 python 的 compatible mode serialization,by @chaokunyang,https://github.com/apache/fory/pull/2602
• feat(java/python): 支持 enum xlang serialization,by @chaokunyang,https://github.com/apache/fory/pull/2603
• feat(Rust): 支持与 java 对齐的 basic type se/de,by @urlyy,https://github.com/apache/fory/pull/2585
• perf(python/java): 修复并优化 cross-language meta-share mode,by @pandalee99,https://github.com/apache/fory/pull/2601
• feat(go): 对齐跨语言 primitive arrays 的 type serialization,by @pandalee99,https://github.com/apache/fory/pull/2610
• feat(java): 支持 xlang 模式的 codegen,by @chaokunyang,https://github.com/apache/fory/pull/2613
• feat(java): 使用 SIMD 的 primitive array compression,by @adriacabeza,https://github.com/apache/fory/pull/2485
• refactor(go): 使用 factory-based serializer registration 替换 globalTypeResolver,by @ThisingL,https://github.com/apache/fory/pull/2615
• feat(go): 使用 metashare mode 实现 compatible mode,by @junjiexh,https://github.com/apache/fory/pull/2607
• feat(java): 在被更新时支持 concurrent map serialization,by @chaokunyang,https://github.com/apache/fory/pull/2617
• feat(java): 支持在序列化集合时的 concurrent updates,by @chaokunyang,https://github.com/apache/fory/pull/2623
• feat(python): 支持限制 pyfory depth,by @chaokunyang,https://github.com/apache/fory/pull/2625
• feat(Rust): 排序 fields、支持 Enum、修复 read/write type_info 以及 type_meta en/decode,by @urlyy,https://github.com/apache/fory/pull/2630
• feat(python): 实现 pickle serialization 的 drop-in replacement,by @chaokunyang,https://github.com/apache/fory/pull/2629
• refactor(java): 重构 type resolver,by @chaokunyang,https://github.com/apache/fory/pull/2640
• feat(java): 为 comaptible mode 支持 type converters,by @chaokunyang,https://github.com/apache/fory/pull/2641
• refactor(java/python): 优化 collection header bitmap,by @chaokunyang,https://github.com/apache/fory/pull/2642
• feat(go): 在 metashare mode 中支持 collection、map 与 nested object,by @junjiexh,https://github.com/apache/fory/pull/2643
• feat(go): 为 fory-go codegen serialization 新增 slice 与 map 支持,by @ThisingL,https://github.com/apache/fory/pull/2638
• refactor(go): 将 codegen 注解从 //fory:gen 更名为 //fory:generate,by @ThisingL,https://github.com/apache/fory/pull/2648
• feat(rust): 支持 Map 与 register_by_name,by @urlyy,https://github.com/apache/fory/pull/2649
• feat(java): 支持 graalvm 25,by @chaokunyang,https://github.com/apache/fory/pull/2652
• feat(java): 在 xlang compatible mode 中支持反序列化未注册/不存在的类与字段,by @chaokunyang,https://github.com/apache/fory/pull/2655
• refactor(Rust): 重构 compile-time code,修复 named_enum,并修复 skip enum,by @urlyy,https://github.com/apache/fory/pull/2657
• feat(python): 支持本地 Python class serialization,by @chaokunyang,https://github.com/apache/fory/pull/2665
• refactor(go): 优化 collection header bitmap,by @junjiexh,https://github.com/apache/fory/pull/2656
• feat(python): 支持 class methods serialization,by @chaokunyang,https://github.com/apache/fory/pull/2670
• refactor(go): 在 codegen 中优化 collection header bitmap,by @ThisingL,https://github.com/apache/fory/pull/2676
• feat(rust): 支持 box serde for rust,by @chaokunyang,https://github.com/apache/fory/pull/2677
• feat(rust): 为 Rust Rc/Arc 支持 reference tracking,by @chaokunyang,https://github.com/apache/fory/pull/2678
• feat(python): 优化 python serialization api,by @chaokunyang,https://github.com/apache/fory/pull/2673
• refactor(Rust): 优化 api name,by @urlyy,https://github.com/apache/fory/pull/2671
• feat(rust): 支持 rust dyn trait object serialization,by @chaokunyang,https://github.com/apache/fory/pull/2691
• feat(rust): 为 box/arc/rc 支持 dyn any trait object serialization,by @chaokunyang,https://github.com/apache/fory/pull/2704
• feat(rust): 为 arc/rc<dyn T> 支持 shared reference tracking,by @chaokunyang,https://github.com/apache/fory/pull/2707
• feat(rust): 避免在同一 module 的多个 trait objects 中 downcast method 冲突,by @chaokunyang,https://github.com/apache/fory/pull/2708
• feat(rust): 为 arc/rc wrapper 新增 deref,by @chaokunyang,https://github.com/apache/fory/pull/2709
• refactor(rust): 将 rc/arc wrapper macro arms 统一为单一函数,by @chaokunyang,https://github.com/apache/fory/pull/2711
• perf(Rust): 使用 SIMD 进行字符串 se/de,by @urlyy,https://github.com/apache/fory/pull/2716
• feat(Rust): 支持 named_xx se/de、ext se/de,并新增 unittest,by @urlyy,https://github.com/apache/fory/pull/2712
• feat(rust): 支持 RcWeak/ArcWeak 以实现循环引用追踪,by @chaokunyang,https://github.com/apache/fory/pull/2714
• feat(rust): 支持限制 max dyn depth,by @chaokunyang,https://github.com/apache/fory/pull/2730
• feat(Rust): 解开字段循环并为其新增 feature,by @urlyy,https://github.com/apache/fory/pull/2724
• feat(python): 让 fory out-of-band serialization 兼容 pickle5,by @chaokunyang,https://github.com/apache/fory/pull/2732
• refactor(go): 替换 legacy RegisterTagType api 调用,by @junjiexh,https://github.com/apache/fory/pull/2696
• feat(python): 新增 thread safe fory,by @chaokunyang,https://github.com/apache/fory/pull/2735
• feat(rust): 支持 VecDeque/LinkedList serialization,by @chaokunyang,https://github.com/apache/fory/pull/2741
• feat(rust): 支持 btreemap serialization,by @chaokunyang,https://github.com/apache/fory/pull/2743
• feat(rust): 支持 btree set 与 binary heap serialization,by @chaokunyang,https://github.com/apache/fory/pull/2744
• feat(Rust): 引入 context_pool 以减少 context allocation,并支持 multi-thread se/de,by @urlyy,https://github.com/apache/fory/pull/2737
• feat(ci): 在 Python CI workflow 中缓存 Bazel binary,by @SanyamSuyal,https://github.com/apache/fory/pull/2745
• feat(rust): 通过 compile-time fields sort algorithm 重写 fory derive macro,生成更小更快的代码,by @chaokunyang,https://github.com/apache/fory/pull/2749
• feat(ci): 在 CI 中新增 maven cache 加速构建,by @chaokunyang,https://github.com/apache/fory/pull/2751
• feat(rust): 使用匹配分配字段 id 的 fast fory_read_compatible macro,by @chaokunyang,https://github.com/apache/fory/pull/2758
• refactor(rust): 使用 compatible bool 替代 enum 简化 API,by @chaokunyang,https://github.com/apache/fory/pull/2763
• feat(rust): 从 parsed cache 查询 type meta 加速反序列化,by @chaokunyang,https://github.com/apache/fory/pull/2764
• feat(java): 引入 Compact Row Codec,by @stevenschlansker,https://github.com/apache/fory/pull/2414
• feat(go): 为 meta share mode 新增 pointer field test,by @junjiexh,https://github.com/apache/fory/pull/2674
• feat(rust): 让 Serializer api 返回 Result,并以 Result 替换 panic/expect/assert/unwrap,by @urlyy,https://github.com/apache/fory/pull/2765
• feat(rust): 重构 rust serialization system,by @chaokunyang,https://github.com/apache/fory/pull/2774
• feat(python): 为 dataclass fields 支持 optional typehint,by @chaokunyang,https://github.com/apache/fory/pull/2766
• feat(rust): 实现 dynamic rust serializer system,by @chaokunyang,https://github.com/apache/fory/pull/2778
• feat(rust): 使用 rc 替换 arc 存储 type meta 以提升性能,by @chaokunyang,https://github.com/apache/fory/pull/2782
• feat(python): 为 python native mode 的 dataclass 提供 compatible mode,by @chaokunyang,https://github.com/apache/fory/pull/2784
• feat(java): 在反序列化未存在的 enum variant 时支持回退到 default,by @chaokunyang,https://github.com/apache/fory/pull/2787
• feat(go): 更新 codegen field 排序,生成更小、更快的代码,by @ThisingL,https://github.com/apache/fory/pull/2779
• feat(rust): 让 type meta resolve 直接返回 type info,by @chaokunyang,https://github.com/apache/fory/pull/2789
• perf(Rust): 在 MetaStringResolver 中移除 MetaString/MetaStringBytes 的 clone()/to_owned(),提升性能,并修复 xlang 测试,by @urlyy,https://github.com/apache/fory/pull/2791
• feat(rust): 支持 rust 的 static struct version hash check,by @chaokunyang,https://github.com/apache/fory/pull/2793
• feat(rust): 支持在 rust benchmark 中为所有数据类型生成 profile,by @chaokunyang,https://github.com/apache/fory/pull/2801
• perf(rust): 通过移除 copy simd 并添加更多 inline hints 优化 rust 性能,by @chaokunyang,https://github.com/apache/fory/pull/2807
• perf(rust): 始终以 utf8 写入字符串,by @chaokunyang,https://github.com/apache/fory/pull/2809
• feat(python): 新增 deserialization policy,以便更细粒度地控制与审计反序列化行为,by @chaokunyang,https://github.com/apache/fory/pull/2811
• perf(Rust): 提升性能,by @theweipeng,https://github.com/apache/fory/pull/2810
• feat(Rust): 支持 serialize_to,by @theweipeng,https://github.com/apache/fory/pull/2822
• feat(rust): 延迟构建 rust 的 typeinfo,避免嵌套 struct register 依赖,by @chaokunyang,https://github.com/apache/fory/pull/2824
• perf(Rust): 重构 reader,by @theweipeng,https://github.com/apache/fory/pull/2826
• perf(python): 优化 pyfory 性能,by @chaokunyang,https://github.com/apache/fory/pull/2829
• fix(java): 修复 map/list element type 与 collection type 相同导致的 jit 错误,by @chaokunyang,https://github.com/apache/fory/pull/2465
• fix(python): 修复 gh action pypi 发布流程,by @chaokunyang,https://github.com/apache/fory/pull/2468
• fix(java): 修复 private struct 的 row encoder,by @chaokunyang,https://github.com/apache/fory/pull/2469
• fix(python): 修复 pyfory pypi 发布,by @chaokunyang,https://github.com/apache/fory/pull/2473
• fix(python): 修复 macos 13 上的 py 发布,by @chaokunyang,https://github.com/apache/fory/pull/2478
• fix(ci): 使用 manylinux2014 中的 interpreters 构建 python wheels,by @esafak,https://github.com/apache/fory/pull/2486
• fix(java): 让 Encoders.mapEncoder(TypeRef, TypeRef, TypeRef, Fory) 加载 bean classes,by @stevenschlansker,https://github.com/apache/fory/pull/2494
• fix(java): 解决 row format generated bean types 处理 Optional 的问题,by @stevenschlansker,https://github.com/apache/fory/pull/2497
• fix: 修复 addListener 不释放锁的问题,by @open-snail,https://github.com/apache/fory/pull/2500
• fix(ci): 在 $ROOT/dist 中分发 wheel,by @esafak,https://github.com/apache/fory/pull/2506
• fix(python): 修复 workflow 的 publich tag,by @chaokunyang,https://github.com/apache/fory/pull/2517
• fix(ci): 打印 workflow head branch,by @chaokunyang,https://github.com/apache/fory/pull/2518
• fix(python): 修复 release python wheel head_branch tag,by @chaokunyang,https://github.com/apache/fory/pull/2519
• fix(java): 修复 MemoryBuffer tests 在 size 为零的 buffer 上验证 equalTo 的问题,by @stevenschlansker,https://github.com/apache/fory/pull/2524
• fix(ci): 将 tag 传给 bump_py_version,并在 manylinux 容器内设置 PLAT,by @esafak,https://github.com/apache/fory/pull/2522
• fix(ci): 在 Windows 使用 ref_name tag,命名 release runs,验证 wheel 版本,并在发布中使用所有 python 版本,by @esafak,https://github.com/apache/fory/pull/2532
• ci: 修复 verify_version() 捕获版本的方式,by @esafak,https://github.com/apache/fory/pull/2535
• fix(python): 修复 bump_wheel version,by @chaokunyang,https://github.com/apache/fory/pull/2534
• fix(python): 修复 bump version,by @chaokunyang,https://github.com/apache/fory/pull/2536
• fix(python): 新增 macos 13 发布,by @chaokunyang,https://github.com/apache/fory/pull/2538
• fix(ci): 为 betahuhn/repo-file-sync-action 使用小写,by @chaokunyang,https://github.com/apache/fory/pull/2541
• fix(ci): 为 repo-file-sync-action 使用 commit hash,by @chaokunyang,https://github.com/apache/fory/pull/2542
• fix(java): 修复 array encoder 在 encode(T) 中浪费 8 字节的问题,by @stevenschlansker,https://github.com/apache/fory/pull/2551
• fix(ci): 在 golang xlang tests 中安装 pyfory,by @esafak,https://github.com/apache/fory/pull/2561
• fix(ci): 在 run_ci.py 中使用子进程返回码退出,by @esafak,https://github.com/apache/fory/pull/2560
• fix(java): 修复 codegen name conflict,by @chaokunyang,https://github.com/apache/fory/pull/2565
• fix(java): 修复 graalvm 的 classinfo npe,by @chaokunyang,https://github.com/apache/fory/pull/2572
• fix(java): 如果 checkClassVersion 为 false,则跳过 classVersionHash 计算,by @theigl,https://github.com/apache/fory/pull/2573
• fix(java): 为 abstract field type 跳过 hash 计算,by @chaokunyang,https://github.com/apache/fory/pull/2575
• fix(java): 修复 row format buffer recycling 在 null 值时保留 offset 和 size 的问题,by @stevenschlansker,https://github.com/apache/fory/pull/2540
• fix(java): 修复 xlang register type by id,by @chaokunyang,https://github.com/apache/fory/pull/2591
• fix(java): 修复 java 的 xlang mode meta shared,by @chaokunyang,https://github.com/apache/fory/pull/2592
• fix(python): 修复 pyfory 构建依赖失败,by @pandalee99,https://github.com/apache/fory/pull/2596
• fix(python): 删除 typedef 中的冗余代码,by @pandalee99,https://github.com/apache/fory/pull/2600
• fix(java): 修复 xlang metashare mode 的 register by id,by @chaokunyang,https://github.com/apache/fory/pull/2614
• fix(java/python): 修复 meta string encoding 顺序,by @chaokunyang,https://github.com/apache/fory/pull/2616
• fix(go): 在 factory-based serializer system 中完善 type registration,by @ThisingL,https://github.com/apache/fory/pull/2619
• fix(python): 修复 pyfory depth limit,by @chaokunyang,https://github.com/apache/fory/pull/2626
• fix(java): 修复 codegen 获取 nested genericType,by @chaokunyang,https://github.com/apache/fory/pull/2632
• fix(python): 注册 dynamic serializer 时取消 registration 要求,by @chaokunyang,https://github.com/apache/fory/pull/2634
• fix(java): 修复 graalvm25 上的 record serialization,by @chaokunyang,https://github.com/apache/fory/pull/2644
• fix(java): 修复 xlang 的 field converter,by @chaokunyang,https://github.com/apache/fory/pull/2654
• fix(java): 修复 graalvm 上 array serialization,by @chaokunyang,https://github.com/apache/fory/pull/2664
• fix(java): 修复注册时的 meta share deserialization,by @chaokunyang,https://github.com/apache/fory/pull/2667
• fix(java): 在 graalvm native images 中保留 serializers,by @gudzpoz,https://github.com/apache/fory/pull/2680
• fix(java): 修复 graalvm 不使用 generated serializer 的问题,by @chaokunyang,https://github.com/apache/fory/pull/2682
• fix(java): 修复 java 中 xlang serializer 注册,by @chaokunyang,https://github.com/apache/fory/pull/2683
• fix(java): 修复 InputStream 读取大 buffer 的错误,by @wuwangben,https://github.com/apache/fory/pull/2687
• fix(python): 修复 python module/type serialize,by @chaokunyang,https://github.com/apache/fory/pull/2688
• fix(java): 修复 CollectionSerializersTest#tesPriorityQueueSerializer 的不稳定性,by @swj20010308,https://github.com/apache/fory/pull/2693
• fix(java): 修复 LazyMapTest#testMap 的不稳定性,by @swj20010308,https://github.com/apache/fory/pull/2692
• fix(java): 修复 EXT type 反序列化错误,by @mengnankkkk,https://github.com/apache/fory/pull/2700
• fix(java): 修复 xlang typedef encode,by @chaokunyang,https://github.com/apache/fory/pull/2719
• fix(java): 修复 MetaContextTest#testShareClassName 与 #testShareClassDefCompatible 的不稳定性,by @swj20010308,https://github.com/apache/fory/pull/2739
• fix(java): 修复 ForyCopyTest#mutableObjectCopyTest 的不稳定性,by @swj20010308,https://github.com/apache/fory/pull/2738
• fix(ci): 为 Bazel 下载新增重试逻辑以避免 flaky CI,by @SanyamSuyal,https://github.com/apache/fory/pull/2733
• fix(java): 在 xlang mode 中序列化只包含 null 元素的集合,by @mymde,https://github.com/apache/fory/pull/2740
• fix(ci): 修复 sync file,by @chaokunyang,https://github.com/apache/fory/pull/2750
• fix(ci): 修复 sync files,by @chaokunyang,https://github.com/apache/fory/pull/2752
• fix(docs): 修复 rust 文档链接构建与检查,by @chaokunyang,https://github.com/apache/fory/pull/2753
• fix(java): 修复 maven cache,by @chaokunyang,https://github.com/apache/fory/pull/2755
• fix(rust): 修复 rust xlang tests,by @chaokunyang,https://github.com/apache/fory/pull/2788
• fix(java): 修复 CollectionSerializersTest#testCollectionFieldSerializers、CollectionSerializersTest#testCollectionFieldSerializersCopy 与 ProtocolInteroperabilityTest#testComplexCollection 的不稳定性,by @swj20010308,https://github.com/apache/fory/pull/2790
• fix(java): 修复 java shanpshot version,by @chaokunyang,https://github.com/apache/fory/pull/2800
• fix(go): 调整 nullable value 的序列化以对齐 python 行为,by @junjiexh,https://github.com/apache/fory/pull/2814
• chore(python): 禁用 pyfory.format import warning,by @chaokunyang,https://github.com/apache/fory/pull/2476
• chore: 将 release version 升级到 0.12.0,by @chaokunyang,https://github.com/apache/fory/pull/2489
• docs: 修复 meta_size_mask,by @urlyy,https://github.com/apache/fory/pull/2495
• chore: 修复错别字,by @Asnowww,https://github.com/apache/fory/pull/2496
• docs: 改进 pyfory PyPI 文档,by @esafak,https://github.com/apache/fory/pull/2498
• docs(python): 新增 row format 文档,by @chaokunyang,https://github.com/apache/fory/pull/2499
• chore: 将中文注释翻译成英语,by @Asnowww,https://github.com/apache/fory/pull/2503
• docs: 改进 pull request template,by @esafak,https://github.com/apache/fory/pull/2508
• ci: 修复 Windows wheel creation,by @esafak,https://github.com/apache/fory/pull/2511
• ci: 将 GH token 传递给 actions/download-artifact,by @esafak,https://github.com/apache/fory/pull/2514
• chore: 修复 MetaStrEncoding,by @co63oc,https://github.com/apache/fory/pull/2516
• chore(javascript): 将 foryjs 更名为 apache-fory 并移除 install docs,by @chaokunyang,https://github.com/apache/fory/pull/2544
• chore: 将 release version 升级到 0.12.1,by @chaokunyang,https://github.com/apache/fory/pull/2556
• docs: 在 contributing.md 中新增 Rust lint 命令,by @urlyy,https://github.com/apache/fory/pull/2569
• chore(ci): 使用 str replace 加速 java version bump,by @chaokunyang,https://github.com/apache/fory/pull/2568
• docs(java): 新增 idea jdk11 usage config,by @chaokunyang,https://github.com/apache/fory/pull/2570
• docs(rust): 新增 rust document,by @chaokunyang,https://github.com/apache/fory/pull/2582
• chore: 将 release version 升级到 0.12.2,by @chaokunyang,https://github.com/apache/fory/pull/2589
• chore: 为 fory 名称新增 trademark,by @chaokunyang,https://github.com/apache/fory/pull/2590
• chore: 回滚 "fix(python): Fix the build dependency failure that occurred in pyfory",by @chaokunyang,https://github.com/apache/fory/pull/2597
• chore: 移除 homepage URL 中的斜杠,by @chaokunyang,https://github.com/apache/fory/pull/2604
• chore(go): 将所有 typ 替换为 type_,by @chaokunyang,https://github.com/apache/fory/pull/2612
• chore: 将 release version 升级到 0.12.3,by @chaokunyang,https://github.com/apache/fory/pull/2645
• docs: 新增 AGENT.md,提升 AI 编码效率,by @chaokunyang,https://github.com/apache/fory/pull/2646
• chore(rust): 移除 tag read/write,by @chaokunyang,https://github.com/apache/fory/pull/2681
• docs(python): 优化 python README 并补充详细文档,by @chaokunyang,https://github.com/apache/fory/pull/2689
• docs(python): 在 README 中更新 schema evolution 支持,by @chaokunyang,https://github.com/apache/fory/pull/2690
• docs: 修复 python README lint,by @chaokunyang,https://github.com/apache/fory/pull/2694
• docs(rust): 新增全面的 rust README 文档,by @chaokunyang,https://github.com/apache/fory/pull/2723
• docs(rust): 补充详尽的 rust API 文档与 README,by @chaokunyang,https://github.com/apache/fory/pull/2728
• docs: 将 rust 与 python 文档同步至 fory-site,by @chaokunyang,https://github.com/apache/fory/pull/2734
• docs(rust): 更新 rust roadmap,by @chaokunyang,https://github.com/apache/fory/pull/2754
• docs(rust): 修复 rust 文档的断链,by @chaokunyang,https://github.com/apache/fory/pull/2756
• docs(rust): 修复 rust 文档 lint,by @chaokunyang,https://github.com/apache/fory/pull/2757
• docs(go): 更新 README.md,by @junjiexh,https://github.com/apache/fory/pull/2675
• docs(rust): 新增 rust thread safety 与 troubleshooting 文档,by @chaokunyang,https://github.com/apache/fory/pull/2781
• chore(rust): 将 fory-tests 重命名为 tests,by @chaokunyang,https://github.com/apache/fory/pull/2783
• docs(rust): 更新 rust serializer trait 文档,by @chaokunyang,https://github.com/apache/fory/pull/2795
• chore: 修复 release error,by @chaokunyang,https://github.com/apache/fory/pull/2796
• chore(python): 重命名 numeric typehint,by @chaokunyang,https://github.com/apache/fory/pull/2808
• chore(rust): 重排 fory rust methods,by @chaokunyang,https://github.com/apache/fory/pull/2813
• docs(python): 优化 python 代码并新增 API 文档,by @chaokunyang,https://github.com/apache/fory/pull/2816
• chore(ci): 为 rust/c++ 移除 macos13 CI,by @chaokunyang,https://github.com/apache/fory/pull/2817
• chore(rust): 将 metastring 重命名为 meta_string,by @urlyy,https://github.com/apache/fory/pull/2812
• docs(rust): 新增 serialize_to API 文档,by @chaokunyang,https://github.com/apache/fory/pull/2825
• chore(Rust): Streamline code,by @theweipeng,https://github.com/apache/fory/pull/2828
• docs(rust): 将文档中的 serialize 更新为 deserialize,by @chaokunyang,https://github.com/apache/fory/pull/2830
• chore(Rust): 在 context.rs 中移除 new_from_fory,by @urlyy,https://github.com/apache/fory/pull/2831
• @adriacabeza 在 https://github.com/apache/fory/pull/2467 完成首次贡献
• @Asnowww 在 https://github.com/apache/fory/pull/2496 完成首次贡献
• @open-snail 在 https://github.com/apache/fory/pull/2500 完成首次贡献
• @junjiexh 在 https://github.com/apache/fory/pull/2554 完成首次贡献
• @ThisingL 在 https://github.com/apache/fory/pull/2553 完成首次贡献
• @gudzpoz 在 https://github.com/apache/fory/pull/2680 完成首次贡献
• @wuwangben 在 https://github.com/apache/fory/pull/2687 完成首次贡献
• @swj20010308 在 https://github.com/apache/fory/pull/2693 完成首次贡献
• @mengnankkkk 在 https://github.com/apache/fory/pull/2700 完成首次贡献
• @SanyamSuyal 在 https://github.com/apache/fory/pull/2733 完成首次贡献
• @mymde 在 https://github.com/apache/fory/pull/2740 完成首次贡献
完整更新日志:https://github.com/apache/fory/compare/v0.12.3...v0.13.0
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。
Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。