-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking issues of opendalfs 0.1 release #6
Comments
cc @wey-gu and @BeautyyuYanli, are there any features you'd like included in our initial release? |
I think no need to have a package for every different service, since the opendal has all in one package |
Some methods have already been implemented in the abstract class. Others we can implement them by opendal-python or directly rust binding. Maybe the package will not depend on opendal-python, but becomes a new Python binding. |
I have establish the project layout. Adding a service should be as easy as add a simple config: #11 |
@BeautyyuYanli, I have updated the API that we need to implement and added place holders for them, welcome to take a look. |
I would like to add to your list:
|
Hello! I would like to contribute to this project. I have experience with Python and C++, but I am not yet familiar with Rust. I am very willing to learn it for this project. I am still a beginner in open source. @Xuanwo Could you please assign me some simple and basic tasks to familiarize me with the whole process? I could get started and learn from them. Thanks to @wey-gu for the guidance! |
Hi, @dongshunyao, nice to meet you! I think we can start with implementing |
Thank you! I prefer to implement |
Hi! I am so sorry for the delay in this PR #18, which was caused by my health reasons and some unexpected situations. I implemented the |
Implements core fsspec APIs adds a comprehensive test suite. Core Implementation Changes: - Converted sync operations to async due to S3 service limitations: * S3 backend doesn't implement blocking operations * Moved to tokio Runtime for async operation handling * Affected methods: ls(), mkdir(), rmdir(), info(), exists() Implemented APIs: - OpendalFileSystem: * mkdir(), mkdirs(), rmdir() * ls(), info() * rm_file() * _open() * modified() * created() (raises NotImplementedError - OpenDAL limitation) - OpendalBufferedFile (partial): * _fetch_range() * Basic _upload_chunk() Test Organization: - Core functionality tests (tests/core/): * Basic operations (test_basic.py) * IO operations (test_io.py) * Metadata operations (test_metadata.py) - Backend-specific tests (tests/backends/): * S3 virtual directories * S3 bucket operations * S3 path handling - Centralized test utilities (utils/s3.py) Remaining TODOs: 1. Implement fsid() 2. Complete OpendalBufferedFile implementation: * Proper _initiate_upload() implementation * Enhanced _upload_chunk() with chunking support * Add specific tests for buffered operations 3. Add documentation for services 4. Expand test coverage for different services 5. Add service-specific documentation This PR implements most core filesystem operations but needs additional work on buffered file operations and their testing. References: fsspec#6
Sorry @martindurant I missed your collaborator invitation, could you or @Xuanwo please help resend it? I spend some free time making some contributions with the help of LLMs(not a rust coder :-p), to heal myself and find some peace in mind! Thanks and kindly help review! #19 |
We impl both async and blocking APIs following the method name convention rules of fsspec.s3fs as a protocol: async methods starts with _, also the blocking API leverages the fsspec asyn sync wrappers for the blocking methods. Underlying we wire the pyo3 bridged rust future async methods to _foo methods. In recent PR #19 :) what do you think? cc @Xuanwo |
#20 made the ci work; build, and publish part were added for release. |
This issue is used to track the progress of opendalfs 0.1 release. Welcome to join in the developmenet by leaving your comments here.
memory
,fs
,s3
,azblob
,gcs
,oss
at least.Tasks
The text was updated successfully, but these errors were encountered: