nfs-rs 0.5.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nfs_rs-0.5.7/CHANGELOG.md +168 -0
- nfs_rs-0.5.7/Cargo.lock +1680 -0
- nfs_rs-0.5.7/Cargo.toml +62 -0
- nfs_rs-0.5.7/LICENSE +202 -0
- nfs_rs-0.5.7/PKG-INFO +165 -0
- nfs_rs-0.5.7/README.md +141 -0
- nfs_rs-0.5.7/benches/xdr_decode.rs +188 -0
- nfs_rs-0.5.7/build.rs +85 -0
- nfs_rs-0.5.7/examples/reset_dirty_a.rs +57 -0
- nfs_rs-0.5.7/examples/stress_mount.rs +93 -0
- nfs_rs-0.5.7/pyproject.toml +34 -0
- nfs_rs-0.5.7/python/nfs_rs/__init__.py +54 -0
- nfs_rs-0.5.7/python/nfs_rs/__init__.pyi +378 -0
- nfs_rs-0.5.7/python/nfs_rs/_client.py +1246 -0
- nfs_rs-0.5.7/python/nfs_rs/_errors.py +163 -0
- nfs_rs-0.5.7/python/nfs_rs/py.typed +1 -0
- nfs_rs-0.5.7/src/bin/fas2750-storage-check.rs +1 -0
- nfs_rs-0.5.7/src/bin/nfs-storage-benchmark.rs +565 -0
- nfs_rs-0.5.7/src/client_core.rs +492 -0
- nfs_rs-0.5.7/src/client_core_contract.rs +354 -0
- nfs_rs-0.5.7/src/error.rs +808 -0
- nfs_rs-0.5.7/src/lib.rs +1347 -0
- nfs_rs-0.5.7/src/mount.rs +1810 -0
- nfs_rs-0.5.7/src/nfs3/access.rs +29 -0
- nfs_rs-0.5.7/src/nfs3/commit.rs +47 -0
- nfs_rs-0.5.7/src/nfs3/create.rs +58 -0
- nfs_rs-0.5.7/src/nfs3/export.rs +186 -0
- nfs_rs-0.5.7/src/nfs3/fastxdr/mod.rs +52 -0
- nfs_rs-0.5.7/src/nfs3/fsinfo.rs +29 -0
- nfs_rs-0.5.7/src/nfs3/fsstat.rs +29 -0
- nfs_rs-0.5.7/src/nfs3/getattr.rs +28 -0
- nfs_rs-0.5.7/src/nfs3/link.rs +47 -0
- nfs_rs-0.5.7/src/nfs3/lookup.rs +59 -0
- nfs_rs-0.5.7/src/nfs3/mkdir.rs +58 -0
- nfs_rs-0.5.7/src/nfs3/mod.rs +1390 -0
- nfs_rs-0.5.7/src/nfs3/mount.rs +432 -0
- nfs_rs-0.5.7/src/nfs3/mount3xdr.rs +494 -0
- nfs_rs-0.5.7/src/nfs3/nfs3xdr.rs +6318 -0
- nfs_rs-0.5.7/src/nfs3/null.rs +24 -0
- nfs_rs-0.5.7/src/nfs3/pathconf.rs +32 -0
- nfs_rs-0.5.7/src/nfs3/read.rs +36 -0
- nfs_rs-0.5.7/src/nfs3/readdir.rs +75 -0
- nfs_rs-0.5.7/src/nfs3/readdirplus.rs +89 -0
- nfs_rs-0.5.7/src/nfs3/readlink.rs +34 -0
- nfs_rs-0.5.7/src/nfs3/remove.rs +39 -0
- nfs_rs-0.5.7/src/nfs3/rename.rs +56 -0
- nfs_rs-0.5.7/src/nfs3/rmdir.rs +39 -0
- nfs_rs-0.5.7/src/nfs3/setattr.rs +91 -0
- nfs_rs-0.5.7/src/nfs3/symlink.rs +58 -0
- nfs_rs-0.5.7/src/nfs3/umount.rs +43 -0
- nfs_rs-0.5.7/src/nfs3/write.rs +114 -0
- nfs_rs-0.5.7/src/nfs3/xdr/mount.x +39 -0
- nfs_rs-0.5.7/src/nfs3/xdr/nfs.x +648 -0
- nfs_rs-0.5.7/src/nfs4/acl.rs +459 -0
- nfs_rs-0.5.7/src/nfs4/attrs.rs +916 -0
- nfs_rs-0.5.7/src/nfs4/compound.rs +184 -0
- nfs_rs-0.5.7/src/nfs4/fastxdr/mod.rs +17 -0
- nfs_rs-0.5.7/src/nfs4/mod.rs +170 -0
- nfs_rs-0.5.7/src/nfs4/stateid.rs +57 -0
- nfs_rs-0.5.7/src/nfs4/xdr/nfs4.x +933 -0
- nfs_rs-0.5.7/src/nfs40/callback.rs +2068 -0
- nfs_rs-0.5.7/src/nfs40/compound.rs +1730 -0
- nfs_rs-0.5.7/src/nfs40/lease.rs +369 -0
- nfs_rs-0.5.7/src/nfs40/mod.rs +9 -0
- nfs_rs-0.5.7/src/nfs40/mount.rs +5714 -0
- nfs_rs-0.5.7/src/nfs40/state.rs +261 -0
- nfs_rs-0.5.7/src/nfs41/acl_ops.rs +55 -0
- nfs_rs-0.5.7/src/nfs41/callback.rs +784 -0
- nfs_rs-0.5.7/src/nfs41/compound.rs +2228 -0
- nfs_rs-0.5.7/src/nfs41/dir_ops.rs +257 -0
- nfs_rs-0.5.7/src/nfs41/getattr.rs +24 -0
- nfs_rs-0.5.7/src/nfs41/layout.rs +2131 -0
- nfs_rs-0.5.7/src/nfs41/lease.rs +375 -0
- nfs_rs-0.5.7/src/nfs41/lookup.rs +65 -0
- nfs_rs-0.5.7/src/nfs41/mod.rs +151 -0
- nfs_rs-0.5.7/src/nfs41/mount.rs +2406 -0
- nfs_rs-0.5.7/src/nfs41/pnfs_io.rs +1231 -0
- nfs_rs-0.5.7/src/nfs41/read.rs +92 -0
- nfs_rs-0.5.7/src/nfs41/readdir.rs +217 -0
- nfs_rs-0.5.7/src/nfs41/session.rs +1272 -0
- nfs_rs-0.5.7/src/nfs41/setattr.rs +168 -0
- nfs_rs-0.5.7/src/nfs41/state.rs +312 -0
- nfs_rs-0.5.7/src/nfs41/write.rs +312 -0
- nfs_rs-0.5.7/src/nfs41/xattr.rs +236 -0
- nfs_rs-0.5.7/src/python_adapter.rs +4785 -0
- nfs_rs-0.5.7/src/rpc/auth.rs +265 -0
- nfs_rs-0.5.7/src/rpc/header.rs +158 -0
- nfs_rs-0.5.7/src/rpc/mod.rs +1651 -0
- nfs_rs-0.5.7/src/shared.rs +49 -0
- nfs_rs-0.5.7/tests/lab_e2e.rs +2361 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.5.7] - 2026-08-29
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Apply the release policy of three independent supplemental attempts to each
|
|
15
|
+
Python artifact RSS plateau failure, accepting any successful retest while
|
|
16
|
+
preserving failed-attempt evidence.
|
|
17
|
+
|
|
18
|
+
## [0.5.6] - 2026-08-29
|
|
19
|
+
|
|
20
|
+
### Security
|
|
21
|
+
|
|
22
|
+
- Upgrade `bytes`, `crossbeam-epoch`, and PyO3 dependencies to versions that
|
|
23
|
+
address the current RustSec advisories enforced by the release gate.
|
|
24
|
+
|
|
25
|
+
## [0.5.5] - 2026-08-29
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Flatten immutable release artifacts before upload so audit and registry
|
|
30
|
+
publication consume the exact validated wheel, sdist, and crate files.
|
|
31
|
+
|
|
32
|
+
## [0.5.4] - 2026-08-29
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Run release metadata validation with Python 3.11 for standard-library TOML
|
|
37
|
+
support, then restore Python 3.10 for minimum-version artifact validation.
|
|
38
|
+
|
|
39
|
+
## [0.5.3] - 2026-08-29
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- Bootstrap Python before validating release tag/version coupling on the
|
|
44
|
+
self-hosted release runner.
|
|
45
|
+
|
|
46
|
+
## [0.5.2] - 2026-08-29
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- Add typed synchronous and asyncio Python clients for NFSv3, experimental
|
|
51
|
+
NFSv4.0, and NFSv4.1, including files, directories, namespace mutations,
|
|
52
|
+
metadata, ACLs, xattrs, recovery events, and structured operation outcomes.
|
|
53
|
+
- Add an `abi3-py310` Linux x86_64 wheel and tested source distribution with
|
|
54
|
+
complete stubs and a `py.typed` marker.
|
|
55
|
+
- Negotiate NFSv4 ACL capability from server-supported attributes.
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- Refresh the DXN NFSv4.0 performance baseline from nine independent capture
|
|
60
|
+
windows and keep the repository storage gate as the sole release-blocking
|
|
61
|
+
performance decision.
|
|
62
|
+
- Restrict the first Python artifact release to Linux x86_64.
|
|
63
|
+
|
|
64
|
+
### Testing
|
|
65
|
+
|
|
66
|
+
- Validate the final wheel and the wheel rebuilt from the source distribution
|
|
67
|
+
across real NFSv3, NFSv4.0, NFSv4.1, and NetApp pNFS environments.
|
|
68
|
+
- Add deterministic Python contract, typing, concurrency, cancellation,
|
|
69
|
+
lifecycle, memory-bound, fault, and packaging coverage.
|
|
70
|
+
- Run performance baseline capture every 20 minutes during bootstrap, reducing
|
|
71
|
+
the expected nine-window collection period from about 18 hours to 160 minutes.
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
|
|
75
|
+
- Accept NFSv4 PATHCONF responses that omit RECOMMENDED attributes, expose
|
|
76
|
+
per-field availability and filesystem scope, and retain one-RPC discovery.
|
|
77
|
+
|
|
78
|
+
## [0.5.1] - 2026-08-19
|
|
79
|
+
|
|
80
|
+
### Testing
|
|
81
|
+
|
|
82
|
+
- Add fail-closed nightly NFSv4.0 validation against the DXN
|
|
83
|
+
`10.131.7.201:/jay_nfs` fixture, including negotiated I/O limits,
|
|
84
|
+
self-contained namespace and data integrity checks, and concurrent I/O.
|
|
85
|
+
- Add independent cross-environment performance baselines for every real
|
|
86
|
+
Linux, DXN, FAS2750, and NetApp pNFS endpoint/protocol combination, with
|
|
87
|
+
scheduled multi-window capture, candidate release-gate tooling, and
|
|
88
|
+
JSON/Markdown reports.
|
|
89
|
+
|
|
90
|
+
## [0.5.0] - 2026-08-14
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
|
|
94
|
+
- Add experimental AUTH_SYS NFSv4.0 support through the common `Mount` API,
|
|
95
|
+
including namespace, metadata, ACL, stateful I/O, locks, lease recovery and
|
|
96
|
+
opt-in automatic delegation callbacks.
|
|
97
|
+
- Add deterministic RFC/scripted coverage and physical FAS2750 validation
|
|
98
|
+
through both reference data LIFs.
|
|
99
|
+
|
|
100
|
+
### Changed
|
|
101
|
+
|
|
102
|
+
- Accept exact `version=4.0` and ordered fallback lists while continuing to
|
|
103
|
+
reject ambiguous `version=4`; NFSv3 remains the default.
|
|
104
|
+
|
|
105
|
+
### Known limitations
|
|
106
|
+
|
|
107
|
+
- RPCSEC_GSS is not included. NFSv4.0 remains experimental, and real server
|
|
108
|
+
restart grace/reclaim evidence requires a dedicated fixture or maintenance
|
|
109
|
+
window.
|
|
110
|
+
|
|
111
|
+
## [0.4.0] - 2026-08-13
|
|
112
|
+
|
|
113
|
+
### Added
|
|
114
|
+
|
|
115
|
+
- Add NFSv4.1 pNFS file-layout I/O with multi-file distribution, striped
|
|
116
|
+
writes, incremental layout acquisition, and proactive layout refresh during
|
|
117
|
+
large writes.
|
|
118
|
+
- Add explicit uncertain-outcome reporting for operations whose completion
|
|
119
|
+
cannot be determined safely after a transport failure.
|
|
120
|
+
|
|
121
|
+
### Fixed
|
|
122
|
+
|
|
123
|
+
- Harden NFSv4.1 session, slot, lease, callback, reconnect, layout recall,
|
|
124
|
+
dirty-range, and partial pNFS data-server failure handling.
|
|
125
|
+
- Singleflight concurrent cold connections to the same pNFS data server and
|
|
126
|
+
fence cached reachability by session generation.
|
|
127
|
+
- Retry concurrent reserved-source-port tuple collisions for NFSv3 and
|
|
128
|
+
NFSv4.1 connections while preserving the final concrete endpoint error.
|
|
129
|
+
|
|
130
|
+
### Testing
|
|
131
|
+
|
|
132
|
+
- Add scripted reliability coverage and physical NetApp NFSv4.1/pNFS nightly
|
|
133
|
+
validation.
|
|
134
|
+
|
|
135
|
+
## [0.3.1] - 2026-07-30
|
|
136
|
+
|
|
137
|
+
### Fixed
|
|
138
|
+
|
|
139
|
+
- Limit the effective NFSv4.1 write size by the negotiated session request
|
|
140
|
+
size, reserving protocol framing space to prevent `NFS4ERR_REQ_TOO_BIG`.
|
|
141
|
+
|
|
142
|
+
### Testing
|
|
143
|
+
|
|
144
|
+
- Exercise the full negotiated NFSv4.1 write size against the physical
|
|
145
|
+
integration lab.
|
|
146
|
+
|
|
147
|
+
## [0.3.0] - 2026-07-29
|
|
148
|
+
|
|
149
|
+
### Added
|
|
150
|
+
|
|
151
|
+
- Asynchronous NFSv3 and NFSv4.1 client support over TCP.
|
|
152
|
+
- File, directory, metadata, link, ACL, and filesystem operations through the
|
|
153
|
+
shared `Mount` interface.
|
|
154
|
+
- Configurable privileged or ephemeral source-port behavior.
|
|
155
|
+
- Physical-lab end-to-end coverage for NFSv3 and NFSv4.1.
|
|
156
|
+
|
|
157
|
+
[Unreleased]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.7...HEAD
|
|
158
|
+
[0.5.7]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.6...v0.5.7
|
|
159
|
+
[0.5.6]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.5...v0.5.6
|
|
160
|
+
[0.5.5]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.4...v0.5.5
|
|
161
|
+
[0.5.4]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.3...v0.5.4
|
|
162
|
+
[0.5.3]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.2...v0.5.3
|
|
163
|
+
[0.5.2]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.1...v0.5.2
|
|
164
|
+
[0.5.1]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.5.0...v0.5.1
|
|
165
|
+
[0.5.0]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.4.0...v0.5.0
|
|
166
|
+
[0.4.0]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.3.1...v0.4.0
|
|
167
|
+
[0.3.1]: https://github.com/JayTsu-sh/nfs-rs/compare/v0.3.0...v0.3.1
|
|
168
|
+
[0.3.0]: https://github.com/JayTsu-sh/nfs-rs/releases/tag/v0.3.0
|