Zhengchao An
a91d9cefc6
test(interop): add real MinIO read and migration parity tests ( #4377 )
...
test(interop): real-MinIO read + migration parity, Phase 1/2 (backlog#580)
Capture authentic on-disk fixtures from MinIO RELEASE.2025-07-23 (a bucket with
versioning, object-lock, lifecycle, tagging, quota, a public policy, SSE-S3
encryption, a webhook notification target, and a replication rule, plus inline /
versioned / multipart objects and a delete marker) and prove RustFS reads and
migrates them losslessly:
- filemeta parses_real_minio_object_xlmeta: small inline, two-object-version +
delete marker, and multipart object xl.meta parse to the expected FileInfo.
- ecstore parses_real_minio_bucket_metadata_blob_without_loss: the MinIO
.metadata.bin msgpack decodes via the PascalCase field names and
parse_all_configs loads all ten config types present (policy, lifecycle incl.
<ExpiryUpdatedAt>, object-lock, versioning, tagging, quota, notification,
encryption/SSE-S3, replication incl. DeleteMarkerReplication /
ExistingObjectReplication) without loss.
- ecstore reads_minio_inline_bucket_metadata_via_bitrot: MinIO inlines an object
body as [HighwayHash256 32B][body]; RustFS's BitrotReader with HighwayHash256S
verifies and yields the exact blob (the "inline_data 前缀不同" is that prefix).
- ecstore migrates_real_minio_bucket_metadata_end_to_end: on a throwaway 4-drive
local ECStore, a real MinIO .metadata.bin seeded under .minio.sys is migrated
into .rustfs.sys byte-identically for every config, exercising the Phase 2
source adapter (MIGRATING_META_BUCKET = ".minio.sys") through the object layer.
All four run as ordinary crate tests (nextest CI). Phase 4 (MinIO re-reading a
RustFS drive) is documented as out of scope for one-way migration.
Refs rustfs/backlog#580
2026-07-08 01:12:49 +08:00
Zhengchao An
742a59884d
test(ecstore): add validation suite coverage gates ( #4378 )
2026-07-07 23:50:12 +08:00
Zhengchao An
8a0617865b
refactor(replication): route app storage through ecstore ( #4251 )
2026-07-04 02:00:28 +08:00
Zhengchao An
c0dfc260ca
refactor(ecstore): add replication object bridge ( #4140 )
2026-07-01 19:24:20 +08:00
Zhengchao An
801838fdbd
test(ecstore): guard replication facade boundary ( #4035 )
2026-06-29 10:32:09 +08:00
Zhengchao An
1e6f20912a
test(ecstore): cover SetDisks storage contracts ( #4033 )
2026-06-29 10:01:42 +08:00
Zhengchao An
72ae43cb90
refactor: segment external storage contract imports ( #3908 )
2026-06-26 16:44:59 +08:00
Zhengchao An
6efbfff2c5
refactor: segment residual storage api boundaries ( #3905 )
2026-06-26 15:56:38 +08:00
Zhengchao An
c9614eb7cb
refactor: route ecstore storage api boundaries ( #3892 )
2026-06-26 09:35:18 +08:00
houseme
a30357d21e
feat(storage): extend PUT path tuning and observability ( #3829 )
...
* feat(storage): add multipart put stage metrics
* feat(scripts): add multipart put focus runner
* docs(operations): add multipart put server-path guides
* chore(scripts): add local rustfs restart helper
* docs(observability): add local metrics backend guide
* docs(observability): add localized multipart guides
* fix(ecstore): validate multipart batching path
* feat(obs): add erasure encode overlap metrics
* docs(ops): update overlap retest summary
* docs(ops): add batchblocks retest matrix
* docs(ops): extend overlap candidate summary
* docs(ops): capture 8-run overlap summary
* feat(storage): switch rename_data to msgpack map
* test(storage): add rename_data payload checks
* feat(object): add zero_copy_eager put path
* docs(ops): add zero_copy_eager put guide
* docs(ops): add deeper zero-copy next steps
2026-06-25 19:24:35 +08:00
安正超
d4150117c3
refactor: narrow startup and ecstore root facades ( #3679 )
...
* refactor: narrow startup owner visibility
* refactor: prune remaining ecstore root facades
2026-06-21 09:42:15 +08:00
安正超
0985225448
refactor: consolidate ecstore public facade ( #3678 )
...
* refactor: expand ecstore compatibility facade
* test: enforce ecstore api facade imports
* refactor: hide legacy ecstore layout modules
* refactor: hide ecstore facade root modules
2026-06-21 09:09:11 +08:00
安正超
54ffbedbc8
refactor: remove ecstore operation compat facades ( #3608 )
2026-06-19 17:01:12 +08:00
houseme
8cf3c0bfbd
fix(ecstore): support MinIO DARE fixture compatibility ( #3590 )
2026-06-19 10:13:39 +08:00
安正超
57403525ee
refactor: move heal and namespace contracts ( #3560 )
2026-06-18 11:00:21 +08:00
安正超
966756d788
test: guard storage contract cleanup ( #3501 )
2026-06-16 21:18:52 +08:00
安正超
0baf90ee88
refactor: remove storage api facade ( #3490 )
2026-06-16 07:46:32 +08:00
安正超
a85cc0354c
refactor(storage-api): remove namespace lock from StorageAPI ( #3365 )
...
* refactor(storage-api): remove namespace lock from StorageAPI
* test(scanner): wait for runtime budget cancellation
---------
Co-authored-by: loverustfs <hello@rustfs.com >
2026-06-11 22:42:12 +08:00
安正超
7146c893cb
refactor(storage-api): remove legacy bucket DTO re-export ( #3364 )
2026-06-11 21:24:56 +08:00
安正超
4b1714438e
feat(storage-api): bind ecstore admin contract ( #3331 )
2026-06-11 05:49:14 +08:00
安正超
bb5d9565a6
feat(storage-api): add bucket DTO contract ( #3314 )
...
* feat(storage-api): add bucket DTO contract
* ci(build): increase workflow timeout to 90 minutes
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-10 07:16:14 +00:00
houseme
aabda41ae5
build: upgrade Rust baseline to 1.96.0 ( #3291 )
...
* build: upgrade Rust baseline to 1.96.0
* ci: pin Rust workflows to 1.96.0
* remove
* ci: pin setup action to Rust 1.96.0
* build: pin toolchain to Rust 1.96.0
2026-06-08 20:32:37 +00:00
唐小鸭
f7724d223b
feat(rio): rio_v2 is compatible with minio for storing data. ( #3115 )
...
* Set up a compatibility layer for replacing old Rio components with new ones.
* fix(rio). compress range
* feat(rio). Add the experimental feature rio_v2 to support minio data at the binary level.
* feat(rio_v2): add sse-c test
* test compression component
* simple fix
* fix minlz encode
* fix metadata
* fix kms key cache error
* Update launch.json
* ci: set nix crate download user agent
* fix: gate obs pyroscope backend
* ignore minio test
* fix encrypt check
* fix
* fix
* fix
* Update object_usecase.rs
* Update ci.yml
* fix
* ci add rio-v2 test
* fix
* ci fix
* fix
* Reconstructed into a more reasonable compatibility mode
* fix
* fix
---------
Signed-off-by: houseme <housemecn@gmail.com >
Signed-off-by: 唐小鸭 <tangtang1251@qq.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: cxymds <Cxymds@qq.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-06-08 11:59:14 +00:00
唐小鸭
4aafb07173
refactor: update binary field types and conversions in RPC and protofiles ( #2619 )
...
Signed-off-by: 唐小鸭 <tangtang1251@qq.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2026-04-21 14:49:09 +00:00
Tunglies
579b124726
lint: clippy rules or_fun_call ( #2561 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-16 02:48:39 +00:00
houseme
7172e151de
fix: address correctness, safety, and concurrency issues ( #2327 )
...
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-03-30 00:30:57 +08:00
weisd
b9b7d86ae4
feat: improve legacy metadata and admin compatibility ( #2202 )
2026-03-18 21:05:09 +08:00