GitHub user Xuanwo edited a discussion: Remove blocking API entirely from 
`raw::Access`

OpenDAL supports both blocking and asynchronous APIs. However, over time, this 
design has created a significant maintenance burden. Few services truly have 
blocking API support, yet we all have to invest considerable effort in 
duplicating code throughout the project.

Maybe it's time for us to remove blocking API  entirely from `raw::Access`. And 
only keep `BlockingOperator` as a wrapper of `Operator`.

After this change:

- `raw::Access` will only have async API which can reduce a lot of duplicated 
code, especially in layers.
- Existing API on `BlockingOperator` won't be affected.
- `BlockingLayer` could be removed and related APIs been moved to 
`BlockingOperator` instead.

Benefits:

- OpenDAL's codebase can be reduced a lot, as all services and layers could cut 
the number of generated functions by half.
- OpenDAL can accelerate development by eliminating the need to implement the 
save feature separately for both async and blocking modes.
- OpenDAL can now provide tokio/monoiofs/compfs as alternaitve.

GitHub link: https://github.com/apache/opendal/discussions/6126

----
This is an automatically sent email for dev@opendal.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@opendal.apache.org

Reply via email to