Fatorin opened a new pull request, #7238: URL: https://github.com/apache/opendal/pull/7238
# Which issue does this PR close? Closes #2428. # Rationale for this change This PR adds the Apache OpenDAL .NET binding together with its testing and CI integration. The binding provides a .NET-friendly API built on top of the OpenDAL Rust core via FFI, allowing .NET applications to access OpenDAL services using familiar .NET patterns such as async/await, `Stream`, and `IDisposable`. In addition to the core binding implementation, this PR also introduces behavior-test integration for the .NET binding and separates regular binding tests from backend behavior tests in CI, following the testing model already used by other language bindings. # What changes are included in this PR? - Implement the initial .NET binding for OpenDAL. - Provide `Operator` APIs covering common object operations, including read, write, stat, list, delete, copy, rename, create dir, remove all, and presign operations. - Add async APIs using `Task`. - Implement .NET `Stream` wrappers (`OperatorInputStream`, `OperatorOutputStream`). - Add service configuration support, including scheme + dictionary options and typed configs. - Implement operation options (`ReadOptions`, `WriteOptions`, `ListOptions`, `StatOptions`). - Add layer support (`RetryLayer`, `TimeoutLayer`, `ConcurrentLimitLayer`). - Implement error mapping via `OpenDALException` and `ErrorCode`. - Add README documentation and usage examples for the .NET binding. - Add .NET behavior tests for core operator behaviors. - Add behavior test workflow integration for the .NET binding. - Separate regular .NET binding tests and behavior tests in CI so they are executed independently. # Are there any user-facing changes? Yes. This PR introduces the Apache OpenDAL .NET binding, allowing .NET users to interact with OpenDAL services through a native .NET API. It also adds documentation and examples for using the binding. # AI Usage Statement AI tools were used to assist with development exploration, code implementation, and documentation drafting. All code and changes were manually reviewed and validated before submission. **AI version used:** GitHub Copilot (Codex 5.2) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
