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.
Files changed (90) hide show
  1. nfs_rs-0.5.7/CHANGELOG.md +168 -0
  2. nfs_rs-0.5.7/Cargo.lock +1680 -0
  3. nfs_rs-0.5.7/Cargo.toml +62 -0
  4. nfs_rs-0.5.7/LICENSE +202 -0
  5. nfs_rs-0.5.7/PKG-INFO +165 -0
  6. nfs_rs-0.5.7/README.md +141 -0
  7. nfs_rs-0.5.7/benches/xdr_decode.rs +188 -0
  8. nfs_rs-0.5.7/build.rs +85 -0
  9. nfs_rs-0.5.7/examples/reset_dirty_a.rs +57 -0
  10. nfs_rs-0.5.7/examples/stress_mount.rs +93 -0
  11. nfs_rs-0.5.7/pyproject.toml +34 -0
  12. nfs_rs-0.5.7/python/nfs_rs/__init__.py +54 -0
  13. nfs_rs-0.5.7/python/nfs_rs/__init__.pyi +378 -0
  14. nfs_rs-0.5.7/python/nfs_rs/_client.py +1246 -0
  15. nfs_rs-0.5.7/python/nfs_rs/_errors.py +163 -0
  16. nfs_rs-0.5.7/python/nfs_rs/py.typed +1 -0
  17. nfs_rs-0.5.7/src/bin/fas2750-storage-check.rs +1 -0
  18. nfs_rs-0.5.7/src/bin/nfs-storage-benchmark.rs +565 -0
  19. nfs_rs-0.5.7/src/client_core.rs +492 -0
  20. nfs_rs-0.5.7/src/client_core_contract.rs +354 -0
  21. nfs_rs-0.5.7/src/error.rs +808 -0
  22. nfs_rs-0.5.7/src/lib.rs +1347 -0
  23. nfs_rs-0.5.7/src/mount.rs +1810 -0
  24. nfs_rs-0.5.7/src/nfs3/access.rs +29 -0
  25. nfs_rs-0.5.7/src/nfs3/commit.rs +47 -0
  26. nfs_rs-0.5.7/src/nfs3/create.rs +58 -0
  27. nfs_rs-0.5.7/src/nfs3/export.rs +186 -0
  28. nfs_rs-0.5.7/src/nfs3/fastxdr/mod.rs +52 -0
  29. nfs_rs-0.5.7/src/nfs3/fsinfo.rs +29 -0
  30. nfs_rs-0.5.7/src/nfs3/fsstat.rs +29 -0
  31. nfs_rs-0.5.7/src/nfs3/getattr.rs +28 -0
  32. nfs_rs-0.5.7/src/nfs3/link.rs +47 -0
  33. nfs_rs-0.5.7/src/nfs3/lookup.rs +59 -0
  34. nfs_rs-0.5.7/src/nfs3/mkdir.rs +58 -0
  35. nfs_rs-0.5.7/src/nfs3/mod.rs +1390 -0
  36. nfs_rs-0.5.7/src/nfs3/mount.rs +432 -0
  37. nfs_rs-0.5.7/src/nfs3/mount3xdr.rs +494 -0
  38. nfs_rs-0.5.7/src/nfs3/nfs3xdr.rs +6318 -0
  39. nfs_rs-0.5.7/src/nfs3/null.rs +24 -0
  40. nfs_rs-0.5.7/src/nfs3/pathconf.rs +32 -0
  41. nfs_rs-0.5.7/src/nfs3/read.rs +36 -0
  42. nfs_rs-0.5.7/src/nfs3/readdir.rs +75 -0
  43. nfs_rs-0.5.7/src/nfs3/readdirplus.rs +89 -0
  44. nfs_rs-0.5.7/src/nfs3/readlink.rs +34 -0
  45. nfs_rs-0.5.7/src/nfs3/remove.rs +39 -0
  46. nfs_rs-0.5.7/src/nfs3/rename.rs +56 -0
  47. nfs_rs-0.5.7/src/nfs3/rmdir.rs +39 -0
  48. nfs_rs-0.5.7/src/nfs3/setattr.rs +91 -0
  49. nfs_rs-0.5.7/src/nfs3/symlink.rs +58 -0
  50. nfs_rs-0.5.7/src/nfs3/umount.rs +43 -0
  51. nfs_rs-0.5.7/src/nfs3/write.rs +114 -0
  52. nfs_rs-0.5.7/src/nfs3/xdr/mount.x +39 -0
  53. nfs_rs-0.5.7/src/nfs3/xdr/nfs.x +648 -0
  54. nfs_rs-0.5.7/src/nfs4/acl.rs +459 -0
  55. nfs_rs-0.5.7/src/nfs4/attrs.rs +916 -0
  56. nfs_rs-0.5.7/src/nfs4/compound.rs +184 -0
  57. nfs_rs-0.5.7/src/nfs4/fastxdr/mod.rs +17 -0
  58. nfs_rs-0.5.7/src/nfs4/mod.rs +170 -0
  59. nfs_rs-0.5.7/src/nfs4/stateid.rs +57 -0
  60. nfs_rs-0.5.7/src/nfs4/xdr/nfs4.x +933 -0
  61. nfs_rs-0.5.7/src/nfs40/callback.rs +2068 -0
  62. nfs_rs-0.5.7/src/nfs40/compound.rs +1730 -0
  63. nfs_rs-0.5.7/src/nfs40/lease.rs +369 -0
  64. nfs_rs-0.5.7/src/nfs40/mod.rs +9 -0
  65. nfs_rs-0.5.7/src/nfs40/mount.rs +5714 -0
  66. nfs_rs-0.5.7/src/nfs40/state.rs +261 -0
  67. nfs_rs-0.5.7/src/nfs41/acl_ops.rs +55 -0
  68. nfs_rs-0.5.7/src/nfs41/callback.rs +784 -0
  69. nfs_rs-0.5.7/src/nfs41/compound.rs +2228 -0
  70. nfs_rs-0.5.7/src/nfs41/dir_ops.rs +257 -0
  71. nfs_rs-0.5.7/src/nfs41/getattr.rs +24 -0
  72. nfs_rs-0.5.7/src/nfs41/layout.rs +2131 -0
  73. nfs_rs-0.5.7/src/nfs41/lease.rs +375 -0
  74. nfs_rs-0.5.7/src/nfs41/lookup.rs +65 -0
  75. nfs_rs-0.5.7/src/nfs41/mod.rs +151 -0
  76. nfs_rs-0.5.7/src/nfs41/mount.rs +2406 -0
  77. nfs_rs-0.5.7/src/nfs41/pnfs_io.rs +1231 -0
  78. nfs_rs-0.5.7/src/nfs41/read.rs +92 -0
  79. nfs_rs-0.5.7/src/nfs41/readdir.rs +217 -0
  80. nfs_rs-0.5.7/src/nfs41/session.rs +1272 -0
  81. nfs_rs-0.5.7/src/nfs41/setattr.rs +168 -0
  82. nfs_rs-0.5.7/src/nfs41/state.rs +312 -0
  83. nfs_rs-0.5.7/src/nfs41/write.rs +312 -0
  84. nfs_rs-0.5.7/src/nfs41/xattr.rs +236 -0
  85. nfs_rs-0.5.7/src/python_adapter.rs +4785 -0
  86. nfs_rs-0.5.7/src/rpc/auth.rs +265 -0
  87. nfs_rs-0.5.7/src/rpc/header.rs +158 -0
  88. nfs_rs-0.5.7/src/rpc/mod.rs +1651 -0
  89. nfs_rs-0.5.7/src/shared.rs +49 -0
  90. 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