Posts in 2024
Release v0.10.0
Monday, April 08, 2024 in Volo
项目:
Volo 0.10.0 版本中,我们更多的关注在了可扩展性和易用性上。 Break Change 错误处理重构 原先的错误类型存在诸如语义不清晰、可维护性不强、可扩展性不强、容易误用等问题,因此在新版中,我们重构了整个错误处理部分,极大加强了错误处理部分的语义清晰度和可维护性,并通过类型系统降低误用概率。 迁移指南 Server Handler 迁移 如果原先使用 anyhow::Result 的,把 anyhow:Result 改为 volo_thrift::ServerResult 即可: …
Release v0.9.0
Thursday, January 04, 2024 in Volo
项目:
Volo 0.9.0 版本中,我们主要将默认生成的 HashSet/HashMap 类型修改为了 AHashMap/AHashSet, 预期会带来一定的性能提升。此外,随着 Rust 1.75 的发布,Volo 已经可以在 stable rust 中使用了。 Break Change 默认生成的 HashSet / HashMap 类型修改 在新版生成代码中,默认生成的 HashMap/HashSet 类型修改为了 AHashMap/AHashSet,这相比 std 的 map 会带来更高的性 …
Posts in 2023
Release v0.8.0
Monday, October 23, 2023 in Volo
项目:
Volo 0.8.0 版本中,我们主要使用了 AFIT(Async Fn In Trait) 和 RPITIT(Return Position Impl Trait In Traits) 这两个刚刚 stabilized 的 feature 重构了 Service trait 和之前所有用了 async_trait 的地方,除了会有略微的性能提升外,更重要的是,接下来写 Service 可以直接写 async fn call 了,易用性会有较大的提升。 Break Change Service …
Release v0.5.4
Monday, August 28, 2023 in Volo
项目:
Volo 0.5.4 版本中,除了常规 bugfix 之外,还有一些新的 feature 引入。 Thrift 协议支持 Unknown Fields Motivation 保留 Thrift 解码中未被识别的字段,使用场景比如代理使用IDL的子集解析完整数据,其中未识别的数据将保留成为未识别字段,并透传到下游,可以减少本服务不必要的 IDL 更新或者只解析关心的子集部分。 Solution 在解码 read 步骤时,对于未识别的字段递归进行skip得到长度后,将对应长度的一段 bytes 直接 …
Release v0.5.0
Friday, June 02, 2023 in Volo
项目:
Volo 0.5.0 版本中,除了常规 bugfix 之外,还有一些新的 feature 引入。 Pilota-build compile 接口变动 如果有需要自己编译 idl 的用户,在这个版本中需要适配一下新的compile接口,参数改动很简单,如下: xxx.compile( &["idl/collector.proto"], pilota_build::Output::File(out_dir), ); 只需要在原先的out_dir上加一 …
Release v0.4.1
Monday, March 20, 2023 in Volo
项目:
Volo 0.4.1 版本中,除了常规 bugfix 之外,还有一些新的 feature 引入。 更为详细的 Thrift Decode 错误信息 之前版本的 Thrift Decode 错误信息只会报告出最基本的错误,而不带有任何上下文。 比如含有如下结构关系 struct A { 1: required B b, } struct B { 2: required C c, } struct C { 3: required string a, } 在对结构C的字段a进行 Decode 如果发生 …
Release v0.3.2
Tuesday, February 07, 2023 in Volo
项目:
Volo 0.3.2 版本中,除了常规 bugfix 之外,还有多处改进。尤其是,有社区贡献者为我们带来了重要的 feature,非常感谢他们。 Thrift 异步编解码 Trait 支持 @ii64 在 #123 中为我们带来了 Thrift 异步编解码 Trait 的定义和 Binary、Apache Compact Protocol 的实现,在此之前他还为 Pilota 贡献了编解码的底层实现! gRPC graceful shutdown 支持 @iGxnon 在 #127 中为我们带来 …
Posts in 2022
Release v0.3.0
Thursday, December 22, 2022 in Volo
项目:
Volo 0.3.0 版本中,除了常规 bugfix 之外,我们还带来了多个重要 feature。 Service Trait 重构 Volo 0.3.0 版本中,我们对 Service Trait 进行了重构,使得 Service Trait 的实现更加简单,同时也提供了更多的灵活性。 具体来看,我们将 Service Trait 的定义从: pub trait Service<Cx, Request> { /// Responses given by the service. …
Release v0.2.1
Wednesday, October 26, 2022 in Volo
项目:
[#61] 优化了 Volo-Thrift 的代码,移除了一些不必要的泛型参数,简化代码。 [#63] 跟进了 2022-10-20 后 nightly 编译器不再允许 TAIT elition lifetime 的问题。 [#73] 绕过了 Rust 编译器的 #100013 issue: non-defining opaque type use in defining scope。 [#65] feat: 升级 Volo-cli 的 clap 版本到 4.x。 [#72] feat: …
Release v0.2.0
Tuesday, October 18, 2022 in Volo
项目:
Feature [#31] 支持 Windows。 [#26] volo-grpc 增加对 service discovery 和 load balance 的支持。 [#45] volo-grpc 支持 uds。 [#32] volo-grpc 支持 metainfo 进行元信息传递。 [#30] volo-grpc Server 增加 layer_front 方法。 [#42] volo-thrift 支持 multiplex。 Optimize [#53] …