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]

Reply via email to