Skip to content
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

new feature: Support more storage services and APIs for Go bindings. #5326

Open
1 task
diqiu50 opened this issue Nov 15, 2024 · 5 comments
Open
1 task

new feature: Support more storage services and APIs for Go bindings. #5326

diqiu50 opened this issue Nov 15, 2024 · 5 comments
Labels
bindings/go enhancement New feature or request

Comments

@diqiu50
Copy link

diqiu50 commented Nov 15, 2024

Feature Description

In Go, we are using OpenDAL to implement file and directory operations for storage systems such as S3, HDFS, GCS, OSS, and Azure Blob. We need to support the following features:

  1. Go service support for HDFS, GCS, OSS, and Azure Blob.
  2. Go service support for macOS.
  3. The Go binding API should support the RangeBounds parameter in the Reader, as in the Rust version.

Problem and Solution

The main issues:

  1. The backend storage systems does not support HDFS, GCS, OSS, and Azure Blob..
  2. The Go binding API does not support offset-based read operation.

Additional Context

No response

Are you willing to contribute to the development of this feature?

  • Yes, I am willing to contribute to the development of this feature.
@diqiu50 diqiu50 added the enhancement New feature or request label Nov 15, 2024
@Xuanwo
Copy link
Member

Xuanwo commented Nov 15, 2024

  • Adding support for GCS, OSS, and Azblob should be straightforward, but HDFS requires some testing first.
  • Adding macOS support should be easy as well, I suppose.
  • Read and write support should be implemented in the C binding first.

cc @yuchanns, any comments?

@Xuanwo
Copy link
Member

Xuanwo commented Nov 15, 2024

@yuchanns
Copy link
Member

yuchanns commented Nov 15, 2024

Adding support for GCS, OSS, and Azblob should be straightforward, but HDFS requires some testing first.

Yes, for most of the features, it can be enabled by appending services to the matrix of the opendal-go-services.

Adding macOS support should be easy as well, I suppose.

It depends on https://github.com/jupiterrider/ffi. And yes, it requires little effort to support.

Read and write support should be implemented in the C binding first.

I'll take a look at it if nobody is interested.

@Xuanwo
Copy link
Member

Xuanwo commented Nov 16, 2024

It depends on jupiterrider/ffi. And yes, it requires little effort to support.

Hi, @yuchanns, can our current workflow support macOS by simply adding macos-latest? Are there other things we need to do?

@yuchanns
Copy link
Member

Hi, @yuchanns, can our current workflow support macOS by simply adding macos-latest? Are there other things we need to do?

I think so. And there are some works to do with opendal-go-services. We need to generate artifacts for both Darwin amd64 and arm64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bindings/go enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants