Skip to content

Releases: cloudwego/volo

Volo-Thrift 0.12.2

02 Feb 06:25

Choose a tag to compare

What's Changed

  • fix(volo-grpc): use concat to get the entire encoded result from linkedbytes by @Ggiggle in #628
  • chore(volo): combine rustls and native-tls by @yukiiiteru in #627
  • chore(volo-http): add more unit tests for server by @yukiiiteru in #629
  • fix(volo-build): use the global path for exception item when generate… by @Ggiggle in #630
  • refactor(volo-build): adapt to the codegen backend new trait and new codegen context defined in pilota-build by @Ggiggle in #626
  • feat(volo-build): add with_comments option for codegen builder by @Ggiggle in #631
  • chore: bump dependencies by @yukiiiteru in #632
  • feat(volo-http): add layer for RequestBuilder by @yukiiiteru in #633
  • chore: remove doc_auto_cfg in volo, volo-http and volo-grpc by @yukiiiteru in #635
  • feat(volo): introduce shmipc as transport layer protocol by @yukiiiteru in #636
  • feat(volo-thrift): support shmipc for pingpong transport by @yukiiiteru in #634
  • feat(volo-thrift): add multi service support by @PureWhiteWu in #637

Full Changelog: volo-grpc-0.11.7...volo-thrift-0.12.2

Volo-build 0.12.2

02 Feb 06:25

Choose a tag to compare

What's Changed

  • fix(volo-grpc): use concat to get the entire encoded result from linkedbytes by @Ggiggle in #628
  • chore(volo): combine rustls and native-tls by @yukiiiteru in #627
  • chore(volo-http): add more unit tests for server by @yukiiiteru in #629
  • fix(volo-build): use the global path for exception item when generate… by @Ggiggle in #630
  • refactor(volo-build): adapt to the codegen backend new trait and new codegen context defined in pilota-build by @Ggiggle in #626
  • feat(volo-build): add with_comments option for codegen builder by @Ggiggle in #631
  • chore: bump dependencies by @yukiiiteru in #632
  • feat(volo-http): add layer for RequestBuilder by @yukiiiteru in #633
  • chore: remove doc_auto_cfg in volo, volo-http and volo-grpc by @yukiiiteru in #635
  • feat(volo): introduce shmipc as transport layer protocol by @yukiiiteru in #636
  • feat(volo-thrift): support shmipc for pingpong transport by @yukiiiteru in #634
  • feat(volo-thrift): add multi service support by @PureWhiteWu in #637

Full Changelog: volo-grpc-0.11.7...volo-build-0.12.2

Volo-gRPC 0.11.7

26 Sep 10:03

Choose a tag to compare

volo-grpc-0.11.7

fix(volo-grpc): don't need sync for BoxStream and encode

Volo-cli 0.11.3

08 Sep 08:51
eecfc6e

Choose a tag to compare

What's Changed

  • fix(volo-cli): ignore empty config file by @Joshuahoky in #581
  • feat(volo-build): impl pb pilota.rust_wrapper_arc_all option by @Ggiggle in #621
  • fix(volo-build): adapt to the change of pilota pb backend trait for pb custom options codegen and process the pilota.rust_wrapper_arc for init cmd of volo-cli to codegen server template by @Ggiggle in #623

Full Changelog: volo-cli-0.10.3...volo-cli-0.11.3

Volo-build 0.11.5

08 Sep 08:47
eecfc6e

Choose a tag to compare

What's Changed

  • fix(volo-build): adapt to the change of pilota pb backend trait for pb custom options codegen and process the pilota.rust_wrapper_arc for init cmd of volo-cli to codegen server template by @Ggiggle in #623

Full Changelog: volo-build-0.10.17...volo-build-0.11.5

Volo-Thrift 0.11.2

15 Jul 12:08
8edf3ab

Choose a tag to compare

volo-thrift-0.11.2

feat(volo-thrift): add more log filter for transport layer (#610)

Volo 0.11.1

15 Jul 12:07
8edf3ab

Choose a tag to compare

volo-0.11.1

feat(volo-thrift): add more log filter for transport layer (#610)

Volo-Thrift 0.11.1

10 Jul 14:31
279a33a

Choose a tag to compare

What's Changed

  • fix(volo-cli): use r#gen rather than gen as the mod name following edition 2024 by @Ggiggle in #595
  • chore: use 2024 edition and adapt to new constraints by @Ggiggle in #596
  • feat(volo-grpc): add stats to track client and server by @Joshuahoky in #598
  • chore(volo-http): add retry layer in test helpers & use it in unit tests by @yukiiiteru in #601
  • chore(volo-http): remove unused debug print by @yukiiiteru in #603
  • fix(volo-http): put stripping IPv6 brackets in front. by @yukiiiteru in #604
  • chore(volo-build): move the field mask switch to right implement block by @Ggiggle in #605
  • chore: use minimal supported version for necessary deps by @yukiiiteru in #606
  • fix(volo-thrift): filter server remote closed log by @PureWhiteWu in #607

Full Changelog: volo-http-0.4.1...volo-thrift-0.11.1

Volo-HTTP 0.4.1

02 Jul 15:21
ae17b34

Choose a tag to compare

What's Changed

Bug Fixes

In previous implementation, HTTP client cannot resolve IPv6 literal address in URI like http://[::1]:8080/, and it will throw BadHostName without any context.

This version fixes this issue and adds context for errors like BadScheme and BadHostName, which will now print the error message along with its content, it should make troubleshooting easier.

Detailed Commits

  • fix(volo-http): fix error on ipv6 literal address resolving by @yukiiiteru in #597

Full Changelog: volo-http-0.4.0...volo-http-0.4.1

Volo-HTTP 0.4.0

30 Jun 13:19
e1958b3

Choose a tag to compare

What's Changed

Since Volo-HTTP 0.3.0

Features

Simplify Client

In the previous implementation, for the sake of performance, we used a lot of generics in the Client and minimized the use of Box. However, we found that this would make the Client too complicated and the Client-related errors difficult to understand.

To avoid the Client type being too complicated, we used Box in the outermost layer to wrap the inner dyn Future, which would not have a high performance overhead while ensuring that the type is simple and easy to use.

In 0.3.0, we may build a client typed DefaultClient with complicated generic types (and all of them are complicated type aliases), and in 0.4.0, we can use Client directly.

Support HTTP/2

We support HTTP/2 for both server and client, and connection pool for client is also supported.

Other Changes

Remove default Target of Client

Considering that default Target of Client is used less frequently, but it makes Target selection logic of Client too complicated, we have removed default Target of Client in this version.

However, we have added TargetLayer, it can force Client to set a Target, which can provide a similar experience as before.

With the removal of default Target of Client, configuration of default Host is also removed. Here we adjust the original Host Layer to be more flexible, which can be set to None, Auto, Force, Fallback modes.

The default callee name has been removed in favor of the with_callee_name method of TargetLayer. This is only necessary when accessing an HTTPS address via an IP address and needing to set up SNI.

Additionally, RequestBuilder::full_uri has been removed. We recommend using a Layer to implement this functionality rather than in RequestBuilder, and an example will be pushed later.

Others

  • Rename DefaultLB and DefaultLBService to DefaultLb and DefaultLbService
  • Remove deprecated ClientRequest, ServerRequest, ClientResponse, ServerResponse
  • Reduce some generic constraints
  • Fix infinite loop printing warn log when discover's watch channel is closed
  • Add HttpProxyLayer for supporting RFC7230 defined HTTP proxy
  • Support SpanProvider for HTTP server

Bug Fix

  • Use DiscoverKey instead of (FastStr, u16) as Discover::Key to avoid discovering unexpected cache of domain name with port

Break Changes

Simplify Client

  • The complex type aliases have been removed, including:
    • ClientMetaService
    • ClientService
    • SimpleClient
    • DefaultClientOuterService
    • DefaultClient
  • Generic types of Client has been changed from inner service (S) to request body and response body (ReqBody and RespBody).
    • In most cases, users can use Client directly and ignore the generic types.

Support HTTP/2

  • Since HTTP/2 is supported in this version, we add new features "http1" and "http2"
  • Default features is updated to ["default-client", "default-server"]

Additionally, the "default-client" and "default-server" use HTTP/1 only

Remove default Target of Client

  • Default target related functions of ClientBuilder are removed:
    • ClientBuilder::address
    • ClientBuilder::host
    • ClientBuilder::with_port
    • ClientBuilder::with_scheme
    • ClientBuilder::target_ref
    • ClientBuilder::target_mut
  • Host layer is refactored, and ClientBuilder::default_host is updated to ClientBuilder::host_mode
  • RequestBuilder::full_uri is removed

Detailed Commits

New Contributors

Full Changelog: volo-http-0.3.0...volo-http-0.4.0