Skip to content

chore(deps): update rust crate clickhouse to 0.14#15

Closed
renovate[bot] wants to merge 104 commits intomasterfrom
renovate/clickhouse-0.x
Closed

chore(deps): update rust crate clickhouse to 0.14#15
renovate[bot] wants to merge 104 commits intomasterfrom
renovate/clickhouse-0.x

Conversation

@renovate
Copy link
Copy Markdown

@renovate renovate bot commented Mar 11, 2026

This PR contains the following updates:

Package Type Update Change
clickhouse (source) workspace.dependencies minor 0.130.14

Release Notes

ClickHouse/clickhouse-rs (clickhouse)

v0.14.2

Compare Source

Added
  • Added Client::insert_formatted_with() and InsertFormatted for inserting data in a chosen format with a specified SQL query. (#​364)
    • InsertFormatted does not buffer data by default, allowing precise control over when the data is sent. For best performance, ensure data is sent in larger chunks or use .buffered() to get BufInsertFormatted which implements buffering.
    • Data may optionally be pre-compressed and buffered separately using CompressedData::new() and InsertFormatted::send_compressed().
    • BufInsertFormatted also implements tokio::io::AsyncWrite for composability.
  • Added Client::set_option to modify options through &mut Client (#​375)
  • Added Client::get_option to read previously set options (#​375)
  • Added support for binding byte-strings as server-side params (#​376)
    • This means passing types to Query::param that call Serializer::serialize_bytes() are now supported.
    • Note that Vec<u8> and &[u8] serialize as an array of integers.
      Use a specialized type, e.g. bytes::Bytes or serde_bytes::Bytes to bind a byte-string.
  • Implemented Primitive for bytes::Bytes and bytes::BytesMut (#​376)
    • These can be used to fetch byte-strings as a scalar value, e.g. with Query::fetch_one().
Fixed
  • Implemented parsing for the new exception tagging format in ClickHouse 25.11 (#​365)
  • Fixed a doc comment on clickhouse::serde::chrono::date (#​371)
Changed
  • (CI-only change) added scheduled runs against clickhouse-server:head tag, reworked secrets access (#​367)
  • Query no longer sets the readonly option by default. (#​377)
    • This was previously added in [#​342] to simulate the default read-only restriction
      when issuing queries via GET requests, but had poor interaction with settings profiles that set readonly="2".

v0.14.1

Compare Source

Added
  • Implement Stream for RowCursor. (#​283, #​340)
  • Added an optional on_commit callback to Inserter. (#​307)
  • Added with_role and with_default_roles methods to Client, Query, Insert, and Inserter, allowing to
    explicitly set the roles for executed queries. (#​326)
  • Added Int256 and UInt256 ClickHouse types support. The client now provides two new convenience wrappers over
    [u8; 32]: clickhouse::types::Int256 and clickhouse::types::UInt256. See the updated derive example. (#​352)
Fixed
  • When binding u128/i128 values to SQL queries using server-side params, the client now correctly serializes them as
    strings without adding an unnecessary cast. (#​322)
  • Fixed an issue where the schema validation could fail with custom JSON types such as
    JSON(max_dynamic_paths=64, max_dynamic_types=8). (#​350, Steffen911)
Changed
  • Optimize RowCursor by reusing buffer capacity where possible. (#​340)
  • All Query::fetch* methods will always use POST instead of GET. It is now allowed to change readonly value via
    Query::with_option. (#​342)
  • In case of a schema mismatch, the client now emits clickhouse::error::Error::SchemaMismatch instead of panicking.
    (#​346)
  • Removed replace_with, static_assertions, and sealed from the crate dependencies. (#​353)

v0.14.0

Compare Source

Removed
  • BREAKING watch: Client::watch() API is removed (#​245).
  • BREAKING mock: watch() and watch_only_events() are removed (#​245).
Changed
  • BREAKING insert: the type of Insert<_> should now be specified when calling client.insert::<_>(). (#​247)
  • BREAKING insert: Client::insert() is now async. (#​244)
  • BREAKING inserter: Inserter::write() is now async. (#​244)
  • BREAKING inserter: Inserter::new() return just Self instead of Result<Self>. (#​244)
  • BREAKING query: RowBinaryWithNamesAndTypes is now used by default for query results. This may cause panics if
    the row struct definition does not match the database schema. Use Client::with_validation(false) to revert to the
    previous behavior which uses plain RowBinary format for fetching rows. (#​221, #​244)
  • BREAKING mock: when using test-util feature, it is now required to use Client::with_mock(&mock) to set up the
    mock server, so it properly handles the response format and automatically disables parsing
    RowBinaryWithNamesAndTypes header parsing and validation. Additionally, it is not required to call with_url
    explicitly. See the updated example.
  • BREAKING query: Query::fetch_bytes() now expects impl AsRef<str> for format instead of Into<String>.
    Most usages should not be affected, however, unless passing a custom type that implements the latter but not the former.
    (#​311)
  • query: due to RowBinaryWithNamesAndTypes format usage, there might be an impact on fetch performance, which largely
    depends on how the dataset is defined. If you notice decreased performance, consider disabling validation by using
    Client::with_validation(false).
  • serde: it is now possible to deserialize Map ClickHouse type into HashMap<K, V> (or BTreeMap, IndexMap,
    DashMap, etc.).
  • tls: improved error messages in case of missing TLS features when using HTTPS (#​229).
  • crate: MSRV is now 1.79 due to borrowed rows support redesign in #​247.
  • crate: bumped dependencies, see #​232, #​239 and #​280 for additional details.
  • crate: starting from 0.3.0, clickhouse-derive is now published as clickhouse-macros on crates.io. The former clickhouse-derive crate is discontinued. (#​318).
Added
  • types: added support for Time and Time64 types (#​258).
  • client: added Client::with_validation builder method. Validation is enabled by default, meaning that
    RowBinaryWithNamesAndTypes format will be used to fetch rows from the database. If validation is disabled,
    RowBinary format will be used, similarly to the previous versions. (#​221).
  • types: a new crate clickhouse-types was added to the project workspace. This crate is required for
    RowBinaryWithNamesAndTypes struct definition validation, as it contains ClickHouse data types AST, as well as
    functions and utilities to parse the types out of the ClickHouse server response. (#​221).
  • query: support serializing serde_bytes::Bytes as hex string literals in query parameters (#​250).
  • derive: added #[clickhouse(crate = "...")] attribute for #[derive(Row)] (#​189, #​292)
Fixed
  • client: extract the exception code from X-ClickHouse-Exception-Code in case of incorrect 200 OK response
    that could occur with ClickHouse server up to versions 24.x (#​256).
  • query: pass format as ?default_format URL parameter instead of using FORMAT clause, allowing queries to have
    trailing comments and/or semicolons (#​267, #​269, #​311).

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

…imiting

Add typed Rust HTTP client for Synapse's API surface (LLM, MCP, STT, TTS).
Mount STT and TTS endpoint routers in the server. Replace Redis-based
rate limit storage with in-memory cache storage.
Implement Phase 5 of Synapse integration plan:

- Smart model routing with heuristic query analysis via tiktoken
- Three routing strategies: threshold, cost-constrained, cascade
- Circuit breaker health tracking with automatic recovery probing
- Model registry with cost/quality profiles and runtime latency
- Failover with equivalence groups and configurable retry attempts
- Virtual model names (auto, fast, best, cheap) for routing shortcuts
- Feedback tracker for live per-model latency and error rate metrics

New crate: synapse-routing (analysis, registry, strategies, feedback)

Modified: synapse-llm (health tracker, router integration, error types),
synapse-config (failover and routing config schemas),
integration-tests (failover scenarios and mock failure harness)
Introduce weighted score strategy that combines quality, cost, and latency
into a single objective. Extract shared feedback-adjusted scoring into a
dedicated module and simplify config defaults with derive macros.
Add `embedded` feature flag with optional synapse-llm, synapse-config,
and synapse-core dependencies. Restructure SynapseClient to dispatch on
a Backend enum (Remote vs Embedded), extract helper methods to free
functions, and add cfg-gated Llm error variant. Remote behavior is
unchanged; embedded arms return placeholder errors for now.
…bedded mode

Set default-features = false on synapse-llm in workspace root so
synapse-client embedded mode doesn't pull in axum. Synapse-server
explicitly enables the http feature.
…ed mode

Debug formatting produced "toolcalls" instead of "tool_calls" for
FinishReason::ToolCalls. Use serde serialization which respects the
rename_all = "snake_case" attribute.

Also: use state.list_models() in handler, remove redundant stream
assignment in client.
…action, and strategy registry

Enhance the routing engine with richer query analysis (vision, long-context,
multi-turn detection), capability-based model filtering, a pluggable Strategy
trait with StrategyRegistry for custom strategies, and regex-based task
classification. Wire the new structured analysis pipeline through synapse-llm.
…ts and usage metering

Introduce synapse-billing crate with Aether API client, async usage
recorder, and entitlement/usage caching. Wire billing identity
resolution, entitlement gating, and token metering into the server
middleware stack. Support BYOK, managed, and hybrid API key modes.
…, and provider trait

Add OpenAI-compatible embeddings routing crate with EmbeddingRequest
(supporting single/array input via EmbedInput), EmbeddingResponse,
EmbeddingsError with IntoResponse, and EmbeddingsProvider async trait.
Implement OpenAiEmbeddingsProvider that POSTs to the OpenAI embeddings
API, strips the "provider/" model prefix, and maps errors to the
EmbeddingsError variants. Follows the STT whisper provider pattern.
Implement OpenAiEmbeddingsProvider that POSTs to the OpenAI embeddings
API, strips the "provider/" model prefix, and maps errors to the
EmbeddingsError variants. Follows the STT whisper provider pattern.
…erver

Add EmbeddingsConfig to synapse-config, build EmbeddingsServerBuilder
with provider dispatch, and mount POST /v1/embeddings endpoint in the
main server.
OpenAI-compatible POST /v1/images/generations endpoint with provider
dispatch, config, error handling, and server mount
coopbri and others added 25 commits February 28, 2026 12:32
Strips Gemini and AWS Bedrock from launch lineup to reduce surface
area. Launch with OpenAI, Anthropic, and Nvidia (8 models). Google
and Bedrock can be re-added post-launch if users request them.
Allow resolving keys of any category (ai, voice, etc) by provider name
Resolve BYOK provider keys from Gatekeeper's vault as an overlay on
synapse-api keys, with moka-backed caching and event-driven invalidation
via Vortex webhook events.
Previously the auth middleware passed through requests with no
Authorization header or non-synapse tokens, allowing unauthenticated
access to upstream providers. Now returns 401 for missing or
invalid-format tokens on non-public paths.
Bump changesets deps to latest, bump changesets/action to v1.7.0, fix
repo name in changeset config, add missing config fields, add
workflow_dispatch and version_commit detection, add changelog extraction
in publish job, add timeouts, add .changeset/README.md, add node_modules
to gitignore, and track bun.lock.
CORS origin updated from dashboard.synapse.omni.dev to synapse.omni.dev.
Upstream 429 responses now return RateLimited instead of Upstream error,
triggering equivalence group failover to alternative providers.
OPTIONS requests now bypass auth middleware so the CORS layer can
handle preflight. Upstream 401/403 errors map to LlmError::Unauthorized
(non-retryable) instead of LlmError::Upstream, returning a clear 401 to
the client rather than a misleading 502 after failed failover.
Add Manual variant to KeyMode for UI-created API keys (treated as
managed billing). Change token limit fields from u64 to i64 so the
-1 unlimited sentinel from synapse-api can be deserialized.
Bump toolchain from 1.90.0 to 1.93.0 for AWS SDK compat.
Remove invalid [dev-dependencies] from workspace manifest.
Update all Cargo dependencies via cargo update.
Clippy 1.93 flags manual Default impls that can be derived. Replace
manual impls with #[derive(Default)] + #[default] on Action and
AnyOrArray enums.
Collapse multi-line `if` conditions onto single lines per updated
rustfmt style rules. Fixes CI `cargo fmt --check` failure.
Use OTEL_EXPORTER_OTLP_ENDPOINT (standard name) instead of
OTEL_ENDPOINT to match the Railway environment variable.
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 11, 2026

⚠️ No Changeset found

Latest commit: 527fe50

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate
Copy link
Copy Markdown
Author

renovate bot commented Mar 13, 2026

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (0.14). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/clickhouse-0.x branch March 13, 2026 00:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant