This is an automated email from the ASF dual-hosted git repository. xuanwo pushed a commit to branch try-into-future in repository https://gitbox.apache.org/repos/asf/opendal.git
commit 5673f987284b959f18bd8551dac276f9d5eb959c Merge: 4479a0de40 b34abe426b Author: Xuanwo <[email protected]> AuthorDate: Tue Jan 30 15:17:33 2024 +0800 Merge remote-tracking branch 'origin/main' into try-into-future .devcontainer/post_create.sh | 4 +- .env.example | 43 +- .../behavior_test_binding_nodejs/action.yaml | 4 +- .../action.yaml | 25 +- .github/actions/setup/action.yaml | 20 +- .github/scripts/assign_reviewers.js | 72 + .github/scripts/behavior_test/plan.py | 15 +- .github/services/{obs/obs => b2/b2}/action.yml | 12 +- .../supabase => chainsafe/chainsafe}/action.yml | 9 +- .../{webhdfs/webhdfs => ftp/vsftpd}/action.yml | 17 +- .../webhdfs => huggingface/huggingface}/action.yml | 16 +- .../{supabase/supabase => koofr/koofr}/action.yml | 11 +- .../{webhdfs/webhdfs => persy/persy}/action.yml | 15 +- .github/services/s3/r2/action.yml | 1 + .../webhdfs => seafile/seafile}/action.yml | 26 +- .github/services/tikv/tikv_tls/action.yml | 77 - .github/services/webhdfs/webhdfs/action.yml | 1 + .../webhdfs_with_list_batch_disabled/action.yml | 1 + .github/workflows/behavior_test.yml | 2 +- .github/workflows/behavior_test_binding_nodejs.yml | 12 +- .github/workflows/behavior_test_binding_python.yml | 2 +- ...{service_test_ipmfs.yml => bindings_dotnet.yml} | 43 +- .github/workflows/bindings_go.yml | 6 +- .github/workflows/bindings_haskell.yml | 4 +- .github/workflows/bindings_java.yml | 4 +- .github/workflows/bindings_nodejs.yml | 78 +- .github/workflows/bindings_ocaml.yml | 3 - .github/workflows/bindings_php.yml | 2 +- .github/workflows/bindings_python.yml | 23 +- .github/workflows/ci.yml | 89 +- .github/workflows/ci_pr_labeler.yml | 2 +- .../workflows/{ci_pr_labeler.yml => ci_review.yml} | 31 +- .github/workflows/docs.yml | 92 +- .github/workflows/edge_test.yml | 79 + .github/workflows/fuzz_test.yml | 134 +- .github/workflows/publish.yml | 4 +- .github/workflows/release_java.yml | 42 +- .github/workflows/service_test_atomicserver.yml | 57 - .github/workflows/service_test_foundationdb.yml | 59 - .github/workflows/service_test_ftp.yml | 91 - .github/workflows/service_test_ghac.yml | 2 +- .github/workflows/service_test_hdfs.yml | 41 +- .github/workflows/service_test_ipfs.yml | 81 - .github/workflows/service_test_s3.yml | 72 - .gitignore | 2 - .typos.toml | 2 + CHANGELOG.md | 1951 ++-- CITATION.cff | 4 +- CONTRIBUTING.md | 44 +- Cargo.lock | 1311 +-- Cargo.toml | 30 +- DEPENDENCIES.md | 19 + DISCLAIMER | 10 - NOTICE | 4 +- README.md | 23 +- bin/oay/Cargo.toml | 2 +- bin/oay/DEPENDENCIES.md | 3 + bin/oay/DEPENDENCIES.rust.tsv | 289 + bin/oay/README.md | 6 + {bindings/cpp => bin/ofs}/Cargo.toml | 33 +- bin/ofs/DEPENDENCIES.md | 3 + bin/ofs/DEPENDENCIES.rust.tsv | 242 + bin/ofs/README.md | 9 + bin/ofs/src/bin/ofs.rs | 83 + bin/ofs/src/lib.rs | 223 + bin/oli/Cargo.toml | 2 +- bin/oli/DEPENDENCIES.md | 3 + bin/oli/DEPENDENCIES.rust.tsv | 265 + bin/oli/README.md | 8 +- bin/oli/src/commands/cp.rs | 9 +- bindings/c/CONTRIBUTING.md | 16 +- bindings/c/Cargo.lock | 2087 ++++ bindings/c/Cargo.toml | 18 +- bindings/c/DEPENDENCIES.md | 9 + bindings/c/DEPENDENCIES.rust.tsv | 221 + bindings/c/Doxyfile | 4 +- bindings/c/Makefile | 2 +- bindings/c/README.md | 11 +- bindings/c/include/opendal.h | 7 +- bindings/c/src/lib.rs | 2 +- bindings/c/src/operator_info.rs | 3 - bindings/c/tests/bdd.cpp | 20 - bindings/c/tests/opinfo.cpp | 4 - bindings/cpp/CMakeLists.txt | 2 +- bindings/cpp/CONTRIBUTING.md | 2 +- bindings/cpp/Cargo.lock | 1947 ++++ bindings/cpp/Cargo.toml | 16 +- bindings/cpp/DEPENDENCIES.md | 9 + bindings/cpp/DEPENDENCIES.rust.tsv | 248 + bindings/cpp/Doxyfile | 4 +- bindings/cpp/README.md | 16 +- bindings/cpp/tests/basic_test.cpp | 8 - bindings/dotnet/Cargo.lock | 1828 ++++ bindings/dotnet/Cargo.toml | 14 +- bindings/dotnet/DEPENDENCIES.md | 9 + bindings/dotnet/DEPENDENCIES.rust.tsv | 238 + bindings/dotnet/DotOpenDAL/DotOpenDAL.csproj | 8 +- bindings/dotnet/README.md | 8 +- bindings/go/DEPENDENCIES.md | 4 + bindings/go/README.md | 10 +- bindings/haskell/CONTRIBUTING.md | 3 +- bindings/haskell/Cargo.lock | 1830 ++++ bindings/haskell/Cargo.toml | 16 +- bindings/haskell/DEPENDENCIES.md | 17 + bindings/haskell/DEPENDENCIES.rust.tsv | 238 + bindings/haskell/README.md | 11 +- bindings/haskell/haskell-src/OpenDAL.hs | 8 +- bindings/haskell/opendal.cabal | 16 +- bindings/haskell/test/BasicTest.hs | 24 +- bindings/java/Cargo.toml | 23 +- bindings/java/DEPENDENCIES.md | 9 + bindings/java/DEPENDENCIES.rust.tsv | 254 + bindings/java/README.md | 10 +- bindings/java/pom.xml | 24 +- bindings/java/src/lib.rs | 3 +- .../main/java/org/apache/opendal/Capability.java | 15 +- .../apache/opendal/{ => layer}/package-info.java | 5 +- .../main/java/org/apache/opendal/package-info.java | 3 +- .../opendal/test/OperatorUtf8DecodeTest.java | 2 +- .../opendal/test/behavior/AsyncCopyTest.java | 4 + .../opendal/test/behavior/AsyncReadOnlyTest.java | 2 +- .../test/behavior/BlockingReadOnlyTest.java | 2 +- bindings/java/tools/build.py | 25 +- bindings/java/upgrade.md | 8 +- bindings/lua/Cargo.lock | 1978 ++++ bindings/lua/Cargo.toml | 19 +- bindings/lua/DEPENDENCIES.md | 9 + bindings/lua/DEPENDENCIES.rust.tsv | 252 + bindings/lua/README.md | 10 +- bindings/lua/opendal-0.1.0-1.rockspec | 6 +- bindings/lua/src/lib.rs | 4 +- bindings/lua/test/opendal_test.lua | 4 - bindings/nodejs/.npmignore | 2 + bindings/nodejs/.npmrc | 1 + bindings/nodejs/.prettierignore | 3 +- bindings/nodejs/.yarnrc.yml | 18 - bindings/nodejs/CONTRIBUTING.md | 42 +- bindings/nodejs/Cargo.toml | 27 +- bindings/nodejs/DEPENDENCIES.md | 9 + bindings/nodejs/DEPENDENCIES.rust.tsv | 252 + bindings/nodejs/README.md | 26 +- bindings/nodejs/benchmark/README.md | 2 +- bindings/nodejs/benchmark/node.js | 1 + bindings/nodejs/{index.d.ts => generated.d.ts} | 234 +- bindings/nodejs/generated.js | 35 +- bindings/nodejs/index.d.ts | 624 +- bindings/nodejs/index.js | 118 +- bindings/nodejs/npm/darwin-arm64/package.json | 4 +- bindings/nodejs/npm/darwin-x64/package.json | 4 +- bindings/nodejs/npm/linux-arm64-gnu/package.json | 4 +- bindings/nodejs/npm/linux-arm64-musl/package.json | 4 +- bindings/nodejs/npm/linux-x64-gnu/package.json | 4 +- bindings/nodejs/npm/win32-arm64-msvc/package.json | 4 +- bindings/nodejs/npm/win32-x64-msvc/package.json | 4 +- bindings/nodejs/package.json | 22 +- bindings/nodejs/pnpm-lock.yaml | 2402 ++++ bindings/nodejs/scripts/header.js | 2 +- bindings/nodejs/src/capability.rs | 6 - bindings/nodejs/src/lib.rs | 331 +- bindings/nodejs/tests/suites/async.suite.mjs | 68 +- bindings/nodejs/tests/suites/index.mjs | 6 +- bindings/nodejs/tests/suites/sync.suite.mjs | 67 +- bindings/nodejs/tests/utils.mjs | 13 +- bindings/nodejs/theme/index.tsx | 53 + bindings/nodejs/tsconfig.json | 2 +- bindings/nodejs/tsconfig.theme.json | 16 + bindings/nodejs/typedoc.json | 6 +- bindings/nodejs/upgrade.md | 11 +- .../nodejs/{vitest.config.js => vitest.config.mjs} | 1 + bindings/nodejs/yarn.lock | 3704 ------- bindings/ocaml/Cargo.lock | 1927 ++++ bindings/ocaml/Cargo.toml | 16 +- bindings/ocaml/DEPENDENCIES.md | 9 + bindings/ocaml/DEPENDENCIES.rust.tsv | 204 + bindings/ocaml/README.md | 16 +- bindings/ocaml/dune-project | 12 +- bindings/ocaml/lib/operator.ml | 7 + bindings/ocaml/lib/operator.mli | 11 + bindings/ocaml/opendal.opam | 14 +- bindings/ocaml/src/dune | 4 +- bindings/ocaml/src/operator.ml | 8 + bindings/ocaml/src/operator.mli | 8 + bindings/ocaml/src/operator/_type.rs | 4 + .../ocaml/src/operator/entry.rs | 21 +- bindings/ocaml/src/operator/mod.rs | 15 + bindings/ocaml/test/test.ml | 27 +- bindings/php/Cargo.lock | 2590 +++++ bindings/php/Cargo.toml | 18 +- bindings/php/DEPENDENCIES.md | 9 + bindings/php/DEPENDENCIES.rust.tsv | 269 + bindings/php/README.md | 18 +- bindings/python/CONTRIBUTING.md | 2 +- bindings/python/Cargo.toml | 37 +- bindings/python/DEPENDENCIES.md | 9 + bindings/python/DEPENDENCIES.rust.tsv | 249 + bindings/python/README.md | 41 +- bindings/python/pyproject.toml | 4 +- bindings/python/src/capability.rs | 3 - bindings/python/src/file.rs | 3 + bindings/python/src/lib.rs | 5 +- bindings/python/src/operator.rs | 10 +- bindings/python/src/utils.rs | 1 - bindings/python/template/module.html.jinja2 | 33 + bindings/python/upgrade.md | 9 +- bindings/ruby/.gitignore | 3 +- bindings/ruby/.rspec | 3 + bindings/ruby/Cargo.lock | 2106 ++++ bindings/ruby/Cargo.toml | 16 +- bindings/ruby/DEPENDENCIES.md | 9 + bindings/ruby/DEPENDENCIES.rust.tsv | 226 + bindings/ruby/Gemfile | 7 +- bindings/ruby/README.md | 14 +- bindings/ruby/Rakefile | 20 +- bindings/ruby/cucumber.yml | 18 - bindings/ruby/opendal.gemspec | 4 +- .../ruby/{Gemfile => spec/blocking_op_spec.rb} | 24 +- bindings/ruby/{Gemfile => spec/spec_helper.rb} | 20 +- bindings/ruby/tests/binding.feature | 1 - bindings/ruby/tests/steps/binding.rb | 66 - bindings/swift/DEPENDENCIES.md | 4 + bindings/swift/Makefile | 2 +- bindings/swift/README.md | 11 +- bindings/tests/README.md | 3 - bindings/tests/features/binding.feature | 35 - bindings/zig/CONTRIBUTING.md | 14 +- bindings/zig/DEPENDENCIES.md | 4 + bindings/zig/README.md | 10 +- bindings/zig/build.zig | 4 +- core/Cargo.toml | 201 +- core/DEPENDENCIES.md | 3 + core/DEPENDENCIES.rust.tsv | 237 + core/README.md | 19 +- core/benches/oio/utils.rs | 2 - core/benches/ops/write.rs | 29 + core/benches/vs_s3/Cargo.toml | 6 +- core/edge/file_write_on_full_disk/Cargo.toml | 2 + core/edge/file_write_on_full_disk/README.md | 2 +- .../Cargo.toml | 9 +- .../s3_aws_assume_role_with_web_identity/README.md | 18 + .../src/main.rs} | 19 +- core/edge/s3_read_on_wasm/.gitignore | 3 + .../edge/s3_read_on_wasm}/Cargo.toml | 20 +- core/edge/s3_read_on_wasm/README.md | 42 + core/edge/s3_read_on_wasm/src/lib.rs | 58 + core/edge/s3_read_on_wasm/webdriver.json | 15 + core/fuzz/Cargo.toml | 55 + core/fuzz/fuzz_reader.rs | 25 +- core/fuzz/fuzz_writer.rs | 40 +- core/src/docs/comparisons/vs_object_store.md | 4 +- core/src/docs/features.md | 29 - core/src/docs/internals/accessor.rs | 2 +- core/src/docs/mod.rs | 6 - core/src/docs/rfcs/0000_example.md | 4 +- core/src/docs/rfcs/0041_object_native_api.md | 4 +- core/src/docs/rfcs/0044_error_handle.md | 8 +- core/src/docs/rfcs/0057_auto_region.md | 4 +- core/src/docs/rfcs/0069_object_stream.md | 6 +- core/src/docs/rfcs/0090_limited_reader.md | 4 +- core/src/docs/rfcs/0112_path_normalization.md | 8 +- core/src/docs/rfcs/0191_async_streaming_io.md | 4 +- core/src/docs/rfcs/0203_remove_credential.md | 4 +- core/src/docs/rfcs/0221_create_dir.md | 4 +- core/src/docs/rfcs/0247_retryable_error.md | 6 +- core/src/docs/rfcs/0293_object_id.md | 4 +- core/src/docs/rfcs/0337_dir_entry.md | 4 +- core/src/docs/rfcs/0409_accessor_capabilities.md | 8 +- core/src/docs/rfcs/0413_presign.md | 4 +- core/src/docs/rfcs/0423_command_line_interface.md | 4 +- core/src/docs/rfcs/0429_init_from_iter.md | 4 +- core/src/docs/rfcs/0438_multipart.md | 4 +- core/src/docs/rfcs/0443_gateway.md | 4 +- core/src/docs/rfcs/0501_new_builder.md | 4 +- core/src/docs/rfcs/0554_write_refactor.md | 4 +- core/src/docs/rfcs/0561_list_metadata_reuse.md | 4 +- core/src/docs/rfcs/0599_blocking_api.md | 6 +- core/src/docs/rfcs/0623_redis_service.md | 4 +- core/src/docs/rfcs/0627_split_capabilities.md | 4 +- core/src/docs/rfcs/0661_path_in_accessor.md | 4 +- core/src/docs/rfcs/0793_generic_kv_services.md | 4 +- core/src/docs/rfcs/0926_object_reader.md | 4 +- core/src/docs/rfcs/0977_refactor_error.md | 4 +- core/src/docs/rfcs/1085_object_handler.md | 4 +- core/src/docs/rfcs/1391_object_metadataer.md | 4 +- core/src/docs/rfcs/1398_query_based_metadata.md | 4 +- core/src/docs/rfcs/1420_object_writer.md | 4 +- core/src/docs/rfcs/1477_remove_object_concept.md | 4 +- core/src/docs/rfcs/1735_operation_extension.md | 10 +- core/src/docs/rfcs/2083_writer_sink_api.md | 4 +- core/src/docs/rfcs/2133_append_api.md | 4 +- .../src/docs/rfcs/2299_chain_based_operator_api.md | 4 +- core/src/docs/rfcs/2602_object_versioning.md | 4 +- core/src/docs/rfcs/2758_merge_append_into_write.md | 4 +- core/src/docs/rfcs/2774_lister_api.md | 4 +- core/src/docs/rfcs/2779_list_with_metakey.md | 4 +- core/src/docs/rfcs/2852_native_capability.md | 4 +- .../docs/rfcs/2884_merge_range_read_into_read.md | 4 +- core/src/docs/rfcs/3017_remove_write_copy_from.md | 4 +- core/src/docs/rfcs/3197_config.md | 6 +- core/src/docs/rfcs/3232_align_list_api.md | 4 +- core/src/docs/rfcs/3243_list_prefix.md | 8 +- core/src/docs/rfcs/3356_lazy_reader.md | 4 +- core/src/docs/rfcs/3526_list_recursive.md | 4 +- core/src/docs/rfcs/3574_concurrent_stat_in_list.md | 6 +- core/src/docs/rfcs/3734_buffered_reader.md | 64 + core/src/docs/rfcs/3898_concurrent_writer.md | 66 + core/src/docs/rfcs/3911_deleter_api.md | 172 + core/src/docs/rfcs/README.md | 62 + core/src/docs/rfcs/mod.rs | 76 +- core/src/docs/upgrade.md | 32 +- core/src/layers/async_backtrace.rs | 3 +- core/src/layers/await_tree.rs | 3 +- core/src/layers/blocking.rs | 3 +- core/src/layers/chaos.rs | 3 +- core/src/layers/complete.rs | 331 +- core/src/layers/concurrent_limit.rs | 5 +- core/src/layers/dtrace.rs | 519 + core/src/layers/error_context.rs | 3 +- core/src/layers/immutable_index.rs | 5 +- core/src/layers/logging.rs | 7 +- core/src/layers/madsim.rs | 5 +- core/src/layers/metrics.rs | 4 +- core/src/layers/minitrace.rs | 5 +- core/src/layers/mod.rs | 7 + core/src/layers/oteltrace.rs | 7 +- core/src/layers/prometheus.rs | 4 +- core/src/layers/prometheus_client.rs | 4 +- core/src/layers/retry.rs | 18 +- core/src/layers/throttle.rs | 41 +- core/src/layers/timeout.rs | 531 +- core/src/layers/tracing.rs | 5 +- core/src/layers/type_eraser.rs | 3 +- core/src/lib.rs | 97 +- core/src/raw/accessor.rs | 239 +- core/src/raw/adapters/kv/backend.rs | 86 +- core/src/raw/adapters/typed_kv/backend.rs | 83 +- core/src/raw/chrono_util.rs | 9 + core/src/raw/enum_utils.rs | 339 + core/src/raw/futures_util.rs | 281 + core/src/raw/http_util/body.rs | 2 +- core/src/raw/http_util/bytes_content_range.rs | 66 - core/src/raw/http_util/bytes_range.rs | 10 + core/src/raw/http_util/client.rs | 65 +- core/src/raw/http_util/header.rs | 174 +- core/src/raw/http_util/mod.rs | 2 + core/src/raw/http_util/multipart.rs | 66 +- core/src/raw/layer.rs | 12 +- core/src/raw/mod.rs | 14 + core/src/raw/oio/buf/chunked_bytes.rs | 7 - core/src/raw/oio/cursor.rs | 5 - core/src/raw/oio/list/api.rs | 9 +- core/src/raw/oio/list/flat_list.rs | 19 +- core/src/raw/oio/list/hierarchy_list.rs | 18 +- core/src/raw/oio/list/mod.rs | 3 + core/src/raw/oio/list/page_list.rs | 10 +- core/src/raw/oio/list/prefix_list.rs | 91 + core/src/raw/oio/read/api.rs | 41 +- core/src/raw/oio/read/buffer_reader.rs | 846 ++ core/src/raw/oio/read/file_read.rs | 9 +- core/src/raw/oio/read/lazy_read.rs | 9 +- core/src/raw/oio/read/mod.rs | 3 + core/src/raw/oio/read/range_read.rs | 109 +- core/src/raw/oio/stream/api.rs | 102 +- core/src/raw/oio/stream/into_stream.rs | 93 +- core/src/raw/oio/stream/into_stream_from_reader.rs | 7 - core/src/raw/oio/write/api.rs | 30 +- .../{append_object_write.rs => append_write.rs} | 48 +- core/src/raw/oio/write/block_write.rs | 440 + core/src/raw/oio/write/compose_write.rs | 122 - core/src/raw/oio/write/exact_buf_write.rs | 17 +- core/src/raw/oio/write/mod.rs | 22 +- core/src/raw/oio/write/multipart_upload_write.rs | 331 - core/src/raw/oio/write/multipart_write.rs | 520 + core/src/raw/oio/write/one_shot_write.rs | 12 +- core/src/raw/oio/write/range_write.rs | 410 +- core/src/raw/ops.rs | 69 + core/src/raw/path.rs | 2 +- core/src/raw/path_cache.rs | 235 + core/src/raw/rps.rs | 24 +- core/src/raw/tests/utils.rs | 2 +- core/src/raw/tokio_util.rs | 2 +- core/src/services/alluxio/backend.rs | 29 +- core/src/services/alluxio/writer.rs | 4 +- core/src/services/atomicserver/backend.rs | 85 +- core/src/services/atomicserver/mod.rs | 1 + core/src/services/azblob/backend.rs | 71 +- core/src/services/azblob/lister.rs | 5 +- core/src/services/azblob/writer.rs | 11 +- core/src/services/azdls/backend.rs | 110 +- core/src/services/azdls/writer.rs | 5 +- core/src/services/azfile/backend.rs | 76 +- core/src/services/azfile/writer.rs | 5 +- core/src/services/b2/backend.rs | 130 +- core/src/services/b2/core.rs | 23 +- core/src/services/b2/error.rs | 1 + core/src/services/b2/lister.rs | 14 +- core/src/services/b2/writer.rs | 14 +- core/src/services/chainsafe/backend.rs | 314 + core/src/services/chainsafe/core.rs | 274 + core/src/services/chainsafe/docs.md | 50 + core/src/services/chainsafe/error.rs | 106 + core/src/services/chainsafe/lister.rs | 77 + core/src/services/{gcs => chainsafe}/mod.rs | 4 +- core/src/services/{webhdfs => chainsafe}/writer.rs | 39 +- core/src/services/cos/backend.rs | 66 +- core/src/services/cos/lister.rs | 2 +- core/src/services/cos/writer.rs | 17 +- core/src/services/dashmap/backend.rs | 11 +- core/src/services/dbfs/backend.rs | 63 +- core/src/services/dbfs/docs.md | 2 +- core/src/services/dbfs/reader.rs | 2 - core/src/services/dbfs/writer.rs | 2 +- core/src/services/dropbox/backend.rs | 249 +- core/src/services/dropbox/builder.rs | 71 +- core/src/services/dropbox/core.rs | 280 +- core/src/services/dropbox/mod.rs | 1 + core/src/services/etcd/backend.rs | 47 +- core/src/services/fs/backend.rs | 201 +- core/src/services/fs/lister.rs | 2 - core/src/services/fs/writer.rs | 2 - core/src/services/ftp/backend.rs | 99 +- core/src/services/ftp/err.rs | 42 +- core/src/services/ftp/lister.rs | 2 - core/src/services/ftp/util.rs | 4 +- core/src/services/ftp/writer.rs | 11 +- core/src/services/gcs/backend.rs | 239 +- core/src/services/gcs/docs.md | 4 +- core/src/services/gcs/lister.rs | 5 +- core/src/services/gcs/mod.rs | 1 + core/src/services/gcs/writer.rs | 3 +- core/src/services/gdrive/backend.rs | 260 +- core/src/services/gdrive/builder.rs | 105 +- core/src/services/gdrive/core.rs | 490 +- core/src/services/gdrive/error.rs | 4 +- core/src/services/gdrive/lister.rs | 28 +- core/src/services/gdrive/writer.rs | 75 +- core/src/services/ghac/backend.rs | 95 +- core/src/services/hdfs/backend.rs | 429 +- core/src/services/hdfs/mod.rs | 2 +- core/src/services/hdfs/writer.rs | 81 +- core/src/services/hdfs_native/backend.rs | 241 + core/src/services/hdfs_native/docs.md | 1 + core/src/services/hdfs_native/error.rs | 53 + .../hdfs_native/lister.rs} | 25 +- core/src/services/{gcs => hdfs_native}/mod.rs | 6 +- .../hdfs_native/reader.rs} | 50 +- .../hdfs_native/writer.rs} | 42 +- core/src/services/http/backend.rs | 45 +- core/src/services/huggingface/backend.rs | 349 + core/src/services/huggingface/core.rs | 408 + core/src/services/huggingface/docs.md | 63 + core/src/services/{gdrive => huggingface}/error.rs | 67 +- core/src/services/huggingface/lister.rs | 92 + core/src/services/{gcs => huggingface}/mod.rs | 5 +- core/src/services/icloud/backend.rs | 332 + core/src/services/icloud/core.rs | 871 ++ core/src/services/icloud/docs.md | 65 + core/src/services/{rocksdb => icloud}/mod.rs | 4 +- core/src/services/ipfs/backend.rs | 27 +- core/src/services/ipmfs/backend.rs | 41 +- core/src/services/koofr/backend.rs | 412 + core/src/services/koofr/core.rs | 452 + core/src/services/koofr/docs.md | 53 + core/src/services/koofr/error.rs | 79 + core/src/services/koofr/lister.rs | 89 + core/src/services/{gcs => koofr}/mod.rs | 4 +- core/src/services/{webhdfs => koofr}/writer.rs | 36 +- core/src/services/memcached/backend.rs | 39 +- core/src/services/memcached/mod.rs | 2 +- core/src/services/memory/backend.rs | 10 +- core/src/services/mod.rs | 88 +- core/src/services/moka/backend.rs | 99 +- core/src/services/moka/docs.md | 1 - core/src/services/moka/mod.rs | 1 + core/src/services/mongodb/backend.rs | 82 +- core/src/services/mongodb/mod.rs | 1 + core/src/services/obs/backend.rs | 104 +- core/src/services/obs/lister.rs | 2 +- core/src/services/obs/writer.rs | 15 +- core/src/services/onedrive/backend.rs | 91 +- core/src/services/onedrive/builder.rs | 51 +- core/src/services/onedrive/mod.rs | 2 + core/src/services/oss/backend.rs | 74 +- core/src/services/oss/lister.rs | 2 +- core/src/services/oss/writer.rs | 17 +- core/src/services/pcloud/backend.rs | 417 + core/src/services/pcloud/core.rs | 461 + core/src/services/pcloud/docs.md | 53 + core/src/services/pcloud/error.rs | 95 + core/src/services/pcloud/lister.rs | 96 + core/src/services/{gcs => pcloud}/mod.rs | 4 +- core/src/services/{dbfs => pcloud}/writer.rs | 48 +- core/src/services/redis/backend.rs | 45 +- core/src/services/rocksdb/backend.rs | 45 +- core/src/services/rocksdb/mod.rs | 1 + core/src/services/s3/backend.rs | 115 +- core/src/services/s3/core.rs | 80 +- core/src/services/s3/lister.rs | 5 +- core/src/services/s3/writer.rs | 17 +- core/src/services/seafile/backend.rs | 341 + core/src/services/seafile/core.rs | 416 + core/src/services/seafile/docs.md | 56 + core/src/services/{b2 => seafile}/error.rs | 64 +- core/src/services/seafile/lister.rs | 120 + core/src/services/{gcs => seafile}/mod.rs | 4 +- core/src/services/seafile/writer.rs | 93 + core/src/services/sftp/backend.rs | 156 +- core/src/services/sftp/docs.md | 2 +- core/src/services/sftp/error.rs | 58 +- core/src/services/sftp/lister.rs | 6 +- core/src/services/supabase/backend.rs | 40 +- core/src/services/swift/backend.rs | 76 +- core/src/services/swift/core.rs | 3 +- core/src/services/swift/docs.md | 2 +- core/src/services/upyun/backend.rs | 374 + core/src/services/upyun/core.rs | 516 + core/src/services/upyun/docs.md | 53 + core/src/services/{b2 => upyun}/error.rs | 70 +- core/src/services/upyun/lister.rs | 102 + core/src/services/{gcs => upyun}/mod.rs | 4 +- core/src/services/{gcs => upyun}/writer.rs | 117 +- core/src/services/vercel_artifacts/backend.rs | 34 +- core/src/services/webdav/backend.rs | 206 +- core/src/services/webdav/mod.rs | 1 + core/src/services/webhdfs/backend.rs | 294 +- core/src/services/webhdfs/docs.md | 25 + core/src/services/webhdfs/writer.rs | 171 +- core/src/services/yandex_disk/backend.rs | 325 + core/src/services/yandex_disk/core.rs | 317 + core/src/services/yandex_disk/docs.md | 47 + core/src/services/{b2 => yandex_disk}/error.rs | 76 +- core/src/services/yandex_disk/lister.rs | 114 + core/src/services/{gcs => yandex_disk}/mod.rs | 4 +- .../services/{webhdfs => yandex_disk}/writer.rs | 45 +- core/src/types/capability.rs | 8 +- core/src/types/list.rs | 140 +- core/src/types/operator/blocking_operator.rs | 76 +- core/src/types/operator/builder.rs | 20 +- core/src/types/operator/operator.rs | 341 +- core/src/types/operator/operator_functions.rs | 6 + core/src/types/operator/operator_futures.rs | 109 +- core/src/types/scheme.rs | 50 + core/tests/behavior/append.rs | 223 - core/tests/behavior/{copy.rs => async_copy.rs} | 33 +- .../behavior/{list_only.rs => async_create_dir.rs} | 41 +- core/tests/behavior/async_delete.rs | 163 + core/tests/behavior/{fuzz.rs => async_fuzz.rs} | 12 +- core/tests/behavior/{list.rs => async_list.rs} | 273 +- .../behavior/{presign.rs => async_presign.rs} | 13 +- core/tests/behavior/async_read.rs | 794 ++ core/tests/behavior/{rename.rs => async_rename.rs} | 26 +- core/tests/behavior/async_stat.rs | 501 + core/tests/behavior/async_write.rs | 608 ++ core/tests/behavior/blocking_append.rs | 220 - core/tests/behavior/blocking_copy.rs | 26 +- core/tests/behavior/blocking_create_dir.rs | 68 + core/tests/behavior/blocking_delete.rs | 64 + core/tests/behavior/blocking_list.rs | 143 +- core/tests/behavior/blocking_read.rs | 212 + core/tests/behavior/blocking_read_only.rs | 112 - core/tests/behavior/blocking_rename.rs | 26 +- core/tests/behavior/blocking_stat.rs | 107 + core/tests/behavior/blocking_write.rs | 399 +- core/tests/behavior/main.rs | 94 +- core/tests/behavior/read_only.rs | 331 - core/tests/behavior/utils.rs | 300 +- core/tests/behavior/write.rs | 1417 --- deny.toml | 49 + doap.rdf | 48 + examples/cpp/CMakeLists.txt | 2 +- examples/cpp/basic.cpp | 1 + examples/rust/00-setup/README.md | 10 +- examples/rust/01-init-operator/README.md | 4 +- examples/rust/02-async-io/README.md | 10 +- fixtures/azblob/docker-compose-azurite.yml | 2 +- .../docker-compose-vsftpd.yml} | 27 +- fixtures/s3/docker-compose-minio.yml | 12 +- fixtures/seafile/docker-compose-seafile.yml | 62 + fixtures/webhdfs/docker-compose-webhdfs.yml | 1 + integrations/dav-server/DEPENDENCIES.md | 3 + integrations/dav-server/DEPENDENCIES.rust.tsv | 251 + integrations/object_store/Cargo.toml | 2 +- integrations/object_store/DEPENDENCIES.md | 3 + integrations/object_store/DEPENDENCIES.rust.tsv | 249 + integrations/object_store/src/lib.rs | 102 +- licenserc.toml | 9 +- scripts/README.md | 4 +- scripts/dependencies.py | 89 + scripts/merge_local_staging.py | 86 + scripts/merge_local_staging.sh | 40 - scripts/release.sh | 9 +- website/DEPENDENCIES.md | 3 + website/DEPENDENCIES.node.csv | 13 + website/README.md | 16 +- .../index.md | 8 +- .../index.md | 6 +- .../blog/2023-08-15-how-opendal-read-data/index.md | 8 +- website/blog/2023-09-14-owo-1/index.md | 34 +- .../2024-01-22-apache-opendal-graduated/index.md | 153 + website/community/committers/_category_.yml | 2 +- .../committers/{committer.md => onboarding.md} | 27 +- .../committers/reference/generate_release_note.md | 2 +- .../community/committers/reference/setup_gpg.md | 4 +- website/community/committers/release.md | 281 +- website/community/committers/verify.md | 16 +- website/community/{index.md => index.mdx} | 50 +- website/community/maturity.md | 87 + website/community/news.md | 37 + .../pmc_members/_category_.yml} | 9 +- .../community/pmc_members/nominate-committer.md | 150 + .../community/pmc_members/nominate-pmc-member.md | 125 + website/community/pmc_members/onboarding.md | 30 + .../{committers => pmc_members}/podling-report.md | 4 +- .../community/pmc_members/roster-add-committer.png | Bin 0 -> 91133 bytes .../pmc_members/roster-add-pmc-member.png | Bin 0 -> 102648 bytes website/community/security.md | 18 + website/docs/overview.md | 12 +- website/docs/quickstart.md | 4 +- website/docs/services/huggingface.mdx | 76 + website/docs/services/s3.mdx | 4 +- website/docusaurus.config.js | 60 +- website/package.json | 2 +- website/pnpm-lock.yaml | 8567 +++++++++++++++ website/src/css/custom.css | 4 + website/src/pages/download.md | 29 +- website/static/img/asf_logo_wide.svg | 279 + website/static/img/incubator.svg | 155 - website/static/img/logo.svg | 2 +- website/static/img/logo_dark.svg | 2 +- website/yarn.lock | 10925 ------------------- 629 files changed, 58806 insertions(+), 27545 deletions(-)
