Commit Graph

5465 Commits

Author SHA1 Message Date
Andrey Vasnetsov
688c65bf6f parse round floats as integers on payload indexing (#8100)
* parse round floats as integers on payload indexing

* use backward conversion to validate if float is actualy integerable

* fmt

* Use then_some

---------

Co-authored-by: timvisee <tim@visee.me>
2026-02-11 10:39:25 +01:00
Luis Cossío
a87c22f56b fix: handle score_threshold in Formula queries (#8097)
* handle `score_threshold` in Formula queries

* AI: add openapi test

prompt: Upload 4 points with a numeric payload, use the payload as the
score, and set a score threshold. We can assert which ids should be in
the result and which shouldn't
2026-02-10 17:28:27 -03:00
Andrey Vasnetsov
076aa13399 HTTPS snapshot links (#8095)
* [manual] generate snapshot download link with respect of enabled tls

* Simplify http(s) selection

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2026-02-10 18:13:15 +01:00
Andrey Vasnetsov
a610710e76 Avoid shards holder locks on snapshot (#8072)
* refactor shard.create_snapshot to own everything necessary in the future for snapshotting

* do not lock shards_holder and replica_set during snapshot

* separate locks and snapshot creation all the way down

* separate locks and snapshot creation even further on the local shard level

* final touches

* minor review fixes
2026-02-10 18:03:25 +01:00
dependabot[bot]
f78578e38a build(deps): bump tempfile from 3.24.0 to 3.25.0 (#8084)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.24.0 to 3.25.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/commits)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-version: 3.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 08:37:37 +01:00
dependabot[bot]
5cc0a3e7f9 build(deps): bump proptest from 1.9.0 to 1.10.0 (#8087)
Bumps [proptest](https://github.com/proptest-rs/proptest) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/proptest-rs/proptest/releases)
- [Changelog](https://github.com/proptest-rs/proptest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/proptest-rs/proptest/compare/v1.9.0...v1.10.0)

---
updated-dependencies:
- dependency-name: proptest
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 08:36:33 +01:00
dependabot[bot]
d8a4a6e838 build(deps): bump criterion from 0.8.1 to 0.8.2 (#8086)
Bumps [criterion](https://github.com/criterion-rs/criterion.rs) from 0.8.1 to 0.8.2.
- [Release notes](https://github.com/criterion-rs/criterion.rs/releases)
- [Changelog](https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/criterion-rs/criterion.rs/compare/criterion-v0.8.1...criterion-v0.8.2)

---
updated-dependencies:
- dependency-name: criterion
  dependency-version: 0.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 08:32:15 +01:00
dependabot[bot]
2d6043c9aa build(deps): bump sysinfo from 0.38.0 to 0.38.1 (#8081)
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.38.0 to 0.38.1.
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.38.0...v0.38.1)

---
updated-dependencies:
- dependency-name: sysinfo
  dependency-version: 0.38.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 08:08:00 +01:00
dependabot[bot]
c418fb61b3 build(deps): bump flate2 from 1.1.8 to 1.1.9 (#8085)
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.1.8 to 1.1.9.
- [Release notes](https://github.com/rust-lang/flate2-rs/releases)
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.1.8...1.1.9)

---
updated-dependencies:
- dependency-name: flate2
  dependency-version: 1.1.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 07:54:34 +01:00
dependabot[bot]
0c079102df build(deps): bump anyhow from 1.0.100 to 1.0.101 (#8083)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.100 to 1.0.101.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.100...1.0.101)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-version: 1.0.101
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 07:52:41 +01:00
dependabot[bot]
ff3dcc5a3e build(deps): bump siphasher from 1.0.1 to 1.0.2 (#8088)
Bumps [siphasher](https://github.com/jedisct1/rust-siphash) from 1.0.1 to 1.0.2.
- [Commits](https://github.com/jedisct1/rust-siphash/compare/1.0.1...1.0.2)

---
updated-dependencies:
- dependency-name: siphasher
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 07:51:16 +01:00
dependabot[bot]
59c0fff101 build(deps): bump clap from 4.5.56 to 4.5.57 (#8082)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.56 to 4.5.57.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.56...clap_complete-v4.5.57)

---
updated-dependencies:
- dependency-name: clap
  dependency-version: 4.5.57
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 07:49:45 +01:00
dependabot[bot]
db89a44108 build(deps): bump zerocopy from 0.8.37 to 0.8.39 (#8080)
Bumps [zerocopy](https://github.com/google/zerocopy) from 0.8.37 to 0.8.39.
- [Release notes](https://github.com/google/zerocopy/releases)
- [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google/zerocopy/compare/v0.8.37...v0.8.39)

---
updated-dependencies:
- dependency-name: zerocopy
  dependency-version: 0.8.39
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 07:47:59 +01:00
Arnaud Gourlay
d67c7fa36a bump actix-files from 0.6.9 to 0.6.10 (#8077) 2026-02-09 19:31:18 +01:00
Andrey Vasnetsov
1ae2070e1c audit logging (#8071)
* initial implementation

* internal logging type

* wrap more places into auth function

* [manual refactor] use &Auth in .toc fucntion - minimise direct .access()

* [manual refactor] fmt

* [manual refactor] remove unannotated .access in creation of snapshots

* [manual refactor] remove unannotated .access in cluster telemetry

* [manual refactor] remove unannotated .access

* [manual refactor] do not log /metrics api access

* [manual refactor] do not run the service if audit logging failed to init

* [manual refactor] make auditable operation names for point and cluster updates

* [manual refactor] remove excess cloning of auth object

* [manual refactor] fmt

* [AI] instead of manual writing into the file, use tracing_appender crate

* [AI] simplify configuration to match internal crate

* fmt

* [manual refactor] cover staging options

* [AI] refactor x-forwarded-for handelling

* [manual refactor] use consts for x-forwarded-for + recover handelling for RFC case in tonic

* Update src/tonic/forwarded.rs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [manual] review fix: use FORWARDED in actix

* [manual] review fix: do not log strict mode checks

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-09 19:16:20 +01:00
Luis Cossío
a962a862ac disable multi_threaded_readers_consistent (#8078) 2026-02-09 17:51:44 +01:00
Ivan Pleshkov
138155b15f fix wal replay deadlock in update queue (#8068) 2026-02-09 15:45:50 +01:00
Kyamran Shakhaev
6a5bdc7300 Add unified actix version (#8074) 2026-02-09 12:06:23 +00:00
Ivan Pleshkov
312c373f04 Fix flaky test_wal_replay_loads_pending_to_queue (#8067) 2026-02-09 13:02:20 +01:00
Jojii
3b1496537a Use spawn_blocking for segment locking (#8069)
* Use spawn_blocking for segment locking

* Wrap blocking task in AbortOnDropHandle

* Use single blocking thread for fetching all segment size information

---------

Co-authored-by: timvisee <tim@visee.me>
2026-02-09 12:04:16 +01:00
Tim Visée
a908d58753 Bump time to 0.3.47 (#8066) 2026-02-09 10:29:40 +01:00
Andrey Vasnetsov
4437edb775 Weighted rrf (#8063)
* weighted rrf implementation

* test

* fmt

* fix edge

* validate number of sources and number of weights

* do not partial match

* upd schema

* review fixes

* update formula

* remove calcualtions from tests

* update comment, because AI have OCD

* fmt
2026-02-06 19:36:27 +01:00
Jojii
cf4158094b Don't lock SegmentHolder for the entire duration of read operations (#8056)
* Don't lock SegmentHolder during read operations

* Add comment clarifying eager segment allocation

* review fixes

* Remove TODO

* Shorter locking of segment holder in calculate_local_shard_stats

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2026-02-06 11:32:09 +01:00
tellet-q
75ba1de122 Add more stages for shard transfer profiling (#8027)
* Improve stages reporting

* Remove transferring records info from snapshot transfer's comment

* Add detailed profiling for ReshardingStreamRecords

* Address AI review comment

* Remove some nesting

---------

Co-authored-by: timvisee <tim@visee.me>
2026-02-06 10:55:23 +01:00
Luis Cossío
312d708aaa [trififo] seqlock with interior mutability (#8012) 2026-02-05 17:54:32 -03:00
Tim Visée
c033e26cf4 Enable update queue (#8046) 2026-02-05 17:46:32 +01:00
xzfc
6bced54ca1 Chore: promote dependencies to workspace level (#8061)
* Promote `env_logger` to workspace dependency

* Promote `anyhow` to workspace dependency

* Promote `rmp-serde` to workspace dependency

* Promote `tinyvec` to workspace dependency

* Promote `async-trait` to workspace dependency

* Promote `url` to workspace dependency

* Promote `self_cell` to workspace dependency

* Promote `cc` to workspace dependency

* Promote `bitpacking` to workspace dependency
2026-02-05 16:02:28 +01:00
Ivan Boldyrev
56799122b0 Split SegmentEntry into appendable and non-appendable part (#8047)
* Split `SegmentEntry`

Add `ImmutableSegmentEntry` for operations that can be applied to
immutable segments, and make the `SegmentEntry` as it subtrait.

* Rename to `NonAppendableSegmentEntry`

It differs semantically from `ImmutableSegmentEntry` by allowing point
deletion.  Move point deletion to the trait too.

* Fix docstring

* use NonAppendableSegmentEntry where possible

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2026-02-05 15:46:58 +01:00
Ivan Pleshkov
90923e5886 Remove UpdateSignal::Stop (#8050)
* remove UpdateSignal Stop

refactor wal truncation

restart workers even if wal truncation fails

* dont duplicate notification code in update worker

* send manually cancellation token to update worker

* revert stop_update_workers and keep as is

* refactor wal truncation

* are you happy clippy

* Inline breaks into single block

* Remove closure and call directly

* dont recreate channels in config update

* more comments

* debug assert

* fmt

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2026-02-05 15:23:38 +01:00
Arnaud Gourlay
c7438cce9d Attempt to Fix RST_STREAM by draining http2 channels (#8019)
* Fix RST_STREAM by draining http2 channels

* remove controversial duration time for now

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2026-02-05 14:07:48 +01:00
Ivan Pleshkov
510b0c090a Update queue status in metrics and telemetry (#8060)
* update queue status in metrics and telemetry

* fix python tests

* update openapi
2026-02-05 11:37:19 +01:00
Tim Visée
abb270f59a For snapshots directly restored, use default temp path in storage volume (#8059) 2026-02-05 09:29:05 +01:00
Lior.Chen
bc3f9a1c60 feat: Optimize the collection loading process during startup (#8053)
* feat: optimize the collection loading process during startup

* simplify config options

* chore: update config.yaml

* Remove global state

* Disallow zero values

* Remove intermediate map

* Rename ConcurrentLoadConfig to LoadConcurrencyConfig

* Flatten config

* Accept string inputs from environment variables

* Fix test compilation

---------

Co-authored-by: generall <andrey@vasnetsov.com>
Co-authored-by: chenliang <chenliang@chenliangdeMacBook-Air.local>
Co-authored-by: timvisee <tim@visee.me>
2026-02-04 17:35:33 +01:00
Luis Cossío
de3e7c58c1 cfg import behind linux flag (#8058) 2026-02-04 16:25:40 +01:00
Tim Visée
059d093e50 Also specify clone behavior for new facet types in edge (#8055) 2026-02-04 10:53:06 +01:00
Tim Visée
bbd43a70a7 build(deps): bump bytes from 1.10.1 to 1.11.1 (#8054)
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.10.1 to 1.11.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.10.1...v1.11.1)

---
updated-dependencies:
- dependency-name: bytes
  dependency-version: 1.11.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 10:35:01 +01:00
dependabot[bot]
1eeb957447 build(deps): bump jsonwebtoken from 10.2.0 to 10.3.0 (#8039)
* build(deps): bump jsonwebtoken from 10.2.0 to 10.3.0

Bumps [jsonwebtoken](https://github.com/Keats/jsonwebtoken) from 10.2.0 to 10.3.0.
- [Changelog](https://github.com/Keats/jsonwebtoken/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Keats/jsonwebtoken/compare/v10.2.0...v10.3.0)

---
updated-dependencies:
- dependency-name: jsonwebtoken
  dependency-version: 10.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump expiration to current time, don't unset it

* Add test to assert empty expiration is not allowed

* Allow absent expiration

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: timvisee <tim@visee.me>
2026-02-04 10:26:58 +01:00
dependabot[bot]
ac7e9f905c build(deps): bump pyo3 from 0.27.2 to 0.28.0 (#8034)
* build(deps): bump pyo3 from 0.27.2 to 0.28.0

Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.27.2 to 0.28.0.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pyo3/pyo3/compare/v0.27.2...v0.28.0)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: add skip_from_py_object to accept the new behaviour

* chore: switch to from_py_object

* chore: allow deprecated usage

* fix: import

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Boros <dancixx@gmail.com>
2026-02-04 10:10:00 +01:00
xzfc
5a3dd12e02 Callback-based DenseVectorStorage::for_each_in_dense_batch (#8033)
* Generalized vector offset

* Replace get_batch-like methods with for_each-like methods
2026-02-04 07:06:23 +00:00
Arnaud Gourlay
52e995d78b WAL replay honors applied_seq (#8008)
* WAL replay honors applied_seq

fixes

* add integration test

* restore test after rebase

---------

Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com>
2026-02-03 20:47:57 +01:00
Kyamran Shakhaev
7a22335397 Change Rust version (#8049) 2026-02-03 18:15:45 +01:00
Daniel Boros
039d66fe40 feat/edge-facet-api (#8045)
* feat: add sync facet api

* feat: add facet-tests

* fix: formatting

* chore: remove exact typing

* feat: reduce code duplication

* fix: add missing type def

* fix: serde default value
2026-02-03 18:13:38 +01:00
Andrey Vasnetsov
44ac1f00dc faster segment holder locks (#8007)
* non-locking retrieve

* optimization & write exclusive lock via upgradable_read

* faster segment holder locks debug (#8024)

* fix deadlock

* move LockedSegmentHolder into a dedicated file

* reorder locks for snapshot

* fmt

* upd comments

* Update lib/collection/src/collection_manager/optimizers/segment_optimizer.rs

Co-authored-by: Ivan Boldyrev <ivan.boldyrev@qdrant.com>

* Add UpdatesGuard type wrapper for updates_guard (#8031)

* Initial plan

* Add UpdatesGuard newtype wrapper for updates_guard

Co-authored-by: generall <1935623+generall@users.noreply.github.com>

* Fix linter issue - remove trailing space in doc comment

Co-authored-by: generall <1935623+generall@users.noreply.github.com>

* Remove unnecessary new() method, use tuple constructor directly

Co-authored-by: generall <1935623+generall@users.noreply.github.com>

* fix clippy

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: generall <1935623+generall@users.noreply.github.com>
Co-authored-by: generall <andrey@vasnetsov.com>

* Remove aliassed lifetime

Co-authored-by: Jojii <15957865+JojiiOfficial@users.noreply.github.com>

---------

Co-authored-by: Ivan Boldyrev <ivan.boldyrev@qdrant.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: generall <1935623+generall@users.noreply.github.com>
Co-authored-by: Tim Visée <tim+github@visee.me>
Co-authored-by: Jojii <15957865+JojiiOfficial@users.noreply.github.com>
2026-02-03 16:20:57 +01:00
Ivan Pleshkov
2c9de6c4a4 Drop wal from api (#8000)
* Drop WAL from API

Flatten if statement

another approach

review remarks

switch flag back guard

unit test

* review remarks

* review remarks

* test missing records which are not truncated and not applied

* Drop wal from api: don't use applied seq number (#8030)

* Don't rely on applied seq num

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove unused

* Repurpose existing plunger, unset first_skipped in operation branch

* more complicated tests with empty wal

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ivan Pleshkov <pleshkov.ivan@gmail.com>

* review remarks

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-03 15:53:34 +01:00
Jojii
a24377d615 Fix test consistency in random memory id tracker (#8043) 2026-02-03 15:37:43 +01:00
Andrey Vasnetsov
f403f6d00d Streaming snapshot unpacking (#8025)
* download tar

* compute sha256 for stream download

* wip: propagate unpacking into down to the logic, todo: validation

* unpacked snapshot validation

* Minor tweaks

* Fix typo

* validation during unpack

* cancellation token

* update docstring

* remove redundant dep

* Rearrange unpack functions

- Rename `safe_unpack.rs` into `tar_unpack.rs` so it would be listed
  near `tar_ext.rs` in IDEs.
- Replace calls like `ar = open_snapshot_archive(…); safe_unpack(ar, …);`
  with a single call to `tar_unpack_file(…)`.
- Put calls to `Archive::new(); Archive::set_overwrite(false);` inside
  `tar_unpack_reader` (was `safe_unpack`). So, now it is the only place
  that does `set_overwrite`.

* Let clippy complain if tar::Archive::unpack used

* Mock snapshot download URL

Instead of downloading from storage.googleapis.com every time the test
runs, put small snapshot file to the repo.

The snapshot file is created using this command:

    curl -s \
      https://storage.googleapis.com/qdrant-benchmark-snapshots/test-shard.snapshot \
    | tar \
      --delete segments/4ea958d8-0b64-4312-9a53-0cd857e93535.tar \
      --delete segments/65ac6276-8cca-4f5c-b767-9722190cee8b.tar \
      > lib/storage/src/content_manager/snapshots/test-shard.snapshot

File contents:

    $ tar tf lib/storage/src/content_manager/snapshots/test-shard.snapshot
    wal/
    wal/closed-255
    newest_clocks.json
    replica_state.json
    shard_config.json
    
    $ du -sh lib/storage/src/content_manager/snapshots/test-shard.snapshot
    12K	lib/storage/src/content_manager/snapshots/test-shard.snapshot
    
    $ sha256sum < lib/storage/src/content_manager/snapshots/test-shard.snapshot       
    5d94eac5c1ede3994a28bc406120046c37370d5d45b489a0d2252531b4e3e1f2  -

---------

Co-authored-by: timvisee <tim@visee.me>
Co-authored-by: xzfc <xzfcpw@gmail.com>
2026-02-03 12:19:18 +01:00
Ivan Boldyrev
984a9e8bd1 Fix gridstore Option unsoundness (#8011)
* Implement `Optional<T>` type

Define a type with the same presumed layout as `Option<T>`, but with defined behavior.

* Make `transmute_*` functions unsafe

The functions `memory::mmap_ops::transmute_*` are inherently unsafe, but
are not marked as are.  Their usage is documented, but it is not always clear
if the code is correct.

* Add `CsrHeader` to resolve another unsoundness

Tuples have no defined layout.
2026-02-03 17:57:09 +07:00
dependabot[bot]
436165bdfb build(deps): bump foyer from 0.22.2 to 0.22.3 (#8042)
Bumps [foyer](https://github.com/foyer-rs/foyer) from 0.22.2 to 0.22.3.
- [Release notes](https://github.com/foyer-rs/foyer/releases)
- [Changelog](https://github.com/foyer-rs/foyer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/foyer-rs/foyer/compare/v0.22.2...v0.22.3)

---
updated-dependencies:
- dependency-name: foyer
  dependency-version: 0.22.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 11:19:59 +01:00
Daniel Boros
6d01e88d74 feat: add x-forwarded support (#8028)
* feat: add x-forwarded support

* fix: port parsing & add tests

* fix: case-insensitive mode
2026-02-03 10:47:07 +01:00
dependabot[bot]
84915274d0 build(deps): bump cc from 1.2.54 to 1.2.55 (#8040)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.54 to 1.2.55.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.54...cc-v1.2.55)

---
updated-dependencies:
- dependency-name: cc
  dependency-version: 1.2.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 10:15:20 +01:00