You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by gi...@apache.org on 2024/06/18 10:56:45 UTC
(opendal) branch gh-pages updated: deploy: 75d796c55d297f46550781638616ce8d8ffd2e46
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/gh-pages by this push:
new d12ef13675 deploy: 75d796c55d297f46550781638616ce8d8ffd2e46
d12ef13675 is described below
commit d12ef136755fcd13ae0e416a3fe69f0af7a23429
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Tue Jun 18 10:56:39 2024 +0000
deploy: 75d796c55d297f46550781638616ce8d8ffd2e46
---
404.html | 2 +-
assets/js/{main.649bd06a.js => main.aa3b0702.js} | 4 +-
...js.LICENSE.txt => main.aa3b0702.js.LICENSE.txt} | 0
blog/apache-opendal-graduated/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
blog/archive/index.html | 2 +-
blog/how-opendal-read-data/index.html | 2 +-
blog/index.html | 2 +-
blog/opendal-access-data-freely/index.html | 2 +-
blog/opendal-entered-apache-incubator/index.html | 2 +-
blog/owo-1/index.html | 2 +-
blog/tags/announcement/index.html | 2 +-
blog/tags/index.html | 2 +-
blog/tags/internal/index.html | 2 +-
blog/tags/owo/index.html | 2 +-
community/category/committers/index.html | 2 +-
community/category/events/index.html | 2 +-
community/category/pmc-members/index.html | 2 +-
community/category/reference/index.html | 2 +-
community/category/release/index.html | 2 +-
community/committers/onboarding/index.html | 2 +-
.../request_for_adding_secrets/index.html | 2 +-
community/events/gsoc-proposal-guide/index.html | 2 +-
community/events/ospp-proposal-guide/index.html | 2 +-
community/index.html | 2 +-
community/maturity/index.html | 2 +-
community/pmc_members/board-reporting/index.html | 2 +-
.../pmc_members/nominate-committer/index.html | 2 +-
.../pmc_members/nominate-pmc-member/index.html | 2 +-
community/pmc_members/onboarding/index.html | 2 +-
community/release/index.html | 2 +-
.../reference/generate_release_note/index.html | 2 +-
community/release/reference/setup_gpg/index.html | 2 +-
community/release/verify/index.html | 2 +-
community/security/index.html | 2 +-
docs/binding-java/index.html | 2 +-
docs/binding-nodejs/index.html | 2 +-
docs/binding-python/index.html | 2 +-
.../dav_server_opendalfs/all.html | 2 +-
.../dav_server_opendalfs/index.html | 2 +-
.../dav_server_opendalfs/struct.OpendalFs.html | 2 +-
docs/dav-server/index.html | 2 +-
docs/haskell/OpenDAL.html | 2 +-
docs/haskell/doc-index.html | 2 +-
docs/haskell/index.html | 2 +-
docs/haskell/opendal.haddock | Bin 7312 -> 7313 bytes
docs/java/allclasses-index.html | 2 +-
docs/java/allpackages-index.html | 2 +-
docs/java/constant-values.html | 2 +-
docs/java/help-doc.html | 2 +-
docs/java/index-all.html | 2 +-
docs/java/index.html | 4 +-
docs/java/org/apache/opendal/AsyncExecutor.html | 2 +-
docs/java/org/apache/opendal/AsyncOperator.html | 2 +-
docs/java/org/apache/opendal/Capability.html | 2 +-
docs/java/org/apache/opendal/Entry.html | 2 +-
docs/java/org/apache/opendal/Environment.html | 2 +-
docs/java/org/apache/opendal/Layer.html | 2 +-
.../org/apache/opendal/Metadata.EntryMode.html | 2 +-
docs/java/org/apache/opendal/Metadata.html | 2 +-
docs/java/org/apache/opendal/NativeLibrary.html | 2 +-
docs/java/org/apache/opendal/NativeObject.html | 2 +-
docs/java/org/apache/opendal/OpenDAL.html | 2 +-
.../org/apache/opendal/OpenDALException.Code.html | 2 +-
docs/java/org/apache/opendal/OpenDALException.html | 2 +-
docs/java/org/apache/opendal/Operator.html | 2 +-
docs/java/org/apache/opendal/OperatorInfo.html | 2 +-
.../org/apache/opendal/OperatorInputStream.html | 2 +-
.../org/apache/opendal/OperatorOutputStream.html | 2 +-
docs/java/org/apache/opendal/PresignedRequest.html | 2 +-
.../apache/opendal/class-use/AsyncExecutor.html | 2 +-
.../apache/opendal/class-use/AsyncOperator.html | 2 +-
.../org/apache/opendal/class-use/Capability.html | 2 +-
docs/java/org/apache/opendal/class-use/Entry.html | 2 +-
.../org/apache/opendal/class-use/Environment.html | 2 +-
docs/java/org/apache/opendal/class-use/Layer.html | 2 +-
.../opendal/class-use/Metadata.EntryMode.html | 2 +-
.../org/apache/opendal/class-use/Metadata.html | 2 +-
.../apache/opendal/class-use/NativeLibrary.html | 2 +-
.../org/apache/opendal/class-use/NativeObject.html | 2 +-
.../java/org/apache/opendal/class-use/OpenDAL.html | 2 +-
.../opendal/class-use/OpenDALException.Code.html | 2 +-
.../apache/opendal/class-use/OpenDALException.html | 2 +-
.../org/apache/opendal/class-use/Operator.html | 2 +-
.../org/apache/opendal/class-use/OperatorInfo.html | 2 +-
.../opendal/class-use/OperatorInputStream.html | 2 +-
.../opendal/class-use/OperatorOutputStream.html | 2 +-
.../apache/opendal/class-use/PresignedRequest.html | 2 +-
docs/java/org/apache/opendal/layer/RetryLayer.html | 2 +-
.../apache/opendal/layer/class-use/RetryLayer.html | 2 +-
.../org/apache/opendal/layer/package-summary.html | 2 +-
.../org/apache/opendal/layer/package-tree.html | 2 +-
.../java/org/apache/opendal/layer/package-use.html | 2 +-
docs/java/org/apache/opendal/package-summary.html | 2 +-
docs/java/org/apache/opendal/package-tree.html | 2 +-
docs/java/org/apache/opendal/package-use.html | 2 +-
docs/java/overview-summary.html | 2 +-
docs/java/overview-tree.html | 2 +-
docs/java/serialized-form.html | 2 +-
docs/lua/classes/opendal.metadata.html | 2 +-
docs/lua/classes/opendal.operator.html | 2 +-
docs/lua/index.html | 2 +-
docs/nodejs/classes/BlockingLister.html | 6 +-
docs/nodejs/classes/BlockingReader.html | 6 +-
docs/nodejs/classes/BlockingWriter.html | 10 +-
docs/nodejs/classes/Capability.html | 76 +-
docs/nodejs/classes/Entry.html | 6 +-
docs/nodejs/classes/ExternalObject.html | 4 +-
docs/nodejs/classes/Layer.html | 6 +-
docs/nodejs/classes/Lister.html | 6 +-
docs/nodejs/classes/Metadata.html | 20 +-
docs/nodejs/classes/Operator.html | 66 +-
docs/nodejs/classes/Reader.html | 8 +-
docs/nodejs/classes/RetryLayer.html | 16 +-
docs/nodejs/classes/Writer.html | 10 +-
docs/nodejs/index.html | 4 +-
docs/nodejs/interfaces/ListOptions.html | 4 +-
docs/nodejs/interfaces/PresignedRequest.html | 10 +-
docs/nodejs/modules.html | 4 +-
.../object_store_opendal/all.html | 2 +-
.../object_store_opendal/index.html | 2 +-
.../object_store_opendal/struct.OpendalStore.html | 2 +-
docs/object-store/index.html | 2 +-
docs/overview/index.html | 2 +-
docs/python/opendal.html | 426 +++++------
docs/python/search.js | 2 +-
docs/quickstart/index.html | 2 +-
docs/rust-core/index.html | 2 +-
docs/rust/opendal/all.html | 2 +-
docs/rust/opendal/docs/changelog/index.html | 798 +++++++++++----------
docs/rust/opendal/docs/comparisons/index.html | 2 +-
.../docs/comparisons/vs_object_store/index.html | 2 +-
docs/rust/opendal/docs/concepts/index.html | 2 +-
docs/rust/opendal/docs/index.html | 2 +-
.../opendal/docs/internals/accessor/index.html | 2 +-
docs/rust/opendal/docs/internals/index.html | 2 +-
docs/rust/opendal/docs/internals/layer/index.html | 2 +-
docs/rust/opendal/docs/rfcs/index.html | 2 +-
.../opendal/docs/rfcs/rfc_0000_example/index.html | 2 +-
.../rfcs/rfc_0041_object_native_api/index.html | 2 +-
.../docs/rfcs/rfc_0044_error_handle/index.html | 2 +-
.../docs/rfcs/rfc_0057_auto_region/index.html | 2 +-
.../docs/rfcs/rfc_0069_object_stream/index.html | 2 +-
.../docs/rfcs/rfc_0090_limited_reader/index.html | 2 +-
.../rfcs/rfc_0112_path_normalization/index.html | 2 +-
.../rfcs/rfc_0191_async_streaming_io/index.html | 2 +-
.../rfcs/rfc_0203_remove_credential/index.html | 2 +-
.../docs/rfcs/rfc_0221_create_dir/index.html | 2 +-
.../docs/rfcs/rfc_0247_retryable_error/index.html | 2 +-
.../docs/rfcs/rfc_0293_object_id/index.html | 2 +-
.../docs/rfcs/rfc_0337_dir_entry/index.html | 2 +-
.../rfcs/rfc_0409_accessor_capabilities/index.html | 2 +-
.../opendal/docs/rfcs/rfc_0413_presign/index.html | 2 +-
.../rfc_0423_command_line_interface/index.html | 2 +-
.../docs/rfcs/rfc_0429_init_from_iter/index.html | 2 +-
.../docs/rfcs/rfc_0438_multipart/index.html | 2 +-
.../opendal/docs/rfcs/rfc_0443_gateway/index.html | 2 +-
.../docs/rfcs/rfc_0501_new_builder/index.html | 2 +-
.../docs/rfcs/rfc_0554_write_refactor/index.html | 2 +-
.../rfcs/rfc_0561_list_metadata_reuse/index.html | 2 +-
.../docs/rfcs/rfc_0599_blocking_api/index.html | 2 +-
.../docs/rfcs/rfc_0623_redis_service/index.html | 2 +-
.../rfcs/rfc_0627_split_capabilities/index.html | 2 +-
.../docs/rfcs/rfc_0661_path_in_accessor/index.html | 2 +-
.../rfcs/rfc_0793_generic_kv_services/index.html | 2 +-
.../docs/rfcs/rfc_0926_object_reader/index.html | 2 +-
.../docs/rfcs/rfc_0977_refactor_error/index.html | 2 +-
.../docs/rfcs/rfc_1085_object_handler/index.html | 2 +-
.../rfcs/rfc_1391_object_metadataer/index.html | 2 +-
.../rfcs/rfc_1398_query_based_metadata/index.html | 2 +-
.../docs/rfcs/rfc_1420_object_writer/index.html | 2 +-
.../rfcs/rfc_1477_remove_object_concept/index.html | 2 +-
.../rfcs/rfc_1735_operation_extension/index.html | 2 +-
.../docs/rfcs/rfc_2083_writer_sink_api/index.html | 2 +-
.../docs/rfcs/rfc_2133_append_api/index.html | 2 +-
.../rfc_2299_chain_based_operator_api/index.html | 2 +-
.../rfcs/rfc_2602_object_versioning/index.html | 2 +-
.../rfc_2758_merge_append_into_write/index.html | 2 +-
.../docs/rfcs/rfc_2774_lister_api/index.html | 2 +-
.../rfcs/rfc_2779_list_with_metakey/index.html | 2 +-
.../rfcs/rfc_2852_native_capability/index.html | 2 +-
.../rfc_3017_remove_write_copy_from/index.html | 2 +-
.../opendal/docs/rfcs/rfc_3197_config/index.html | 2 +-
.../docs/rfcs/rfc_3232_align_list_api/index.html | 2 +-
.../docs/rfcs/rfc_3243_list_prefix/index.html | 2 +-
.../docs/rfcs/rfc_3356_lazy_reader/index.html | 2 +-
.../docs/rfcs/rfc_3526_list_recursive/index.html | 2 +-
.../rfc_3574_concurrent_stat_in_list/index.html | 2 +-
.../docs/rfcs/rfc_3734_buffered_reader/index.html | 2 +-
.../rfcs/rfc_3898_concurrent_writer/index.html | 2 +-
.../docs/rfcs/rfc_3911_deleter_api/index.html | 2 +-
.../docs/rfcs/rfc_4382_range_based_read/index.html | 2 +-
.../opendal/docs/rfcs/rfc_4638_executor/index.html | 2 +-
docs/rust/opendal/docs/upgrade/index.html | 2 +-
docs/rust/opendal/enum.EntryMode.html | 4 +-
docs/rust/opendal/enum.ErrorKind.html | 4 +-
docs/rust/opendal/enum.Metakey.html | 6 +-
docs/rust/opendal/enum.Scheme.html | 4 +-
docs/rust/opendal/executors/index.html | 2 +-
.../opendal/executors/struct.TokioExecutor.html | 2 +-
docs/rust/opendal/index.html | 2 +-
docs/rust/opendal/layers/index.html | 2 +-
.../opendal/layers/struct.AsyncBacktraceLayer.html | 2 +-
.../rust/opendal/layers/struct.AwaitTreeLayer.html | 2 +-
docs/rust/opendal/layers/struct.BlockingLayer.html | 2 +-
docs/rust/opendal/layers/struct.ChaosLayer.html | 2 +-
.../layers/struct.ConcurrentLimitLayer.html | 2 +-
docs/rust/opendal/layers/struct.DtraceLayer.html | 2 +-
.../opendal/layers/struct.ImmutableIndexLayer.html | 2 +-
docs/rust/opendal/layers/struct.LoggingLayer.html | 2 +-
docs/rust/opendal/layers/struct.MadsimLayer.html | 2 +-
docs/rust/opendal/layers/struct.MadsimServer.html | 2 +-
docs/rust/opendal/layers/struct.MetricsLayer.html | 2 +-
.../rust/opendal/layers/struct.MinitraceLayer.html | 2 +-
.../rust/opendal/layers/struct.OtelTraceLayer.html | 2 +-
.../layers/struct.PrometheusClientLayer.html | 2 +-
.../opendal/layers/struct.PrometheusLayer.html | 2 +-
docs/rust/opendal/layers/struct.RetryLayer.html | 2 +-
docs/rust/opendal/layers/struct.ThrottleLayer.html | 2 +-
docs/rust/opendal/layers/struct.TimeoutLayer.html | 2 +-
docs/rust/opendal/layers/struct.TracingLayer.html | 2 +-
.../opendal/layers/trait.RetryInterceptor.html | 2 +-
docs/rust/opendal/operator_functions/index.html | 2 +-
.../operator_functions/struct.FunctionDelete.html | 2 +-
.../operator_functions/struct.FunctionList.html | 2 +-
.../operator_functions/struct.FunctionLister.html | 2 +-
.../operator_functions/struct.FunctionRead.html | 2 +-
.../operator_functions/struct.FunctionReader.html | 2 +-
.../operator_functions/struct.FunctionStat.html | 2 +-
.../operator_functions/struct.FunctionWrite.html | 2 +-
.../operator_functions/struct.FunctionWriter.html | 2 +-
docs/rust/opendal/operator_futures/index.html | 2 +-
.../operator_futures/struct.OperatorFuture.html | 2 +-
.../operator_futures/type.FutureDelete.html | 2 +-
.../opendal/operator_futures/type.FutureList.html | 2 +-
.../operator_futures/type.FutureLister.html | 2 +-
.../operator_futures/type.FuturePresignRead.html | 2 +-
.../operator_futures/type.FuturePresignStat.html | 2 +-
.../operator_futures/type.FuturePresignWrite.html | 2 +-
.../opendal/operator_futures/type.FutureRead.html | 2 +-
.../operator_futures/type.FutureReader.html | 2 +-
.../opendal/operator_futures/type.FutureStat.html | 2 +-
.../opendal/operator_futures/type.FutureWrite.html | 2 +-
.../operator_futures/type.FutureWriter.html | 2 +-
docs/rust/opendal/raw/adapters/index.html | 2 +-
docs/rust/opendal/raw/adapters/kv/index.html | 2 +-
.../opendal/raw/adapters/kv/struct.Backend.html | 2 +-
.../opendal/raw/adapters/kv/struct.Metadata.html | 2 +-
.../opendal/raw/adapters/kv/trait.Adapter.html | 2 +-
docs/rust/opendal/raw/adapters/typed_kv/index.html | 2 +-
.../raw/adapters/typed_kv/struct.Backend.html | 2 +-
.../raw/adapters/typed_kv/struct.Capability.html | 2 +-
.../opendal/raw/adapters/typed_kv/struct.Info.html | 2 +-
.../raw/adapters/typed_kv/struct.Value.html | 2 +-
.../raw/adapters/typed_kv/trait.Adapter.html | 2 +-
docs/rust/opendal/raw/constant.VERSION.html | 2 +-
docs/rust/opendal/raw/enum.BatchOperation.html | 2 +-
docs/rust/opendal/raw/enum.BatchedReply.html | 2 +-
docs/rust/opendal/raw/enum.FourWays.html | 10 +-
docs/rust/opendal/raw/enum.Operation.html | 4 +-
docs/rust/opendal/raw/enum.PresignOperation.html | 4 +-
docs/rust/opendal/raw/enum.ThreeWays.html | 4 +-
docs/rust/opendal/raw/enum.TwoWays.html | 4 +-
docs/rust/opendal/raw/fn.build_abs_path.html | 2 +-
docs/rust/opendal/raw/fn.build_header_value.html | 2 +-
docs/rust/opendal/raw/fn.build_rel_path.html | 2 +-
.../rust/opendal/raw/fn.build_rooted_abs_path.html | 2 +-
.../raw/fn.format_authorization_by_basic.html | 2 +-
.../raw/fn.format_authorization_by_bearer.html | 2 +-
docs/rust/opendal/raw/fn.format_content_md5.html | 2 +-
docs/rust/opendal/raw/fn.get_basename.html | 2 +-
docs/rust/opendal/raw/fn.get_parent.html | 2 +-
.../opendal/raw/fn.new_json_deserialize_error.html | 2 +-
.../opendal/raw/fn.new_json_serialize_error.html | 2 +-
.../opendal/raw/fn.new_request_build_error.html | 2 +-
.../raw/fn.new_request_credential_error.html | 2 +-
.../opendal/raw/fn.new_request_sign_error.html | 2 +-
docs/rust/opendal/raw/fn.new_std_io_error.html | 2 +-
docs/rust/opendal/raw/fn.new_task_join_error.html | 2 +-
.../opendal/raw/fn.new_xml_deserialize_error.html | 2 +-
docs/rust/opendal/raw/fn.normalize_path.html | 2 +-
docs/rust/opendal/raw/fn.normalize_root.html | 2 +-
.../opendal/raw/fn.parse_content_disposition.html | 2 +-
.../opendal/raw/fn.parse_content_encoding.html | 2 +-
docs/rust/opendal/raw/fn.parse_content_length.html | 2 +-
docs/rust/opendal/raw/fn.parse_content_md5.html | 2 +-
docs/rust/opendal/raw/fn.parse_content_range.html | 2 +-
docs/rust/opendal/raw/fn.parse_content_type.html | 2 +-
.../raw/fn.parse_datetime_from_from_timestamp.html | 2 +-
....parse_datetime_from_from_timestamp_millis.html | 2 +-
.../raw/fn.parse_datetime_from_rfc2822.html | 2 +-
.../raw/fn.parse_datetime_from_rfc3339.html | 2 +-
docs/rust/opendal/raw/fn.parse_etag.html | 2 +-
docs/rust/opendal/raw/fn.parse_header_to_str.html | 2 +-
docs/rust/opendal/raw/fn.parse_into_metadata.html | 2 +-
docs/rust/opendal/raw/fn.parse_last_modified.html | 2 +-
docs/rust/opendal/raw/fn.parse_location.html | 2 +-
docs/rust/opendal/raw/fn.percent_decode_path.html | 2 +-
docs/rust/opendal/raw/fn.percent_encode_path.html | 2 +-
docs/rust/opendal/raw/fn.validate_path.html | 2 +-
.../raw/fn.with_error_response_context.html | 2 +-
docs/rust/opendal/raw/index.html | 2 +-
docs/rust/opendal/raw/oio/enum.ListOperation.html | 2 +-
docs/rust/opendal/raw/oio/enum.ReadOperation.html | 2 +-
docs/rust/opendal/raw/oio/enum.WriteOperation.html | 2 +-
docs/rust/opendal/raw/oio/index.html | 2 +-
docs/rust/opendal/raw/oio/struct.AppendWriter.html | 2 +-
docs/rust/opendal/raw/oio/struct.BlockWriter.html | 2 +-
.../rust/opendal/raw/oio/struct.ChunkedWriter.html | 2 +-
docs/rust/opendal/raw/oio/struct.Entry.html | 2 +-
docs/rust/opendal/raw/oio/struct.FlatLister.html | 8 +-
docs/rust/opendal/raw/oio/struct.FlexBuf.html | 2 +-
.../opendal/raw/oio/struct.HierarchyLister.html | 4 +-
.../rust/opendal/raw/oio/struct.MultipartPart.html | 2 +-
.../opendal/raw/oio/struct.MultipartWriter.html | 2 +-
.../rust/opendal/raw/oio/struct.OneShotWriter.html | 2 +-
docs/rust/opendal/raw/oio/struct.PageContext.html | 2 +-
docs/rust/opendal/raw/oio/struct.PageLister.html | 2 +-
docs/rust/opendal/raw/oio/struct.PooledBuf.html | 2 +-
docs/rust/opendal/raw/oio/struct.PrefixLister.html | 2 +-
docs/rust/opendal/raw/oio/struct.QueueBuf.html | 2 +-
docs/rust/opendal/raw/oio/struct.RangeWriter.html | 2 +-
docs/rust/opendal/raw/oio/trait.AppendWrite.html | 2 +-
docs/rust/opendal/raw/oio/trait.BlockWrite.html | 2 +-
docs/rust/opendal/raw/oio/trait.BlockingList.html | 4 +-
docs/rust/opendal/raw/oio/trait.BlockingRead.html | 4 +-
docs/rust/opendal/raw/oio/trait.BlockingWrite.html | 2 +-
docs/rust/opendal/raw/oio/trait.List.html | 4 +-
.../rust/opendal/raw/oio/trait.MultipartWrite.html | 2 +-
docs/rust/opendal/raw/oio/trait.OneShotWrite.html | 2 +-
docs/rust/opendal/raw/oio/trait.PageList.html | 2 +-
docs/rust/opendal/raw/oio/trait.RangeWrite.html | 2 +-
docs/rust/opendal/raw/oio/trait.Read.html | 2 +-
docs/rust/opendal/raw/oio/trait.ReadDyn.html | 2 +-
docs/rust/opendal/raw/oio/trait.Write.html | 4 +-
docs/rust/opendal/raw/oio/type.BlockingLister.html | 2 +-
docs/rust/opendal/raw/oio/type.BlockingReader.html | 2 +-
docs/rust/opendal/raw/oio/type.BlockingWriter.html | 2 +-
docs/rust/opendal/raw/oio/type.Lister.html | 2 +-
docs/rust/opendal/raw/oio/type.Reader.html | 2 +-
docs/rust/opendal/raw/oio/type.Writer.html | 2 +-
docs/rust/opendal/raw/struct.AccessorInfo.html | 2 +-
.../opendal/raw/struct.AtomicContentLength.html | 2 +-
.../rust/opendal/raw/struct.BytesContentRange.html | 2 +-
docs/rust/opendal/raw/struct.BytesRange.html | 2 +-
.../rust/opendal/raw/struct.ConcurrentFutures.html | 2 +-
docs/rust/opendal/raw/struct.ConcurrentTasks.html | 2 +-
.../opendal/raw/struct.ConfigDeserializer.html | 2 +-
docs/rust/opendal/raw/struct.FormDataPart.html | 2 +-
docs/rust/opendal/raw/struct.HttpBody.html | 6 +-
docs/rust/opendal/raw/struct.HttpClient.html | 2 +-
docs/rust/opendal/raw/struct.MixedPart.html | 2 +-
docs/rust/opendal/raw/struct.Multipart.html | 2 +-
docs/rust/opendal/raw/struct.OpBatch.html | 2 +-
docs/rust/opendal/raw/struct.OpCopy.html | 2 +-
docs/rust/opendal/raw/struct.OpCreateDir.html | 2 +-
docs/rust/opendal/raw/struct.OpDelete.html | 2 +-
docs/rust/opendal/raw/struct.OpList.html | 2 +-
docs/rust/opendal/raw/struct.OpPresign.html | 2 +-
docs/rust/opendal/raw/struct.OpRead.html | 2 +-
docs/rust/opendal/raw/struct.OpReader.html | 2 +-
docs/rust/opendal/raw/struct.OpRename.html | 2 +-
docs/rust/opendal/raw/struct.OpStat.html | 2 +-
docs/rust/opendal/raw/struct.OpWrite.html | 2 +-
docs/rust/opendal/raw/struct.PathCacher.html | 2 +-
docs/rust/opendal/raw/struct.PresignedRequest.html | 2 +-
docs/rust/opendal/raw/struct.RpBatch.html | 2 +-
docs/rust/opendal/raw/struct.RpCopy.html | 2 +-
docs/rust/opendal/raw/struct.RpCreateDir.html | 2 +-
docs/rust/opendal/raw/struct.RpDelete.html | 2 +-
docs/rust/opendal/raw/struct.RpList.html | 2 +-
docs/rust/opendal/raw/struct.RpPresign.html | 2 +-
docs/rust/opendal/raw/struct.RpRead.html | 2 +-
docs/rust/opendal/raw/struct.RpRename.html | 2 +-
docs/rust/opendal/raw/struct.RpStat.html | 2 +-
docs/rust/opendal/raw/struct.RpWrite.html | 2 +-
docs/rust/opendal/raw/tests/enum.ReadAction.html | 2 +-
docs/rust/opendal/raw/tests/enum.WriteAction.html | 2 +-
.../opendal/raw/tests/fn.init_test_service.html | 2 +-
docs/rust/opendal/raw/tests/index.html | 2 +-
.../opendal/raw/tests/static.TEST_RUNTIME.html | 2 +-
.../rust/opendal/raw/tests/struct.ReadChecker.html | 2 +-
.../opendal/raw/tests/struct.WriteChecker.html | 2 +-
docs/rust/opendal/raw/trait.Access.html | 4 +-
docs/rust/opendal/raw/trait.AccessDyn.html | 2 +-
docs/rust/opendal/raw/trait.Layer.html | 2 +-
docs/rust/opendal/raw/trait.LayeredAccess.html | 2 +-
docs/rust/opendal/raw/trait.MaybeSend.html | 2 +-
docs/rust/opendal/raw/trait.Part.html | 2 +-
docs/rust/opendal/raw/trait.PathQuery.html | 2 +-
docs/rust/opendal/raw/type.Accessor.html | 2 +-
docs/rust/opendal/raw/type.BoxedFuture.html | 2 +-
docs/rust/opendal/raw/type.BoxedStaticFuture.html | 2 +-
docs/rust/opendal/services/index.html | 2 +-
docs/rust/opendal/services/struct.AliyunDrive.html | 2 +-
.../opendal/services/struct.AliyunDriveConfig.html | 2 +-
docs/rust/opendal/services/struct.Alluxio.html | 2 +-
.../opendal/services/struct.AlluxioConfig.html | 2 +-
.../rust/opendal/services/struct.Atomicserver.html | 2 +-
.../services/struct.AtomicserverConfig.html | 2 +-
docs/rust/opendal/services/struct.Azblob.html | 2 +-
.../rust/opendal/services/struct.AzblobConfig.html | 2 +-
docs/rust/opendal/services/struct.Azdls.html | 2 +-
docs/rust/opendal/services/struct.Azfile.html | 2 +-
docs/rust/opendal/services/struct.B2.html | 2 +-
docs/rust/opendal/services/struct.B2Config.html | 2 +-
docs/rust/opendal/services/struct.Cacache.html | 2 +-
docs/rust/opendal/services/struct.Chainsafe.html | 2 +-
.../opendal/services/struct.ChainsafeConfig.html | 2 +-
.../rust/opendal/services/struct.CloudflareKv.html | 2 +-
docs/rust/opendal/services/struct.Compfs.html | 2 +-
docs/rust/opendal/services/struct.Cos.html | 2 +-
docs/rust/opendal/services/struct.D1.html | 2 +-
docs/rust/opendal/services/struct.D1Config.html | 2 +-
docs/rust/opendal/services/struct.Dashmap.html | 2 +-
docs/rust/opendal/services/struct.Dbfs.html | 2 +-
docs/rust/opendal/services/struct.Dropbox.html | 2 +-
.../opendal/services/struct.DropboxConfig.html | 2 +-
docs/rust/opendal/services/struct.Etcd.html | 2 +-
docs/rust/opendal/services/struct.EtcdConfig.html | 2 +-
.../opendal/services/struct.FoundationConfig.html | 2 +-
.../rust/opendal/services/struct.Foundationdb.html | 2 +-
docs/rust/opendal/services/struct.Fs.html | 2 +-
docs/rust/opendal/services/struct.Ftp.html | 2 +-
docs/rust/opendal/services/struct.FtpConfig.html | 2 +-
docs/rust/opendal/services/struct.Gcs.html | 2 +-
docs/rust/opendal/services/struct.GcsConfig.html | 2 +-
docs/rust/opendal/services/struct.Gdrive.html | 2 +-
docs/rust/opendal/services/struct.Ghac.html | 2 +-
docs/rust/opendal/services/struct.Github.html | 2 +-
.../rust/opendal/services/struct.GithubConfig.html | 2 +-
docs/rust/opendal/services/struct.Gridfs.html | 2 +-
docs/rust/opendal/services/struct.Hdfs.html | 2 +-
docs/rust/opendal/services/struct.HdfsConfig.html | 2 +-
docs/rust/opendal/services/struct.HdfsNative.html | 2 +-
.../opendal/services/struct.HdfsNativeConfig.html | 2 +-
docs/rust/opendal/services/struct.Http.html | 2 +-
docs/rust/opendal/services/struct.HttpConfig.html | 2 +-
docs/rust/opendal/services/struct.Huggingface.html | 2 +-
.../opendal/services/struct.HuggingfaceConfig.html | 2 +-
docs/rust/opendal/services/struct.Icloud.html | 2 +-
docs/rust/opendal/services/struct.Ipfs.html | 2 +-
docs/rust/opendal/services/struct.Ipmfs.html | 2 +-
docs/rust/opendal/services/struct.Koofr.html | 2 +-
docs/rust/opendal/services/struct.KoofrConfig.html | 2 +-
docs/rust/opendal/services/struct.Libsql.html | 2 +-
.../rust/opendal/services/struct.LibsqlConfig.html | 2 +-
docs/rust/opendal/services/struct.Memcached.html | 2 +-
.../opendal/services/struct.MemcachedConfig.html | 2 +-
docs/rust/opendal/services/struct.Memory.html | 2 +-
.../rust/opendal/services/struct.MemoryConfig.html | 2 +-
docs/rust/opendal/services/struct.MiniMoka.html | 2 +-
docs/rust/opendal/services/struct.Moka.html | 2 +-
docs/rust/opendal/services/struct.MokaConfig.html | 2 +-
docs/rust/opendal/services/struct.Mongodb.html | 2 +-
.../opendal/services/struct.MongodbConfig.html | 2 +-
docs/rust/opendal/services/struct.Mysql.html | 2 +-
docs/rust/opendal/services/struct.MysqlConfig.html | 2 +-
docs/rust/opendal/services/struct.Obs.html | 2 +-
docs/rust/opendal/services/struct.Onedrive.html | 2 +-
.../opendal/services/struct.OnedriveConfig.html | 2 +-
docs/rust/opendal/services/struct.Oss.html | 2 +-
docs/rust/opendal/services/struct.Pcloud.html | 2 +-
.../rust/opendal/services/struct.PcloudConfig.html | 2 +-
docs/rust/opendal/services/struct.Persy.html | 2 +-
docs/rust/opendal/services/struct.Postgresql.html | 2 +-
.../opendal/services/struct.PostgresqlConfig.html | 2 +-
docs/rust/opendal/services/struct.Redb.html | 2 +-
docs/rust/opendal/services/struct.Redis.html | 2 +-
docs/rust/opendal/services/struct.RedisConfig.html | 2 +-
docs/rust/opendal/services/struct.Rocksdb.html | 2 +-
.../opendal/services/struct.RocksdbConfig.html | 2 +-
docs/rust/opendal/services/struct.S3.html | 2 +-
docs/rust/opendal/services/struct.S3Config.html | 2 +-
docs/rust/opendal/services/struct.Seafile.html | 2 +-
.../opendal/services/struct.SeafileConfig.html | 2 +-
docs/rust/opendal/services/struct.Sftp.html | 2 +-
docs/rust/opendal/services/struct.SftpConfig.html | 2 +-
docs/rust/opendal/services/struct.Sled.html | 2 +-
docs/rust/opendal/services/struct.SledConfig.html | 2 +-
docs/rust/opendal/services/struct.Sqlite.html | 2 +-
.../rust/opendal/services/struct.SqliteConfig.html | 2 +-
docs/rust/opendal/services/struct.Supabase.html | 2 +-
docs/rust/opendal/services/struct.Surrealdb.html | 2 +-
.../opendal/services/struct.SurrealdbConfig.html | 2 +-
docs/rust/opendal/services/struct.Swift.html | 2 +-
docs/rust/opendal/services/struct.Tikv.html | 2 +-
docs/rust/opendal/services/struct.TikvConfig.html | 2 +-
docs/rust/opendal/services/struct.Upyun.html | 2 +-
docs/rust/opendal/services/struct.UpyunConfig.html | 2 +-
.../opendal/services/struct.VercelArtifacts.html | 2 +-
docs/rust/opendal/services/struct.VercelBlob.html | 2 +-
.../opendal/services/struct.VercelBlobConfig.html | 2 +-
docs/rust/opendal/services/struct.Webdav.html | 2 +-
.../rust/opendal/services/struct.WebdavConfig.html | 2 +-
docs/rust/opendal/services/struct.Webhdfs.html | 2 +-
docs/rust/opendal/services/struct.YandexDisk.html | 2 +-
.../opendal/services/struct.YandexDiskConfig.html | 2 +-
docs/rust/opendal/struct.BlockingLister.html | 2 +-
docs/rust/opendal/struct.BlockingOperator.html | 2 +-
docs/rust/opendal/struct.BlockingReader.html | 2 +-
docs/rust/opendal/struct.BlockingWriter.html | 2 +-
docs/rust/opendal/struct.Buffer.html | 12 +-
docs/rust/opendal/struct.BufferIterator.html | 2 +-
docs/rust/opendal/struct.BufferSink.html | 2 +-
docs/rust/opendal/struct.Capability.html | 2 +-
docs/rust/opendal/struct.Entry.html | 2 +-
docs/rust/opendal/struct.Error.html | 2 +-
docs/rust/opendal/struct.Executor.html | 2 +-
docs/rust/opendal/struct.FuturesAsyncReader.html | 2 +-
docs/rust/opendal/struct.FuturesAsyncWriter.html | 2 +-
docs/rust/opendal/struct.FuturesBytesSink.html | 2 +-
docs/rust/opendal/struct.FuturesBytesStream.html | 2 +-
docs/rust/opendal/struct.Lister.html | 2 +-
docs/rust/opendal/struct.Metadata.html | 2 +-
docs/rust/opendal/struct.Operator.html | 2 +-
docs/rust/opendal/struct.OperatorBuilder.html | 2 +-
docs/rust/opendal/struct.OperatorInfo.html | 2 +-
docs/rust/opendal/struct.Reader.html | 2 +-
docs/rust/opendal/struct.StdBytesIterator.html | 2 +-
docs/rust/opendal/struct.StdReader.html | 2 +-
docs/rust/opendal/struct.StdWriter.html | 2 +-
docs/rust/opendal/struct.Writer.html | 2 +-
docs/rust/opendal/trait.Builder.html | 2 +-
docs/rust/opendal/trait.Execute.html | 2 +-
docs/rust/opendal/type.Result.html | 2 +-
docs/rust/search-index.js | 2 +-
docs/rust/search.desc/opendal/opendal-desc-0-.js | 2 +-
download/index.html | 2 +-
index.html | 2 +-
lunr-index-1718703847397.json | 1 -
lunr-index-1718708162199.json | 1 +
lunr-index.json | 2 +-
search-doc-1718703847397.json | 1 -
search-doc-1718708162199.json | 1 +
search-doc.json | 2 +-
537 files changed, 1312 insertions(+), 1264 deletions(-)
diff --git a/404.html b/404.html
index 8ad704cbfc..1d1812f3a8 100644
--- a/404.html
+++ b/404.html
@@ -6,7 +6,7 @@
<title data-rh="true">Page Not Found | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/404.html"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="tr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/assets/js/main.649bd06a.js b/assets/js/main.aa3b0702.js
similarity index 99%
rename from assets/js/main.649bd06a.js
rename to assets/js/main.aa3b0702.js
index 0eff84260f..809af838cc 100644
--- a/assets/js/main.649bd06a.js
+++ b/assets/js/main.aa3b0702.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.649bd06a.js.LICENSE.txt */
-(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[8792],{4649:(e,t,n)=>{var r={"./prism-groovy":2600,"./prism-java":1330,"./prism-rust":8432};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=4649},6527:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});n(758);var r=n(2059),o=n.n(r),a=n(4054);con [...]
\ No newline at end of file
+/*! For license information please see main.aa3b0702.js.LICENSE.txt */
+(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[8792],{4649:(e,t,n)=>{var r={"./prism-groovy":2600,"./prism-java":1330,"./prism-rust":8432};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=4649},6527:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});n(758);var r=n(2059),o=n.n(r),a=n(4054);con [...]
\ No newline at end of file
diff --git a/assets/js/main.649bd06a.js.LICENSE.txt b/assets/js/main.aa3b0702.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.649bd06a.js.LICENSE.txt
rename to assets/js/main.aa3b0702.js.LICENSE.txt
diff --git a/blog/apache-opendal-graduated/index.html b/blog/apache-opendal-graduated/index.html
index fc34dcb50d..6bf2462f45 100644
--- a/blog/apache-opendal-graduated/index.html
+++ b/blog/apache-opendal-graduated/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ is now Graduated | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-graduated"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/apache-opendal-participates-in-gsoc-2024/index.html b/blog/apache-opendal-participates-in-gsoc-2024/index.html
index 53e6677cd0..73357adec0 100644
--- a/blog/apache-opendal-participates-in-gsoc-2024/index.html
+++ b/blog/apache-opendal-participates-in-gsoc-2024/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ participates in Google Summer of Code 2024 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-participates-in-gsoc-2024"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="e [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/apache-opendal-participates-in-ospp-2024/index.html b/blog/apache-opendal-participates-in-ospp-2024/index.html
index 3a6fcf4739..fdb6a6aeca 100644
--- a/blog/apache-opendal-participates-in-ospp-2024/index.html
+++ b/blog/apache-opendal-participates-in-ospp-2024/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ participates in Open Source Promotion Plan 2024 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-participates-in-ospp-2024"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" conte [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 5e41a91c05..dfcbd4ee6f 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Archive | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/archive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/how-opendal-read-data/index.html b/blog/how-opendal-read-data/index.html
index fd14a22f93..f913e453ee 100644
--- a/blog/how-opendal-read-data/index.html
+++ b/blog/how-opendal-read-data/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™ Internal: Data Reading | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/how-opendal-read-data"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/index.html b/blog/index.html
index 05d2a985ee..3d8e282e71 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Blog | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="o [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/opendal-access-data-freely/index.html b/blog/opendal-access-data-freely/index.html
index a9c2959844..b31bfdd1d4 100644
--- a/blog/opendal-access-data-freely/index.html
+++ b/blog/opendal-access-data-freely/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Apache OpenDAL™: Access Data Freely | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-access-data-freely"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusau [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/opendal-entered-apache-incubator/index.html b/blog/opendal-entered-apache-incubator/index.html
index 569701b964..f4a40070b0 100644
--- a/blog/opendal-entered-apache-incubator/index.html
+++ b/blog/opendal-entered-apache-incubator/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Way to Go: OpenDAL successfully entered Apache Incubator | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-entered-apache-incubator"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/owo-1/index.html b/blog/owo-1/index.html
index d74df59a44..1247ba304c 100644
--- a/blog/owo-1/index.html
+++ b/blog/owo-1/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">OwO #1: The v0.40 Release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/owo-1"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><met [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
index 702bdd9a8f..ebc854b7e3 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">5 posts tagged with "announcement" | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/announcement"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/index.html b/blog/tags/index.html
index f3ad22006e..597c0e8863 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Tags | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" proper [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/internal/index.html b/blog/tags/internal/index.html
index 37de6d4a24..50d6fd4eef 100644
--- a/blog/tags/internal/index.html
+++ b/blog/tags/internal/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">One post tagged with "internal" | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/internal"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lang [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/owo/index.html b/blog/tags/owo/index.html
index 702fb016c1..b8c54d2bc0 100644
--- a/blog/tags/owo/index.html
+++ b/blog/tags/owo/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">One post tagged with "owo" | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/owo"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" cont [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/committers/index.html b/community/category/committers/index.html
index 0a632bcd40..80e0391967 100644
--- a/community/category/committers/index.html
+++ b/community/category/committers/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Committers | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/committers"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/events/index.html b/community/category/events/index.html
index cd8c1d0c85..3c4017e58b 100644
--- a/community/category/events/index.html
+++ b/community/category/events/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Events | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/events"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta dat [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/pmc-members/index.html b/community/category/pmc-members/index.html
index 601b56535a..d0024e2414 100644
--- a/community/category/pmc-members/index.html
+++ b/community/category/pmc-members/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Committers | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/pmc-members"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"> [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/reference/index.html b/community/category/reference/index.html
index 0751263975..ae3afe2f90 100644
--- a/community/category/reference/index.html
+++ b/community/category/reference/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Reference | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/reference"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><me [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/release/index.html b/community/category/release/index.html
index 2571a45d86..84bfbde20a 100644
--- a/community/category/release/index.html
+++ b/community/category/release/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/release"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/committers/onboarding/index.html b/community/committers/onboarding/index.html
index b663b3d75f..7e57102ad8 100644
--- a/community/committers/onboarding/index.html
+++ b/community/committers/onboarding/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Onboarding | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/committers/request_for_adding_secrets/index.html b/community/committers/request_for_adding_secrets/index.html
index e168cab477..2015b5fe00 100644
--- a/community/committers/request_for_adding_secrets/index.html
+++ b/community/committers/request_for_adding_secrets/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Request for adding secrets | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/request_for_adding_secrets"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/events/gsoc-proposal-guide/index.html b/community/events/gsoc-proposal-guide/index.html
index 9d301a74c1..8ec51a6994 100644
--- a/community/events/gsoc-proposal-guide/index.html
+++ b/community/events/gsoc-proposal-guide/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">GSoC Project Proposal Guidance | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/events/gsoc-proposal-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/events/ospp-proposal-guide/index.html b/community/events/ospp-proposal-guide/index.html
index 348d68805e..b3439556f2 100644
--- a/community/events/ospp-proposal-guide/index.html
+++ b/community/events/ospp-proposal-guide/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">OSPP Project Proposal Guidance | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/events/ospp-proposal-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/index.html b/community/index.html
index 5705351904..cafcf865c3 100644
--- a/community/index.html
+++ b/community/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Community | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/maturity/index.html b/community/maturity/index.html
index 95eb7e4df7..111d751a5d 100644
--- a/community/maturity/index.html
+++ b/community/maturity/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Maturity | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/maturity"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/board-reporting/index.html b/community/pmc_members/board-reporting/index.html
index f140a61931..5a20ea428e 100644
--- a/community/pmc_members/board-reporting/index.html
+++ b/community/pmc_members/board-reporting/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Board reporting | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/board-reporting"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" c [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/nominate-committer/index.html b/community/pmc_members/nominate-committer/index.html
index b7230fee06..68cde84472 100644
--- a/community/pmc_members/nominate-committer/index.html
+++ b/community/pmc_members/nominate-committer/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Nominate Committer | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/nominate-committer"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/nominate-pmc-member/index.html b/community/pmc_members/nominate-pmc-member/index.html
index f41fdb4890..360db8c47a 100644
--- a/community/pmc_members/nominate-pmc-member/index.html
+++ b/community/pmc_members/nominate-pmc-member/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Nominate PMC Member | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/nominate-pmc-member"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lan [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/onboarding/index.html b/community/pmc_members/onboarding/index.html
index 5f07e45ea4..f417fcadc8 100644
--- a/community/pmc_members/onboarding/index.html
+++ b/community/pmc_members/onboarding/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Onboarding | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/index.html b/community/release/index.html
index 137505fa48..02a7ad021e 100644
--- a/community/release/index.html
+++ b/community/release/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Create a release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/release/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/reference/generate_release_note/index.html b/community/release/reference/generate_release_note/index.html
index 005c0bea8f..b0e2743f4d 100644
--- a/community/release/reference/generate_release_note/index.html
+++ b/community/release/reference/generate_release_note/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Generate release note | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/release/reference/generate_release_note"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="doc [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/reference/setup_gpg/index.html b/community/release/reference/setup_gpg/index.html
index 0b6909be07..b36784abe1 100644
--- a/community/release/reference/setup_gpg/index.html
+++ b/community/release/reference/setup_gpg/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Setup GPG key | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/release/reference/setup_gpg"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" con [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/verify/index.html b/community/release/verify/index.html
index 3052981990..f1a75b537f 100644
--- a/community/release/verify/index.html
+++ b/community/release/verify/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Verify a release candidate | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/release/verify"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" con [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/security/index.html b/community/security/index.html
index 557f4cae02..ccc9dc3951 100644
--- a/community/security/index.html
+++ b/community/security/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Security | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/security"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/binding-java/index.html b/docs/binding-java/index.html
index dec6e4e76e..bce4b70237 100644
--- a/docs/binding-java/index.html
+++ b/docs/binding-java/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Java API | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/binding-java"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/binding-nodejs/index.html b/docs/binding-nodejs/index.html
index ea82d86e64..e789167a41 100644
--- a/docs/binding-nodejs/index.html
+++ b/docs/binding-nodejs/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Node.js API | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/binding-nodejs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/binding-python/index.html b/docs/binding-python/index.html
index f57bf01e25..a8e7a81410 100644
--- a/docs/binding-python/index.html
+++ b/docs/binding-python/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Python API | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/binding-python"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data- [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/dav-server-opendalfs/dav_server_opendalfs/all.html b/docs/dav-server-opendalfs/dav_server_opendalfs/all.html
index 6c672c5fd8..ae9127df4d 100644
--- a/docs/dav-server-opendalfs/dav_server_opendalfs/all.html
+++ b/docs/dav-server-opendalfs/dav_server_opendalfs/all.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
diff --git a/docs/dav-server-opendalfs/dav_server_opendalfs/index.html b/docs/dav-server-opendalfs/dav_server_opendalfs/index.html
index a5d7a1c300..0c6eec779c 100644
--- a/docs/dav-server-opendalfs/dav_server_opendalfs/index.html
+++ b/docs/dav-server-opendalfs/dav_server_opendalfs/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="dav-server-opendalfs is an dav-server implementation using opendal."><title>dav_server_opendalfs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="dav-server-opendalfs is an dav-server implementation using opendal."><title>dav_server_opendalfs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
<p>This crate can help you to access ANY storage services with the same webdav API.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
diff --git a/docs/dav-server-opendalfs/dav_server_opendalfs/struct.OpendalFs.html b/docs/dav-server-opendalfs/dav_server_opendalfs/struct.OpendalFs.html
index 482b4ec9dd..32ddc77e06 100644
--- a/docs/dav-server-opendalfs/dav_server_opendalfs/struct.OpendalFs.html
+++ b/docs/dav-server-opendalfs/dav_server_opendalfs/struct.OpendalFs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpendalFs is a `DavFileSystem` implementation for opendal."><title>OpendalFs in dav_server_opendalfs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpendalFs is a `DavFileSystem` implementation for opendal."><title>OpendalFs in dav_server_opendalfs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
pub op: Operator,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>OpendalFs is a <code>DavFileSystem</code> implementation for opendal.</p>
diff --git a/docs/dav-server/index.html b/docs/dav-server/index.html
index 24ab53a1e5..36c9168897 100644
--- a/docs/dav-server/index.html
+++ b/docs/dav-server/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">WebDAV Integration | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/dav-server"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/haskell/OpenDAL.html b/docs/haskell/OpenDAL.html
index fb3145b27d..4ccd9dccfd 100644
--- a/docs/haskell/OpenDAL.html
+++ b/docs/haskell/OpenDAL.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>OpenDAL</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="styleshee [...]
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>OpenDAL</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="styleshee [...]
We recommend using <code>OverloadedStrings</code> to construct a default config.</p><p>For example:</p><p>default config</p><pre>newOperator "memory"
</pre><p>custom services config</p><pre>newOperator "memory" {ocConfig = HashMap.fromList [("root", "/tmp")]}
</pre><p>enable logging</p><pre>newOperator "memory" {ocLogAction = Just simpleMessageAction}
diff --git a/docs/haskell/doc-index.html b/docs/haskell/doc-index.html
index bbc1d88211..94426c37b7 100644
--- a/docs/haskell/doc-index.html
+++ b/docs/haskell/doc-index.html
@@ -1 +1 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>opendal-0.1.0.0: Apache OpenDAL™ Haskell Binding (Index)</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type= [...]
\ No newline at end of file
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>opendal-0.44.4.0: Apache OpenDAL™ Haskell Binding (Index)</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type [...]
\ No newline at end of file
diff --git a/docs/haskell/index.html b/docs/haskell/index.html
index ab36a1d075..5629048e3f 100644
--- a/docs/haskell/index.html
+++ b/docs/haskell/index.html
@@ -1 +1 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>opendal-0.1.0.0: Apache OpenDAL™ Haskell Binding</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/cs [...]
\ No newline at end of file
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>opendal-0.44.4.0: Apache OpenDAL™ Haskell Binding</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/c [...]
\ No newline at end of file
diff --git a/docs/haskell/opendal.haddock b/docs/haskell/opendal.haddock
index 6e7a65e992..694d3f1a9d 100644
Binary files a/docs/haskell/opendal.haddock and b/docs/haskell/opendal.haddock differ
diff --git a/docs/java/allclasses-index.html b/docs/java/allclasses-index.html
index 9a36d32d58..1136c20543 100644
--- a/docs/java/allclasses-index.html
+++ b/docs/java/allclasses-index.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>All Classes and Interfaces (Apache OpenDAL™ 0.46.0 API)</title>
+<title>All Classes and Interfaces (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="class index">
diff --git a/docs/java/allpackages-index.html b/docs/java/allpackages-index.html
index adb9187504..33c97bf345 100644
--- a/docs/java/allpackages-index.html
+++ b/docs/java/allpackages-index.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>All Packages (Apache OpenDAL™ 0.46.0 API)</title>
+<title>All Packages (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="package index">
diff --git a/docs/java/constant-values.html b/docs/java/constant-values.html
index 3e2fcf969f..c8d0ac9b5f 100644
--- a/docs/java/constant-values.html
+++ b/docs/java/constant-values.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Constant Field Values (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Constant Field Values (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="summary of constants">
diff --git a/docs/java/help-doc.html b/docs/java/help-doc.html
index 81c219f0d5..54b67f1785 100644
--- a/docs/java/help-doc.html
+++ b/docs/java/help-doc.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>API Help (Apache OpenDAL™ 0.46.0 API)</title>
+<title>API Help (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="help">
diff --git a/docs/java/index-all.html b/docs/java/index-all.html
index cf8b7815bd..81409b908c 100644
--- a/docs/java/index-all.html
+++ b/docs/java/index-all.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Index (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Index (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="index">
diff --git a/docs/java/index.html b/docs/java/index.html
index 0e6a88456b..8226877159 100644
--- a/docs/java/index.html
+++ b/docs/java/index.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Overview (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Overview (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="package index">
@@ -48,7 +48,7 @@ loadScripts(document, 'script');</script>
<div class="flex-content">
<main role="main">
<div class="header">
-<h1 class="title">Apache OpenDAL™ 0.46.0 API</h1>
+<h1 class="title">Apache OpenDAL™ 0.46.1 API</h1>
</div>
<div id="all-packages-table">
<div class="caption"><span>Packages</span></div>
diff --git a/docs/java/org/apache/opendal/AsyncExecutor.html b/docs/java/org/apache/opendal/AsyncExecutor.html
index 765678c65f..36afdb3dc3 100644
--- a/docs/java/org/apache/opendal/AsyncExecutor.html
+++ b/docs/java/org/apache/opendal/AsyncExecutor.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>AsyncExecutor (Apache OpenDAL™ 0.46.0 API)</title>
+<title>AsyncExecutor (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: AsyncExecutor">
diff --git a/docs/java/org/apache/opendal/AsyncOperator.html b/docs/java/org/apache/opendal/AsyncOperator.html
index 8b5899dc74..18c70d224d 100644
--- a/docs/java/org/apache/opendal/AsyncOperator.html
+++ b/docs/java/org/apache/opendal/AsyncOperator.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>AsyncOperator (Apache OpenDAL™ 0.46.0 API)</title>
+<title>AsyncOperator (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: AsyncOperator">
diff --git a/docs/java/org/apache/opendal/Capability.html b/docs/java/org/apache/opendal/Capability.html
index 689b2d5d61..dbeb7df42e 100644
--- a/docs/java/org/apache/opendal/Capability.html
+++ b/docs/java/org/apache/opendal/Capability.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Capability (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Capability (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: Capability">
diff --git a/docs/java/org/apache/opendal/Entry.html b/docs/java/org/apache/opendal/Entry.html
index 4e4da8a278..02e905deb0 100644
--- a/docs/java/org/apache/opendal/Entry.html
+++ b/docs/java/org/apache/opendal/Entry.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Entry (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Entry (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: Entry">
diff --git a/docs/java/org/apache/opendal/Environment.html b/docs/java/org/apache/opendal/Environment.html
index e42bf45618..4ca60ede10 100644
--- a/docs/java/org/apache/opendal/Environment.html
+++ b/docs/java/org/apache/opendal/Environment.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Environment (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Environment (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, enum: Environment">
diff --git a/docs/java/org/apache/opendal/Layer.html b/docs/java/org/apache/opendal/Layer.html
index 75a6504811..3924d6e0ea 100644
--- a/docs/java/org/apache/opendal/Layer.html
+++ b/docs/java/org/apache/opendal/Layer.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Layer (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Layer (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: Layer">
diff --git a/docs/java/org/apache/opendal/Metadata.EntryMode.html b/docs/java/org/apache/opendal/Metadata.EntryMode.html
index b0485330d6..aacf31f3dc 100644
--- a/docs/java/org/apache/opendal/Metadata.EntryMode.html
+++ b/docs/java/org/apache/opendal/Metadata.EntryMode.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Metadata.EntryMode (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Metadata.EntryMode (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: Metadata, enum: EntryMode">
diff --git a/docs/java/org/apache/opendal/Metadata.html b/docs/java/org/apache/opendal/Metadata.html
index c690232272..6878982e1d 100644
--- a/docs/java/org/apache/opendal/Metadata.html
+++ b/docs/java/org/apache/opendal/Metadata.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Metadata (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Metadata (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: Metadata">
diff --git a/docs/java/org/apache/opendal/NativeLibrary.html b/docs/java/org/apache/opendal/NativeLibrary.html
index e242e5fb73..3885b85a94 100644
--- a/docs/java/org/apache/opendal/NativeLibrary.html
+++ b/docs/java/org/apache/opendal/NativeLibrary.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>NativeLibrary (Apache OpenDAL™ 0.46.0 API)</title>
+<title>NativeLibrary (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: NativeLibrary">
diff --git a/docs/java/org/apache/opendal/NativeObject.html b/docs/java/org/apache/opendal/NativeObject.html
index 941370341c..7a4279a17a 100644
--- a/docs/java/org/apache/opendal/NativeObject.html
+++ b/docs/java/org/apache/opendal/NativeObject.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>NativeObject (Apache OpenDAL™ 0.46.0 API)</title>
+<title>NativeObject (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: NativeObject">
diff --git a/docs/java/org/apache/opendal/OpenDAL.html b/docs/java/org/apache/opendal/OpenDAL.html
index e289b38d52..ea2fda5fcf 100644
--- a/docs/java/org/apache/opendal/OpenDAL.html
+++ b/docs/java/org/apache/opendal/OpenDAL.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>OpenDAL (Apache OpenDAL™ 0.46.0 API)</title>
+<title>OpenDAL (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: OpenDAL">
diff --git a/docs/java/org/apache/opendal/OpenDALException.Code.html b/docs/java/org/apache/opendal/OpenDALException.Code.html
index 9fb0cf0d25..d1038dbbe4 100644
--- a/docs/java/org/apache/opendal/OpenDALException.Code.html
+++ b/docs/java/org/apache/opendal/OpenDALException.Code.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>OpenDALException.Code (Apache OpenDAL™ 0.46.0 API)</title>
+<title>OpenDALException.Code (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: OpenDALException, enum: Code">
diff --git a/docs/java/org/apache/opendal/OpenDALException.html b/docs/java/org/apache/opendal/OpenDALException.html
index dab36f1177..eee58ba756 100644
--- a/docs/java/org/apache/opendal/OpenDALException.html
+++ b/docs/java/org/apache/opendal/OpenDALException.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>OpenDALException (Apache OpenDAL™ 0.46.0 API)</title>
+<title>OpenDALException (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: OpenDALException">
diff --git a/docs/java/org/apache/opendal/Operator.html b/docs/java/org/apache/opendal/Operator.html
index c94276a33d..c7cfe86fd9 100644
--- a/docs/java/org/apache/opendal/Operator.html
+++ b/docs/java/org/apache/opendal/Operator.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Operator (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Operator (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: Operator">
diff --git a/docs/java/org/apache/opendal/OperatorInfo.html b/docs/java/org/apache/opendal/OperatorInfo.html
index b6844e286e..38ecd0eca4 100644
--- a/docs/java/org/apache/opendal/OperatorInfo.html
+++ b/docs/java/org/apache/opendal/OperatorInfo.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>OperatorInfo (Apache OpenDAL™ 0.46.0 API)</title>
+<title>OperatorInfo (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: OperatorInfo">
diff --git a/docs/java/org/apache/opendal/OperatorInputStream.html b/docs/java/org/apache/opendal/OperatorInputStream.html
index aef8814d2f..4748e3b22d 100644
--- a/docs/java/org/apache/opendal/OperatorInputStream.html
+++ b/docs/java/org/apache/opendal/OperatorInputStream.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>OperatorInputStream (Apache OpenDAL™ 0.46.0 API)</title>
+<title>OperatorInputStream (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: OperatorInputStream">
diff --git a/docs/java/org/apache/opendal/OperatorOutputStream.html b/docs/java/org/apache/opendal/OperatorOutputStream.html
index f2a582ceaa..23edcc8e1b 100644
--- a/docs/java/org/apache/opendal/OperatorOutputStream.html
+++ b/docs/java/org/apache/opendal/OperatorOutputStream.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>OperatorOutputStream (Apache OpenDAL™ 0.46.0 API)</title>
+<title>OperatorOutputStream (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: OperatorOutputStream">
diff --git a/docs/java/org/apache/opendal/PresignedRequest.html b/docs/java/org/apache/opendal/PresignedRequest.html
index 506aadb9dd..6a461f9e0c 100644
--- a/docs/java/org/apache/opendal/PresignedRequest.html
+++ b/docs/java/org/apache/opendal/PresignedRequest.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>PresignedRequest (Apache OpenDAL™ 0.46.0 API)</title>
+<title>PresignedRequest (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal, class: PresignedRequest">
diff --git a/docs/java/org/apache/opendal/class-use/AsyncExecutor.html b/docs/java/org/apache/opendal/class-use/AsyncExecutor.html
index b6288464d3..2b17748a89 100644
--- a/docs/java/org/apache/opendal/class-use/AsyncExecutor.html
+++ b/docs/java/org/apache/opendal/class-use/AsyncExecutor.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.AsyncExecutor (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.AsyncExecutor (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: AsyncExecutor">
diff --git a/docs/java/org/apache/opendal/class-use/AsyncOperator.html b/docs/java/org/apache/opendal/class-use/AsyncOperator.html
index 404812a3a0..685179d847 100644
--- a/docs/java/org/apache/opendal/class-use/AsyncOperator.html
+++ b/docs/java/org/apache/opendal/class-use/AsyncOperator.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.AsyncOperator (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.AsyncOperator (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: AsyncOperator">
diff --git a/docs/java/org/apache/opendal/class-use/Capability.html b/docs/java/org/apache/opendal/class-use/Capability.html
index 496e5d6219..63f6dcb674 100644
--- a/docs/java/org/apache/opendal/class-use/Capability.html
+++ b/docs/java/org/apache/opendal/class-use/Capability.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.Capability (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.Capability (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: Capability">
diff --git a/docs/java/org/apache/opendal/class-use/Entry.html b/docs/java/org/apache/opendal/class-use/Entry.html
index 6ab3e90476..92a31822ba 100644
--- a/docs/java/org/apache/opendal/class-use/Entry.html
+++ b/docs/java/org/apache/opendal/class-use/Entry.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.Entry (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.Entry (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: Entry">
diff --git a/docs/java/org/apache/opendal/class-use/Environment.html b/docs/java/org/apache/opendal/class-use/Environment.html
index c5d4984a1f..43757f022a 100644
--- a/docs/java/org/apache/opendal/class-use/Environment.html
+++ b/docs/java/org/apache/opendal/class-use/Environment.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Enum org.apache.opendal.Environment (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Enum org.apache.opendal.Environment (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, enum: Environment">
diff --git a/docs/java/org/apache/opendal/class-use/Layer.html b/docs/java/org/apache/opendal/class-use/Layer.html
index e123ba1a82..3a5f5e8548 100644
--- a/docs/java/org/apache/opendal/class-use/Layer.html
+++ b/docs/java/org/apache/opendal/class-use/Layer.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.Layer (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.Layer (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: Layer">
diff --git a/docs/java/org/apache/opendal/class-use/Metadata.EntryMode.html b/docs/java/org/apache/opendal/class-use/Metadata.EntryMode.html
index ccb8c290ef..08178fca7c 100644
--- a/docs/java/org/apache/opendal/class-use/Metadata.EntryMode.html
+++ b/docs/java/org/apache/opendal/class-use/Metadata.EntryMode.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Enum org.apache.opendal.Metadata.EntryMode (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Enum org.apache.opendal.Metadata.EntryMode (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: Metadata, enum: EntryMode">
diff --git a/docs/java/org/apache/opendal/class-use/Metadata.html b/docs/java/org/apache/opendal/class-use/Metadata.html
index 8dbdf54407..3d55e0d84c 100644
--- a/docs/java/org/apache/opendal/class-use/Metadata.html
+++ b/docs/java/org/apache/opendal/class-use/Metadata.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.Metadata (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.Metadata (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: Metadata">
diff --git a/docs/java/org/apache/opendal/class-use/NativeLibrary.html b/docs/java/org/apache/opendal/class-use/NativeLibrary.html
index 346a0ce72d..960441acfb 100644
--- a/docs/java/org/apache/opendal/class-use/NativeLibrary.html
+++ b/docs/java/org/apache/opendal/class-use/NativeLibrary.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.NativeLibrary (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.NativeLibrary (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: NativeLibrary">
diff --git a/docs/java/org/apache/opendal/class-use/NativeObject.html b/docs/java/org/apache/opendal/class-use/NativeObject.html
index 0137698a3a..e6b11babae 100644
--- a/docs/java/org/apache/opendal/class-use/NativeObject.html
+++ b/docs/java/org/apache/opendal/class-use/NativeObject.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.NativeObject (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.NativeObject (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: NativeObject">
diff --git a/docs/java/org/apache/opendal/class-use/OpenDAL.html b/docs/java/org/apache/opendal/class-use/OpenDAL.html
index 53dfabcac9..cefaed8eed 100644
--- a/docs/java/org/apache/opendal/class-use/OpenDAL.html
+++ b/docs/java/org/apache/opendal/class-use/OpenDAL.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.OpenDAL (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.OpenDAL (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: OpenDAL">
diff --git a/docs/java/org/apache/opendal/class-use/OpenDALException.Code.html b/docs/java/org/apache/opendal/class-use/OpenDALException.Code.html
index 64dbe84267..281ab4676a 100644
--- a/docs/java/org/apache/opendal/class-use/OpenDALException.Code.html
+++ b/docs/java/org/apache/opendal/class-use/OpenDALException.Code.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Enum org.apache.opendal.OpenDALException.Code (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Enum org.apache.opendal.OpenDALException.Code (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: OpenDALException, enum: Code">
diff --git a/docs/java/org/apache/opendal/class-use/OpenDALException.html b/docs/java/org/apache/opendal/class-use/OpenDALException.html
index fbf2610a65..027f457345 100644
--- a/docs/java/org/apache/opendal/class-use/OpenDALException.html
+++ b/docs/java/org/apache/opendal/class-use/OpenDALException.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.OpenDALException (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.OpenDALException (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: OpenDALException">
diff --git a/docs/java/org/apache/opendal/class-use/Operator.html b/docs/java/org/apache/opendal/class-use/Operator.html
index 00b736ff0f..91803d4e9f 100644
--- a/docs/java/org/apache/opendal/class-use/Operator.html
+++ b/docs/java/org/apache/opendal/class-use/Operator.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.Operator (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.Operator (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: Operator">
diff --git a/docs/java/org/apache/opendal/class-use/OperatorInfo.html b/docs/java/org/apache/opendal/class-use/OperatorInfo.html
index 31e8187a2f..1b9d438f9c 100644
--- a/docs/java/org/apache/opendal/class-use/OperatorInfo.html
+++ b/docs/java/org/apache/opendal/class-use/OperatorInfo.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.OperatorInfo (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.OperatorInfo (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: OperatorInfo">
diff --git a/docs/java/org/apache/opendal/class-use/OperatorInputStream.html b/docs/java/org/apache/opendal/class-use/OperatorInputStream.html
index 2b5aa23e4a..2ad34936fc 100644
--- a/docs/java/org/apache/opendal/class-use/OperatorInputStream.html
+++ b/docs/java/org/apache/opendal/class-use/OperatorInputStream.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.OperatorInputStream (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.OperatorInputStream (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: OperatorInputStream">
diff --git a/docs/java/org/apache/opendal/class-use/OperatorOutputStream.html b/docs/java/org/apache/opendal/class-use/OperatorOutputStream.html
index 631b801223..b073c76a3f 100644
--- a/docs/java/org/apache/opendal/class-use/OperatorOutputStream.html
+++ b/docs/java/org/apache/opendal/class-use/OperatorOutputStream.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.OperatorOutputStream (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.OperatorOutputStream (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: OperatorOutputStream">
diff --git a/docs/java/org/apache/opendal/class-use/PresignedRequest.html b/docs/java/org/apache/opendal/class-use/PresignedRequest.html
index 01c244c0ba..c0032050c1 100644
--- a/docs/java/org/apache/opendal/class-use/PresignedRequest.html
+++ b/docs/java/org/apache/opendal/class-use/PresignedRequest.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.PresignedRequest (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.PresignedRequest (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal, class: PresignedRequest">
diff --git a/docs/java/org/apache/opendal/layer/RetryLayer.html b/docs/java/org/apache/opendal/layer/RetryLayer.html
index 41a5530820..6cf4fc23f4 100644
--- a/docs/java/org/apache/opendal/layer/RetryLayer.html
+++ b/docs/java/org/apache/opendal/layer/RetryLayer.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>RetryLayer (Apache OpenDAL™ 0.46.0 API)</title>
+<title>RetryLayer (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal.layer, class: RetryLayer">
diff --git a/docs/java/org/apache/opendal/layer/class-use/RetryLayer.html b/docs/java/org/apache/opendal/layer/class-use/RetryLayer.html
index d24f27aad6..a2a7b3240c 100644
--- a/docs/java/org/apache/opendal/layer/class-use/RetryLayer.html
+++ b/docs/java/org/apache/opendal/layer/class-use/RetryLayer.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Class org.apache.opendal.layer.RetryLayer (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Class org.apache.opendal.layer.RetryLayer (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal.layer, class: RetryLayer">
diff --git a/docs/java/org/apache/opendal/layer/package-summary.html b/docs/java/org/apache/opendal/layer/package-summary.html
index b2f2495bb3..9cf0a1a36b 100644
--- a/docs/java/org/apache/opendal/layer/package-summary.html
+++ b/docs/java/org/apache/opendal/layer/package-summary.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>org.apache.opendal.layer (Apache OpenDAL™ 0.46.0 API)</title>
+<title>org.apache.opendal.layer (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal.layer">
diff --git a/docs/java/org/apache/opendal/layer/package-tree.html b/docs/java/org/apache/opendal/layer/package-tree.html
index 56f74598a6..9e6fe3b695 100644
--- a/docs/java/org/apache/opendal/layer/package-tree.html
+++ b/docs/java/org/apache/opendal/layer/package-tree.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>org.apache.opendal.layer Class Hierarchy (Apache OpenDAL™ 0.46.0 API)</title>
+<title>org.apache.opendal.layer Class Hierarchy (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="tree: package: org.apache.opendal.layer">
diff --git a/docs/java/org/apache/opendal/layer/package-use.html b/docs/java/org/apache/opendal/layer/package-use.html
index e4ca0db370..e59437bc53 100644
--- a/docs/java/org/apache/opendal/layer/package-use.html
+++ b/docs/java/org/apache/opendal/layer/package-use.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Package org.apache.opendal.layer (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Package org.apache.opendal.layer (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal.layer">
diff --git a/docs/java/org/apache/opendal/package-summary.html b/docs/java/org/apache/opendal/package-summary.html
index 4587d6da15..8300dc61aa 100644
--- a/docs/java/org/apache/opendal/package-summary.html
+++ b/docs/java/org/apache/opendal/package-summary.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>org.apache.opendal (Apache OpenDAL™ 0.46.0 API)</title>
+<title>org.apache.opendal (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.opendal">
diff --git a/docs/java/org/apache/opendal/package-tree.html b/docs/java/org/apache/opendal/package-tree.html
index 1eb520b937..e39ea6ba62 100644
--- a/docs/java/org/apache/opendal/package-tree.html
+++ b/docs/java/org/apache/opendal/package-tree.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>org.apache.opendal Class Hierarchy (Apache OpenDAL™ 0.46.0 API)</title>
+<title>org.apache.opendal Class Hierarchy (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="tree: package: org.apache.opendal">
diff --git a/docs/java/org/apache/opendal/package-use.html b/docs/java/org/apache/opendal/package-use.html
index 72a338e973..1219dc021d 100644
--- a/docs/java/org/apache/opendal/package-use.html
+++ b/docs/java/org/apache/opendal/package-use.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Uses of Package org.apache.opendal (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Uses of Package org.apache.opendal (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="use: package: org.apache.opendal">
diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html
index ce399067c0..0309cff434 100644
--- a/docs/java/overview-summary.html
+++ b/docs/java/overview-summary.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Apache OpenDAL™ 0.46.0 API</title>
+<title>Apache OpenDAL™ 0.46.1 API</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="index redirect">
diff --git a/docs/java/overview-tree.html b/docs/java/overview-tree.html
index c165541acf..16a5a2a74a 100644
--- a/docs/java/overview-tree.html
+++ b/docs/java/overview-tree.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Class Hierarchy (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Class Hierarchy (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="class tree">
diff --git a/docs/java/serialized-form.html b/docs/java/serialized-form.html
index 659a54d060..59cc4faa02 100644
--- a/docs/java/serialized-form.html
+++ b/docs/java/serialized-form.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
-<title>Serialized Form (Apache OpenDAL™ 0.46.0 API)</title>
+<title>Serialized Form (Apache OpenDAL™ 0.46.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="serialized forms">
diff --git a/docs/lua/classes/opendal.metadata.html b/docs/lua/classes/opendal.metadata.html
index 832729fd42..6ef4d79984 100644
--- a/docs/lua/classes/opendal.metadata.html
+++ b/docs/lua/classes/opendal.metadata.html
@@ -138,7 +138,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-06-18 09:32:19 </i>
+<i style="float:right;">Last updated 2024-06-18 10:44:29 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/lua/classes/opendal.operator.html b/docs/lua/classes/opendal.operator.html
index 880863a205..0f162ba2a8 100644
--- a/docs/lua/classes/opendal.operator.html
+++ b/docs/lua/classes/opendal.operator.html
@@ -321,7 +321,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-06-18 09:32:19 </i>
+<i style="float:right;">Last updated 2024-06-18 10:44:29 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/lua/index.html b/docs/lua/index.html
index 4f3c41144e..e9b6bcb3ac 100644
--- a/docs/lua/index.html
+++ b/docs/lua/index.html
@@ -57,7 +57,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-06-18 09:32:19 </i>
+<i style="float:right;">Last updated 2024-06-18 10:44:29 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index d992fb78be..ddfbcf8eb6 100644
--- a/docs/nodejs/classes/BlockingLister.html
+++ b/docs/nodejs/classes/BlockingLister.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingLister | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingLister | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingLister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingReader.html b/docs/nodejs/classes/BlockingReader.html
index 0cc057fdfc..1f94873feb 100644
--- a/docs/nodejs/classes/BlockingReader.html
+++ b/docs/nodejs/classes/BlockingReader.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingReader | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingReader | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L546">generated.d.ts:546</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L546">generated.d.ts:546</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingReader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
<a href="BlockingReader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingWriter.html b/docs/nodejs/classes/BlockingWriter.html
index acec4b9b15..6d21941391 100644
--- a/docs/nodejs/classes/BlockingWriter.html
+++ b/docs/nodejs/classes/BlockingWriter.html
@@ -1,6 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingWriter | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingWriter | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L567">generated.d.ts:567</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L567">generated.d.ts:567</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingWriter.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
<a href="BlockingWriter.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
<a href="BlockingWriter.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
<p>Close this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writerSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span><br/><span class="hl-5">writer</span><span class="hl-1 [...]
</code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L598">generated.d.ts:598</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L598">generated.d.ts:598</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>Write bytes into this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span> [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Capability.html b/docs/nodejs/classes/Capability.html
index d52aee7f01..2863eaa48c 100644
--- a/docs/nodejs/classes/Capability.html
+++ b/docs/nodejs/classes/Capability.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Capability | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Capability | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src [...]
by current Operator.</p>
<p>Via capability, we can know:</p>
<ul>
@@ -7,7 +7,7 @@ by current Operator.</p>
<li>What's current Operator max supports batch operations count.</li>
</ul>
<p>Add fields of Capabilities with be public and can be accessed directly.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Capability.html#batch" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch</span></a>
<a href="Capability.html#batchDelete" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Delete</span></a>
<a href="Capability.html#batchMaxOperations" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Max<wbr/>Operations</span></a>
@@ -45,43 +45,43 @@ by current Operator.</p>
<a href="Capability.html#writeWithContentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Disposition</span></a>
<a href="Capability.html#writeWithContentType" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Type</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Cap [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="copy" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createDir" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#create [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="delete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="list" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignRead" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a href="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignStat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a href="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignWrite" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a href="# [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="read" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L64">generated.d.ts:64</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Match< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L66">generated.d.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>No [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L68">generated.d.ts:68</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>O [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L70">generated.d.ts:70</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L72">generated.d.ts:72</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>Ov [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L74">generated.d.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="rename" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" aria-label=" [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="stat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Match< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>No [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="write" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Per [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L76">generated.d.ts:76</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L82">generated.d.ts:82</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a h [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L80">generated.d.ts:80</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a h [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L78">generated.d.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align<wb [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="copy" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createDir" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#create [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="delete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="list" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignRead" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a href="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignStat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a href="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignWrite" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a href="# [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="read" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L64">generated.d.ts:64</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Match< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L66">generated.d.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>No [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L68">generated.d.ts:68</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>O [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L70">generated.d.ts:70</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L72">generated.d.ts:72</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>Ov [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L74">generated.d.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="rename" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" aria-label=" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="stat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Match< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>No [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="write" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Per [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L76">generated.d.ts:76</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L82">generated.d.ts:82</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a h [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L80">generated.d.ts:80</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a h [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L78">generated.d.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align<wb [...]
<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L106">generated.d.ts:106</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L106">generated.d.ts:106</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L94">generated.d.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" c [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L94">generated.d.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" c [...]
<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L112">generated.d.ts:112</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L88">generated.d.ts:88</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>C [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L86">generated.d.ts:86</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Content< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L84">generated.d.ts:84</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class= [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L112">generated.d.ts:112</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L88">generated.d.ts:88</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>C [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L86">generated.d.ts:86</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Content< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L84">generated.d.ts:84</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class= [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index e79959936b..ac3cbb1757 100644
--- a/docs/nodejs/classes/Entry.html
+++ b/docs/nodejs/classes/Entry.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Entry | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../ [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L515">generated.d.ts:515</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Entry | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../ [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L515">generated.d.ts:515</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Entry.html#path" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>path</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ent [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L517">generated.d.ts:517</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L517">generated.d.ts:517</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/ExternalObject.html b/docs/nodejs/classes/ExternalObject.html
index 2c3d7f2844..062e6d61c0 100644
--- a/docs/nodejs/classes/ExternalObject.html
+++ b/docs/nodejs/classes/ExternalObject.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="ExternalObject.html#reflection-5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span><em>Property</em></span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Layer.html b/docs/nodejs/classes/Layer.html
index 36dd6da81d..22b7ad4a29 100644
--- a/docs/nodejs/classes/Layer.html
+++ b/docs/nodejs/classes/Layer.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Layer | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../ [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L659">generated.d.ts:659</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lay [...]
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Layer | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../ [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L659">generated.d.ts:659</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lay [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index 18b1a9c03a..491c908c74 100644
--- a/docs/nodejs/classes/Lister.html
+++ b/docs/nodejs/classes/Lister.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lister | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lister | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L640">generated.d.ts:640</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L640">generated.d.ts:640</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Lister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lis [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>napi will make sure the function is safe, and we didn't do unsafe
thing internally.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type tsd-kind-class">Entry</a><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1 [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type tsd-kind-class">Entry</a><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75 [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index de302baa70..103634609a 100644
--- a/docs/nodejs/classes/Metadata.html
+++ b/docs/nodejs/classes/Metadata.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Metadata | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=" [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L520">generated.d.ts:520</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Metadata | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=" [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L520">generated.d.ts:520</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Metadata.html#contentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Disposition</span></a>
<a href="Metadata.html#contentLength" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Length</span></a>
<a href="Metadata.html#contentMd5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Md5</span></a>
@@ -9,12 +9,12 @@
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Metadata.html#isDirectory" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>Directory</span></a>
<a href="Metadata.html#isFile" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>File</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Met [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L526">generated.d.ts:526</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L528">generated.d.ts:528</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L530">generated.d.ts:530</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L532">generated.d.ts:532</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L534">generated.d.ts:534</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L526">generated.d.ts:526</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L528">generated.d.ts:528</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L530">generated.d.ts:530</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L532">generated.d.ts:532</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L534">generated.d.ts:534</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
<p>We will output this time in RFC3339 format like <code>1996-12-19T16:39:57+08:00</code>.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L540">generated.d.ts:540</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L522">generated.d.ts:522</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isFile" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L524">generated.d.ts:524</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L540">generated.d.ts:540</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L522">generated.d.ts:522</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isFile" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L524">generated.d.ts:524</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index 623aa8d9a3..b1696efb75 100644
--- a/docs/nodejs/classes/Operator.html
+++ b/docs/nodejs/classes/Operator.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=" [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=" [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Operator.html#append" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>append</span></a>
<a href="Operator.html#capability" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>capability</span></a>
<a href="Operator.html#check" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>check</span></a>
@@ -31,45 +31,45 @@
<a href="Operator.html#writer" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>writer</span></a>
<a href="Operator.html#writerSync" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>writer<wbr/>Sync</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ope [...]
-</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L148">generated.d.ts:148</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="append" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>append</span><a href="#append" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24 [...]
+</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L148">generated.d.ts:148</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="append" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>append</span><a href="#append" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24 [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><ul>
<li>It always appends content to the end of the file.</li>
<li>It will create file if the path not exists.</li>
</ul>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">append</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><sp [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
-</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L150">generated.d.ts:150</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>check</ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L150">generated.d.ts:150</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>check</ [...]
<p>We will send a <code>list</code> request to path and return any errors we met.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">check</span><span class="hl-1">();</span>
</code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L193">generated.d.ts:193</a></li></ul></aside></li></ul></section><section class [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L193">generated.d.ts:193</a></li></ul></aside></li></ul></section><section class [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">copy</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">copySync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">createDir</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">createDirSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generat [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Delete not existing error won’t return errors.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">delete</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">deleteSync</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generat [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">isExist</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">isExistSync</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/gene [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol"><</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">></span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol"><</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">></span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
<p>This function will return an array of entries.</p>
<p>An error will be returned if given path doesn't end with <code>/</code>.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span><br/ [...]
@@ -77,7 +77,7 @@
<a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
<pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">, { </span><span class="hl-5">recursive:</span><span class="hl-1"> </span><span class="hl-6">true [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
<p>This function will return a array of entries.</p>
<p>An error will be returned if given path doesn't end with <code>/</code>.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span><br/><span class="hl-4">for</span><span class="hl-1"> (</s [...]
@@ -85,45 +85,45 @@
<a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
<pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">, { </span><span class="hl-5">recursive:</span><span class="hl-1"> </span><span class="hl-6">true</span><span class="hl-1"> });</span><br/><span class= [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
<p>Unit of expires is seconds.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignRead</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0" [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
<p>Unit of expires is seconds.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignStat</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0" [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
<p>Unit of expires is seconds.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignWrite</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0 [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../i [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">read</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Buffer</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Buffer</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd- [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">readSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Buffer</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Buffer</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/gene [...]
<p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">></span></h4>< [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">></span></h4>< [...]
<p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
<a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">([</span><span class="hl-2">"abc"</span><span class="hl-1">, </span><span class="hl-2">"def"</span><span class="hl-1">]);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">paths</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&g [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">paths</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&g [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
<a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">removeAll</span><span class="hl-1">(</span><span class="hl-2">"path/to/dir/"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typ [...]
<p>It's similar to <code>mv</code> command.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">rename</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-s [...]
<p>It's similar to <code>mv</code> command.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">renameSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-2">"path/to/dest"</span><span class="hl-1">);</span>
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
<a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Use stat if you:</p>
<ul>
<li>Want detect the outside changes of path.</li>
@@ -132,17 +132,17 @@
<p>You may want to use <code>metadata</code> if you are working with entries returned by <code>Lister</code>. It’s highly possible that metadata you want has already been cached.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">stat</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span><br/><span c [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a><span class="tsd-signature-symbol">></span></ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a><span class="tsd-signature-symbol">></span></ [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">statSync</span><span class="hl-1">(</span><span class="hl-2">"test"</span><span class="hl-1">);</span><br/><span class="hl-4">if</span><span class="hl-1"> (</span><span [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">write</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><spa [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writeSync</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><span class="hl-2">"hello world"</span><span cla [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
<p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Writer.html" class="tsd-signature-type tsd-kind-class">Writer</a><span class="tsd-signature-symbol">></span></h4>< [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Writer.html" class="tsd-signature-type tsd-kind-class">Writer</a><span class="tsd-signature-symbol">></span></h4>< [...]
<p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingWriter.html" class="tsd-signature-type tsd-kind-class">BlockingWriter</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingWriter.html" class="tsd-signature-type tsd-kind-class">BlockingWriter</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Reader.html b/docs/nodejs/classes/Reader.html
index 9186e67441..2cf2ffdd9c 100644
--- a/docs/nodejs/classes/Reader.html
+++ b/docs/nodejs/classes/Reader.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Reader | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Reader | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L553">generated.d.ts:553</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L553">generated.d.ts:553</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Reader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
<a href="Reader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Rea [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>Read bytes from this reader into given buffer.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</span>: <span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">bigint</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</span>: <span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">bigint</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/RetryLayer.html b/docs/nodejs/classes/RetryLayer.html
index 9ba8ba8ac1..33c27455d9 100644
--- a/docs/nodejs/classes/RetryLayer.html
+++ b/docs/nodejs/classes/RetryLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RetryLayer | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RetryLayer | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src [...]
<p>Add retry for temporary failed operations.</p>
<a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><p>This layer will retry failed operations when [<code>Error::is_temporary</code>]
returns true. If operation still failed, this layer will set error to
@@ -6,27 +6,27 @@ returns true. If operation still failed, this layer will set error to
<p><code>write</code> and <code>blocking_write</code> don't support retry so far, visit <a href="https://github.com/apache/opendal/issues/1223">this issue</a> for more details.</p>
<a id="md:examples" class="tsd-anchor"></a><h1><a href="#md:examples">Examples</a></h1><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">op</span><span class="hl-1"> = </span><span class="hl-6">new</span><span class="hl-1"> </span><span class="hl-0">Operator</span><span class="hl-1">(</span><span class="hl-2">"file"</span><span class="hl-1">, { </span><span class="hl-5">root:</span><span class="hl-1"> </span><spa [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="RetryLayer.html#factor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>factor</span></a>
<a href="RetryLayer.html#jitter" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>jitter</span></a>
<a href="RetryLayer.html#maxDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Delay</span></a>
<a href="RetryLayer.html#maxTimes" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Times</span></a>
<a href="RetryLayer.html#minDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>min<wbr/>Delay</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="RetryLayer.html#build" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>build</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
<a id="md:panics" class="tsd-anchor"></a><h1><a href="#md:panics">Panics</a></h1><p>This function will panic if input factor smaller than <code>1.0</code>.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated. [...]
<p>If jitter is enabled, ExponentialBackoff will add a random jitter in `[0, min_delay)
to current delay.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated [...]
<p>Delay will not increasing if current delay is larger than max_delay.</p>
<a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
<li>The unit of max_delay is millisecond.</li>
</ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated. [...]
<p>Backoff will return <code>None</code> if max times is reaching.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated. [...]
<a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
<li>The unit of min_delay is millisecond.</li>
</ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated. [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated. [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Writer.html b/docs/nodejs/classes/Writer.html
index 3950e3891d..ad663ff20c 100644
--- a/docs/nodejs/classes/Writer.html
+++ b/docs/nodejs/classes/Writer.html
@@ -1,6 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Writer | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Writer | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content [...]
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Writer.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
<a href="Writer.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
<a href="Writer.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
<p>Close this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span> [...]
</code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L634">generated.d.ts:634</a></li></ul></aside></li></ul></section><section class [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L634">generated.d.ts:634</a></li></ul></aside></li></ul></section><section class [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
<p>&mut self in async napi methods should be marked as unsafe</p>
</blockquote>
<p>Write bytes into this writer.</p>
<a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">"path/to/file"</span><span class="hl-1">);</span> [...]
</code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type [...]
\ No newline at end of file
diff --git a/docs/nodejs/index.html b/docs/nodejs/index.html
index 7fbe08dfb4..5ea884c6bd 100644
--- a/docs/nodejs/index.html
+++ b/docs/nodejs/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/search.js" id [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/search.js" id [...]
<a href="https://www.npmjs.com/package/opendal"><img src="https://img.shields.io/npm/v/opendal.svg?logo=npm" alt="npm"></a>
<a href="https://opendal.apache.org/docs/nodejs/"><img src="https://img.shields.io/badge/opendal-OpenDAL_Website-red?logo=Apache&logoColor=red" alt="Website"></a></p>
<p><img src="https://github.com/apache/opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887" alt=""></p>
@@ -20,4 +20,4 @@
</ul>
<a id="md:license-and-trademarks" class="tsd-anchor"></a><h2><a href="#md:license-and-trademarks">License and Trademarks</a></h2><p>Licensed under the Apache License, Version 2.0: <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Apache OpenDAL, OpenDAL, and Apache are either registered trademarks or trademarks of the Apache Software Foundation.</p>
-</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class=" [...]
\ No newline at end of file
+</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class=" [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/ListOptions.html b/docs/nodejs/interfaces/ListOptions.html
index 3908d3e545..dd7b958dc6 100644
--- a/docs/nodejs/interfaces/ListOptions.html
+++ b/docs/nodejs/interfaces/ListOptions.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async sr [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async sr [...]
<a href="ListOptions.html#recursive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>recursive?</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/PresignedRequest.html b/docs/nodejs/interfaces/PresignedRequest.html
index 1236e6414d..bb39220dd9 100644
--- a/docs/nodejs/interfaces/PresignedRequest.html
+++ b/docs/nodejs/interfaces/PresignedRequest.html
@@ -1,8 +1,8 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PresignedRequest | Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script asy [...]
-</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class=" [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PresignedRequest | Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script asy [...]
+</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span> </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class=" [...]
<a href="PresignedRequest.html#method" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>method</span></a>
<a href="PresignedRequest.html#url" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>url</span></a>
</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="headers" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>headers</span><a href="#headers" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">headers</span><span class="tsd-signature-symbol">: [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L42">generated.d.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L38">generated.d.ts:38</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="url" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>url</span><a href="#url" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/c1b0b95/bindings/nodejs/generated.d.ts#L40">generated.d.ts:40</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L42">generated.d.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L38">generated.d.ts:38</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="url" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>url</span><a href="#url" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/75d796c/bindings/nodejs/generated.d.ts#L40">generated.d.ts:40</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
diff --git a/docs/nodejs/modules.html b/docs/nodejs/modules.html
index 7b29f866ce..7d4b2c2a4e 100644
--- a/docs/nodejs/modules.html
+++ b/docs/nodejs/modules.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Apache OpenDAL™ - v0.46.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/search.js" id [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Apache OpenDAL™ - v0.46.2</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/search.js" id [...]
<a href="classes/BlockingReader.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-128"></use></svg><span>Blocking<wbr/>Reader</span></a>
<a href="classes/BlockingWriter.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-128"></use></svg><span>Blocking<wbr/>Writer</span></a>
<a href="classes/Capability.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-128"></use></svg><span>Capability</span></a>
@@ -13,4 +13,4 @@
<a href="classes/Writer.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-128"></use></svg><span>Writer</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Interfaces</h3><div class="tsd-index-list"><a href="interfaces/ListOptions.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-256"></use></svg><span>List<wbr/>Options</span></a>
<a href="interfaces/PresignedRequest.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-256"></use></svg><span>Presigned<wbr/>Request</span></a>
-</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="t [...]
\ No newline at end of file
+</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><h4 class="uppercase">Member Visibility</h4><form><ul id="tsd-filter-options"><li class="t [...]
\ No newline at end of file
diff --git a/docs/object-store-opendal/object_store_opendal/all.html b/docs/object-store-opendal/object_store_opendal/all.html
index 971f54d14e..d4f32c2ac0 100644
--- a/docs/object-store-opendal/object_store_opendal/all.html
+++ b/docs/object-store-opendal/object_store_opendal/all.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
diff --git a/docs/object-store-opendal/object_store_opendal/index.html b/docs/object-store-opendal/object_store_opendal/index.html
index 0b38d40760..499f2bf85e 100644
--- a/docs/object-store-opendal/object_store_opendal/index.html
+++ b/docs/object-store-opendal/object_store_opendal/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="object_store_opendal is an object store implementation using opendal."><title>object_store_opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="object_store_opendal is an object store implementation using opendal."><title>object_store_opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
<p>This crate can help you to access 30 more storage services with the same object_store API.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::sync::Arc;
diff --git a/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html b/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html
index 32a572a641..ae6e8b21b6 100644
--- a/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html
+++ b/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpendalStore implements ObjectStore trait by using opendal."><title>OpendalStore in object_store_opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf084 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpendalStore implements ObjectStore trait by using opendal."><title>OpendalStore in object_store_opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf084 [...]
<p>This allows users to use opendal as an object store without extra cost.</p>
<p>Visit [<code>opendal::services</code>] for more information about supported services.</p>
diff --git a/docs/object-store/index.html b/docs/object-store/index.html
index 89d83a15ba..cdfa96db0f 100644
--- a/docs/object-store/index.html
+++ b/docs/object-store/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">object_store Integration | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/object-store"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 7fb2404d54..63557de3b6 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Welcome to Apache OpenDAL™ | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/overview"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index 10c26ceb52..f97a4d2346 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -249,16 +249,16 @@
<a class="variable" href="#Metadata.content_disposition">content_disposition</a>
</li>
<li>
- <a class="variable" href="#Metadata.content_length">content_length</a>
+ <a class="variable" href="#Metadata.mode">mode</a>
</li>
<li>
- <a class="variable" href="#Metadata.content_md5">content_md5</a>
+ <a class="variable" href="#Metadata.etag">etag</a>
</li>
<li>
- <a class="variable" href="#Metadata.etag">etag</a>
+ <a class="variable" href="#Metadata.content_md5">content_md5</a>
</li>
<li>
- <a class="variable" href="#Metadata.mode">mode</a>
+ <a class="variable" href="#Metadata.content_length">content_length</a>
</li>
<li>
<a class="variable" href="#Metadata.content_type">content_type</a>
@@ -269,15 +269,15 @@
<li>
<a class="class" href="#PresignedRequest">PresignedRequest</a>
<ul class="memberlist">
- <li>
- <a class="variable" href="#PresignedRequest.url">url</a>
- </li>
<li>
<a class="variable" href="#PresignedRequest.headers">headers</a>
</li>
<li>
<a class="variable" href="#PresignedRequest.method">method</a>
</li>
+ <li>
+ <a class="variable" href="#PresignedRequest.url">url</a>
+ </li>
</ul>
</li>
@@ -285,112 +285,112 @@
<a class="class" href="#Capability">Capability</a>
<ul class="memberlist">
<li>
- <a class="variable" href="#Capability.batch_delete">batch_delete</a>
+ <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
</li>
<li>
- <a class="variable" href="#Capability.blocking">blocking</a>
+ <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
</li>
<li>
- <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
+ <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
</li>
<li>
- <a class="variable" href="#Capability.presign_write">presign_write</a>
+ <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
+ <a class="variable" href="#Capability.presign">presign</a>
</li>
<li>
<a class="variable" href="#Capability.list_with_start_after">list_with_start_after</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
+ <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
</li>
<li>
- <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
+ <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
</li>
<li>
- <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
+ <a class="variable" href="#Capability.copy">copy</a>
</li>
<li>
- <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
+ <a class="variable" href="#Capability.presign_read">presign_read</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
+ <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
</li>
<li>
- <a class="variable" href="#Capability.rename">rename</a>
+ <a class="variable" href="#Capability.create_dir">create_dir</a>
</li>
<li>
- <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
+ <a class="variable" href="#Capability.write">write</a>
</li>
<li>
- <a class="variable" href="#Capability.presign_stat">presign_stat</a>
+ <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
</li>
<li>
- <a class="variable" href="#Capability.write">write</a>
+ <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
</li>
<li>
<a class="variable" href="#Capability.list_with_limit">list_with_limit</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
+ <a class="variable" href="#Capability.stat">stat</a>
</li>
<li>
- <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
+ <a class="variable" href="#Capability.read">read</a>
</li>
<li>
- <a class="variable" href="#Capability.list">list</a>
+ <a class="variable" href="#Capability.presign_stat">presign_stat</a>
</li>
<li>
- <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
+ <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
</li>
<li>
- <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
+ <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
</li>
<li>
- <a class="variable" href="#Capability.presign">presign</a>
+ <a class="variable" href="#Capability.list">list</a>
</li>
<li>
- <a class="variable" href="#Capability.stat">stat</a>
+ <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
</li>
<li>
- <a class="variable" href="#Capability.batch">batch</a>
+ <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
</li>
<li>
- <a class="variable" href="#Capability.read">read</a>
+ <a class="variable" href="#Capability.rename">rename</a>
</li>
<li>
- <a class="variable" href="#Capability.write_can_append">write_can_append</a>
+ <a class="variable" href="#Capability.presign_write">presign_write</a>
</li>
<li>
- <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
+ <a class="variable" href="#Capability.batch_delete">batch_delete</a>
</li>
<li>
- <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
+ <a class="variable" href="#Capability.batch">batch</a>
</li>
<li>
- <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
+ <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
</li>
<li>
- <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
+ <a class="variable" href="#Capability.delete">delete</a>
</li>
<li>
- <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
+ <a class="variable" href="#Capability.blocking">blocking</a>
</li>
<li>
- <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
+ <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
</li>
<li>
- <a class="variable" href="#Capability.create_dir">create_dir</a>
+ <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
</li>
<li>
- <a class="variable" href="#Capability.delete">delete</a>
+ <a class="variable" href="#Capability.write_can_append">write_can_append</a>
</li>
<li>
- <a class="variable" href="#Capability.copy">copy</a>
+ <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
</li>
<li>
- <a class="variable" href="#Capability.presign_read">presign_read</a>
+ <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
</li>
</ul>
@@ -1467,54 +1467,54 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
</div>
- <div id="Metadata.content_length" class="classattr">
+ <div id="Metadata.mode" class="classattr">
<div class="attr variable">
- <span class="name">content_length</span><span class="annotation">: int</span>
+ <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">EntryMode</a></span>
</div>
- <a class="headerlink" href="#Metadata.content_length"></a>
+ <a class="headerlink" href="#Metadata.mode"></a>
- <div class="docstring"><p>Content length of this entry.</p>
+ <div class="docstring"><p>mode represent this entry's mode.</p>
</div>
</div>
- <div id="Metadata.content_md5" class="classattr">
+ <div id="Metadata.etag" class="classattr">
<div class="attr variable">
- <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
+ <span class="name">etag</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.content_md5"></a>
+ <a class="headerlink" href="#Metadata.etag"></a>
- <div class="docstring"><p>Content MD5 of this entry.</p>
+ <div class="docstring"><p>ETag of this entry.</p>
</div>
</div>
- <div id="Metadata.etag" class="classattr">
+ <div id="Metadata.content_md5" class="classattr">
<div class="attr variable">
- <span class="name">etag</span><span class="annotation">: Optional[str]</span>
+ <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.etag"></a>
+ <a class="headerlink" href="#Metadata.content_md5"></a>
- <div class="docstring"><p>ETag of this entry.</p>
+ <div class="docstring"><p>Content MD5 of this entry.</p>
</div>
</div>
- <div id="Metadata.mode" class="classattr">
+ <div id="Metadata.content_length" class="classattr">
<div class="attr variable">
- <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">EntryMode</a></span>
+ <span class="name">content_length</span><span class="annotation">: int</span>
</div>
- <a class="headerlink" href="#Metadata.mode"></a>
+ <a class="headerlink" href="#Metadata.content_length"></a>
- <div class="docstring"><p>mode represent this entry's mode.</p>
+ <div class="docstring"><p>Content length of this entry.</p>
</div>
@@ -1545,41 +1545,41 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
- <div id="PresignedRequest.url" class="classattr">
+ <div id="PresignedRequest.headers" class="classattr">
<div class="attr variable">
- <span class="name">url</span><span class="annotation">: str</span>
+ <span class="name">headers</span><span class="annotation">: dict[str, str]</span>
</div>
- <a class="headerlink" href="#PresignedRequest.url"></a>
+ <a class="headerlink" href="#PresignedRequest.headers"></a>
- <div class="docstring"><p>Return the URL of this request.</p>
+ <div class="docstring"><p>Return the HTTP headers of this request.</p>
</div>
</div>
- <div id="PresignedRequest.headers" class="classattr">
+ <div id="PresignedRequest.method" class="classattr">
<div class="attr variable">
- <span class="name">headers</span><span class="annotation">: dict[str, str]</span>
+ <span class="name">method</span><span class="annotation">: str</span>
</div>
- <a class="headerlink" href="#PresignedRequest.headers"></a>
+ <a class="headerlink" href="#PresignedRequest.method"></a>
- <div class="docstring"><p>Return the HTTP headers of this request.</p>
+ <div class="docstring"><p>Return the HTTP method of this request.</p>
</div>
</div>
- <div id="PresignedRequest.method" class="classattr">
+ <div id="PresignedRequest.url" class="classattr">
<div class="attr variable">
- <span class="name">method</span><span class="annotation">: str</span>
+ <span class="name">url</span><span class="annotation">: str</span>
</div>
- <a class="headerlink" href="#PresignedRequest.method"></a>
+ <a class="headerlink" href="#PresignedRequest.url"></a>
- <div class="docstring"><p>Return the HTTP method of this request.</p>
+ <div class="docstring"><p>Return the URL of this request.</p>
</div>
@@ -1600,69 +1600,67 @@ by current Operator.</p>
</div>
- <div id="Capability.batch_delete" class="classattr">
+ <div id="Capability.write_with_content_type" class="classattr">
<div class="attr variable">
- <span class="name">batch_delete</span><span class="annotation">: bool</span>
+ <span class="name">write_with_content_type</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.batch_delete"></a>
+ <a class="headerlink" href="#Capability.write_with_content_type"></a>
- <div class="docstring"><p>If operator supports batch delete.</p>
+ <div class="docstring"><p>If operator supports write with content type.</p>
</div>
</div>
- <div id="Capability.blocking" class="classattr">
+ <div id="Capability.write_with_cache_control" class="classattr">
<div class="attr variable">
- <span class="name">blocking</span><span class="annotation">: bool</span>
+ <span class="name">write_with_cache_control</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.blocking"></a>
+ <a class="headerlink" href="#Capability.write_with_cache_control"></a>
- <div class="docstring"><p>If operator supports blocking.</p>
+ <div class="docstring"><p>If operator supports write with cache control.</p>
</div>
</div>
- <div id="Capability.write_multi_max_size" class="classattr">
+ <div id="Capability.list_with_recursive" class="classattr">
<div class="attr variable">
- <span class="name">write_multi_max_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">list_with_recursive</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_multi_max_size"></a>
+ <a class="headerlink" href="#Capability.list_with_recursive"></a>
- <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
-
-<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
+ <div class="docstring"><p>If backend supports list without delimiter.</p>
</div>
</div>
- <div id="Capability.presign_write" class="classattr">
+ <div id="Capability.stat_with_if_none_match" class="classattr">
<div class="attr variable">
- <span class="name">presign_write</span><span class="annotation">: bool</span>
+ <span class="name">stat_with_if_none_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.presign_write"></a>
+ <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
- <div class="docstring"><p>If operator supports presign write.</p>
+ <div class="docstring"><p>If operator supports stat with if none match.</p>
</div>
</div>
- <div id="Capability.read_with_override_cache_control" class="classattr">
+ <div id="Capability.presign" class="classattr">
<div class="attr variable">
- <span class="name">read_with_override_cache_control</span><span class="annotation">: bool</span>
+ <span class="name">presign</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
+ <a class="headerlink" href="#Capability.presign"></a>
- <div class="docstring"><p>if operator supports read with override cache control.</p>
+ <div class="docstring"><p>If operator supports presign.</p>
</div>
@@ -1680,121 +1678,121 @@ by current Operator.</p>
</div>
- <div id="Capability.read_with_if_none_match" class="classattr">
+ <div id="Capability.write_multi_align_size" class="classattr">
<div class="attr variable">
- <span class="name">read_with_if_none_match</span><span class="annotation">: bool</span>
+ <span class="name">write_multi_align_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
+ <a class="headerlink" href="#Capability.write_multi_align_size"></a>
- <div class="docstring"><p>If operator supports read with if none match.</p>
+ <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
+
+<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
</div>
</div>
- <div id="Capability.stat_with_if_none_match" class="classattr">
+ <div id="Capability.write_with_content_disposition" class="classattr">
<div class="attr variable">
- <span class="name">stat_with_if_none_match</span><span class="annotation">: bool</span>
+ <span class="name">write_with_content_disposition</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
+ <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
- <div class="docstring"><p>If operator supports stat with if none match.</p>
+ <div class="docstring"><p>If operator supports write with content disposition.</p>
</div>
</div>
- <div id="Capability.write_multi_min_size" class="classattr">
+ <div id="Capability.copy" class="classattr">
<div class="attr variable">
- <span class="name">write_multi_min_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">copy</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_multi_min_size"></a>
+ <a class="headerlink" href="#Capability.copy"></a>
- <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
-
-<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
+ <div class="docstring"><p>If operator supports copy.</p>
</div>
</div>
- <div id="Capability.batch_max_operations" class="classattr">
+ <div id="Capability.presign_read" class="classattr">
<div class="attr variable">
- <span class="name">batch_max_operations</span><span class="annotation">: Optional[int]</span>
+ <span class="name">presign_read</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.batch_max_operations"></a>
+ <a class="headerlink" href="#Capability.presign_read"></a>
- <div class="docstring"><p>The max operations that operator supports in batch.</p>
+ <div class="docstring"><p>If operator supports presign read.</p>
</div>
</div>
- <div id="Capability.read_with_override_content_type" class="classattr">
+ <div id="Capability.batch_max_operations" class="classattr">
<div class="attr variable">
- <span class="name">read_with_override_content_type</span><span class="annotation">: bool</span>
+ <span class="name">batch_max_operations</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
+ <a class="headerlink" href="#Capability.batch_max_operations"></a>
- <div class="docstring"><p>if operator supports read with override content type.</p>
+ <div class="docstring"><p>The max operations that operator supports in batch.</p>
</div>
</div>
- <div id="Capability.rename" class="classattr">
+ <div id="Capability.create_dir" class="classattr">
<div class="attr variable">
- <span class="name">rename</span><span class="annotation">: bool</span>
+ <span class="name">create_dir</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.rename"></a>
+ <a class="headerlink" href="#Capability.create_dir"></a>
- <div class="docstring"><p>If operator supports rename.</p>
+ <div class="docstring"><p>If operator supports create dir.</p>
</div>
</div>
- <div id="Capability.write_can_empty" class="classattr">
+ <div id="Capability.write" class="classattr">
<div class="attr variable">
- <span class="name">write_can_empty</span><span class="annotation">: bool</span>
+ <span class="name">write</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_can_empty"></a>
+ <a class="headerlink" href="#Capability.write"></a>
- <div class="docstring"><p>If operator supports write with empty content.</p>
+ <div class="docstring"><p>If operator supports write.</p>
</div>
</div>
- <div id="Capability.presign_stat" class="classattr">
+ <div id="Capability.read_with_override_content_disposition" class="classattr">
<div class="attr variable">
- <span class="name">presign_stat</span><span class="annotation">: bool</span>
+ <span class="name">read_with_override_content_disposition</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.presign_stat"></a>
+ <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
- <div class="docstring"><p>If operator supports presign stat.</p>
+ <div class="docstring"><p>if operator supports read with override content disposition.</p>
</div>
</div>
- <div id="Capability.write" class="classattr">
+ <div id="Capability.write_can_multi" class="classattr">
<div class="attr variable">
- <span class="name">write</span><span class="annotation">: bool</span>
+ <span class="name">write_can_multi</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write"></a>
+ <a class="headerlink" href="#Capability.write_can_multi"></a>
- <div class="docstring"><p>If operator supports write.</p>
+ <div class="docstring"><p>If operator supports write can be called in multi times.</p>
</div>
@@ -1812,266 +1810,268 @@ by current Operator.</p>
</div>
- <div id="Capability.read_with_override_content_disposition" class="classattr">
+ <div id="Capability.stat" class="classattr">
<div class="attr variable">
- <span class="name">read_with_override_content_disposition</span><span class="annotation">: bool</span>
+ <span class="name">stat</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
+ <a class="headerlink" href="#Capability.stat"></a>
- <div class="docstring"><p>if operator supports read with override content disposition.</p>
+ <div class="docstring"><p>If operator supports stat.</p>
</div>
</div>
- <div id="Capability.write_with_cache_control" class="classattr">
+ <div id="Capability.read" class="classattr">
<div class="attr variable">
- <span class="name">write_with_cache_control</span><span class="annotation">: bool</span>
+ <span class="name">read</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_with_cache_control"></a>
+ <a class="headerlink" href="#Capability.read"></a>
- <div class="docstring"><p>If operator supports write with cache control.</p>
+ <div class="docstring"><p>If operator supports read.</p>
</div>
</div>
- <div id="Capability.list" class="classattr">
+ <div id="Capability.presign_stat" class="classattr">
<div class="attr variable">
- <span class="name">list</span><span class="annotation">: bool</span>
+ <span class="name">presign_stat</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.list"></a>
+ <a class="headerlink" href="#Capability.presign_stat"></a>
- <div class="docstring"><p>If operator supports list.</p>
+ <div class="docstring"><p>If operator supports presign stat.</p>
</div>
</div>
- <div id="Capability.list_with_recursive" class="classattr">
+ <div id="Capability.read_with_override_content_type" class="classattr">
<div class="attr variable">
- <span class="name">list_with_recursive</span><span class="annotation">: bool</span>
+ <span class="name">read_with_override_content_type</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.list_with_recursive"></a>
+ <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
- <div class="docstring"><p>If backend supports list without delimiter.</p>
+ <div class="docstring"><p>if operator supports read with override content type.</p>
</div>
</div>
- <div id="Capability.write_total_max_size" class="classattr">
+ <div id="Capability.read_with_if_none_match" class="classattr">
<div class="attr variable">
- <span class="name">write_total_max_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">read_with_if_none_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_total_max_size"></a>
+ <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
- <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
-
-<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
+ <div class="docstring"><p>If operator supports read with if none match.</p>
</div>
</div>
- <div id="Capability.presign" class="classattr">
+ <div id="Capability.list" class="classattr">
<div class="attr variable">
- <span class="name">presign</span><span class="annotation">: bool</span>
+ <span class="name">list</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.presign"></a>
+ <a class="headerlink" href="#Capability.list"></a>
- <div class="docstring"><p>If operator supports presign.</p>
+ <div class="docstring"><p>If operator supports list.</p>
</div>
</div>
- <div id="Capability.stat" class="classattr">
+ <div id="Capability.write_multi_max_size" class="classattr">
<div class="attr variable">
- <span class="name">stat</span><span class="annotation">: bool</span>
+ <span class="name">write_multi_max_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.stat"></a>
+ <a class="headerlink" href="#Capability.write_multi_max_size"></a>
- <div class="docstring"><p>If operator supports stat.</p>
+ <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
+
+<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
</div>
</div>
- <div id="Capability.batch" class="classattr">
+ <div id="Capability.write_can_empty" class="classattr">
<div class="attr variable">
- <span class="name">batch</span><span class="annotation">: bool</span>
+ <span class="name">write_can_empty</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.batch"></a>
+ <a class="headerlink" href="#Capability.write_can_empty"></a>
- <div class="docstring"><p>If operator supports batch.</p>
+ <div class="docstring"><p>If operator supports write with empty content.</p>
</div>
</div>
- <div id="Capability.read" class="classattr">
+ <div id="Capability.rename" class="classattr">
<div class="attr variable">
- <span class="name">read</span><span class="annotation">: bool</span>
+ <span class="name">rename</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.read"></a>
+ <a class="headerlink" href="#Capability.rename"></a>
- <div class="docstring"><p>If operator supports read.</p>
+ <div class="docstring"><p>If operator supports rename.</p>
</div>
</div>
- <div id="Capability.write_can_append" class="classattr">
+ <div id="Capability.presign_write" class="classattr">
<div class="attr variable">
- <span class="name">write_can_append</span><span class="annotation">: bool</span>
+ <span class="name">presign_write</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_can_append"></a>
+ <a class="headerlink" href="#Capability.presign_write"></a>
- <div class="docstring"><p>If operator supports write by append.</p>
+ <div class="docstring"><p>If operator supports presign write.</p>
</div>
</div>
- <div id="Capability.write_multi_align_size" class="classattr">
+ <div id="Capability.batch_delete" class="classattr">
<div class="attr variable">
- <span class="name">write_multi_align_size</span><span class="annotation">: Optional[int]</span>
+ <span class="name">batch_delete</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_multi_align_size"></a>
+ <a class="headerlink" href="#Capability.batch_delete"></a>
- <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
-
-<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
+ <div class="docstring"><p>If operator supports batch delete.</p>
</div>
</div>
- <div id="Capability.stat_with_if_match" class="classattr">
+ <div id="Capability.batch" class="classattr">
<div class="attr variable">
- <span class="name">stat_with_if_match</span><span class="annotation">: bool</span>
+ <span class="name">batch</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.stat_with_if_match"></a>
+ <a class="headerlink" href="#Capability.batch"></a>
- <div class="docstring"><p>If operator supports stat with if match.</p>
+ <div class="docstring"><p>If operator supports batch.</p>
</div>
</div>
- <div id="Capability.read_with_if_match" class="classattr">
+ <div id="Capability.write_multi_min_size" class="classattr">
<div class="attr variable">
- <span class="name">read_with_if_match</span><span class="annotation">: bool</span>
+ <span class="name">write_multi_min_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.read_with_if_match"></a>
+ <a class="headerlink" href="#Capability.write_multi_min_size"></a>
- <div class="docstring"><p>If operator supports read with if match.</p>
+ <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
+
+<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
</div>
</div>
- <div id="Capability.write_can_multi" class="classattr">
+ <div id="Capability.delete" class="classattr">
<div class="attr variable">
- <span class="name">write_can_multi</span><span class="annotation">: bool</span>
+ <span class="name">delete</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_can_multi"></a>
+ <a class="headerlink" href="#Capability.delete"></a>
- <div class="docstring"><p>If operator supports write can be called in multi times.</p>
+ <div class="docstring"><p>If operator supports delete.</p>
</div>
</div>
- <div id="Capability.write_with_content_type" class="classattr">
+ <div id="Capability.blocking" class="classattr">
<div class="attr variable">
- <span class="name">write_with_content_type</span><span class="annotation">: bool</span>
+ <span class="name">blocking</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_with_content_type"></a>
+ <a class="headerlink" href="#Capability.blocking"></a>
- <div class="docstring"><p>If operator supports write with content type.</p>
+ <div class="docstring"><p>If operator supports blocking.</p>
</div>
</div>
- <div id="Capability.write_with_content_disposition" class="classattr">
+ <div id="Capability.read_with_override_cache_control" class="classattr">
<div class="attr variable">
- <span class="name">write_with_content_disposition</span><span class="annotation">: bool</span>
+ <span class="name">read_with_override_cache_control</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
+ <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
- <div class="docstring"><p>If operator supports write with content disposition.</p>
+ <div class="docstring"><p>if operator supports read with override cache control.</p>
</div>
</div>
- <div id="Capability.create_dir" class="classattr">
+ <div id="Capability.read_with_if_match" class="classattr">
<div class="attr variable">
- <span class="name">create_dir</span><span class="annotation">: bool</span>
+ <span class="name">read_with_if_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.create_dir"></a>
+ <a class="headerlink" href="#Capability.read_with_if_match"></a>
- <div class="docstring"><p>If operator supports create dir.</p>
+ <div class="docstring"><p>If operator supports read with if match.</p>
</div>
</div>
- <div id="Capability.delete" class="classattr">
+ <div id="Capability.write_can_append" class="classattr">
<div class="attr variable">
- <span class="name">delete</span><span class="annotation">: bool</span>
+ <span class="name">write_can_append</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.delete"></a>
+ <a class="headerlink" href="#Capability.write_can_append"></a>
- <div class="docstring"><p>If operator supports delete.</p>
+ <div class="docstring"><p>If operator supports write by append.</p>
</div>
</div>
- <div id="Capability.copy" class="classattr">
+ <div id="Capability.write_total_max_size" class="classattr">
<div class="attr variable">
- <span class="name">copy</span><span class="annotation">: bool</span>
+ <span class="name">write_total_max_size</span><span class="annotation">: Optional[int]</span>
</div>
- <a class="headerlink" href="#Capability.copy"></a>
+ <a class="headerlink" href="#Capability.write_total_max_size"></a>
- <div class="docstring"><p>If operator supports copy.</p>
+ <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
+
+<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
</div>
</div>
- <div id="Capability.presign_read" class="classattr">
+ <div id="Capability.stat_with_if_match" class="classattr">
<div class="attr variable">
- <span class="name">presign_read</span><span class="annotation">: bool</span>
+ <span class="name">stat_with_if_match</span><span class="annotation">: bool</span>
</div>
- <a class="headerlink" href="#Capability.presign_read"></a>
+ <a class="headerlink" href="#Capability.stat_with_if_match"></a>
- <div class="docstring"><p>If operator supports presign read.</p>
+ <div class="docstring"><p>If operator supports stat with if match.</p>
</div>
diff --git a/docs/python/search.js b/docs/python/search.js
index 8a39940e81..a19cae16b7 100644
--- a/docs/python/search.js
+++ b/docs/python/search.js
@@ -1 +1 @@
-window.pdocSearch=function(){!function(){var a=function(e){var t=new a.Index;return t.pipeline.add(a.trimmer,a.stopWordFilter,a.stemmer),e&&e.call(t,t),t};a.version="0.9.5",lunr=a,a.utils={},a.utils.warn=function(a){return function(e){a.console&&console.warn&&console.warn(e)}}(this),a.utils.toString=function(a){return null==a?"":a.toString()},a.EventEmitter=function(){this.events={}},a.EventEmitter.prototype.addListener=function(){var a=Array.prototype.slice.call(arguments),e=a.pop(),t=a [...]
\ No newline at end of file
+window.pdocSearch=function(){!function(){var a=function(e){var t=new a.Index;return t.pipeline.add(a.trimmer,a.stopWordFilter,a.stemmer),e&&e.call(t,t),t};a.version="0.9.5",lunr=a,a.utils={},a.utils.warn=function(a){return function(e){a.console&&console.warn&&console.warn(e)}}(this),a.utils.toString=function(a){return null==a?"":a.toString()},a.EventEmitter=function(){this.events={}},a.EventEmitter.prototype.addListener=function(){var a=Array.prototype.slice.call(arguments),e=a.pop(),t=a [...]
\ No newline at end of file
diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html
index a509452fcb..98b13ed816 100644
--- a/docs/quickstart/index.html
+++ b/docs/quickstart/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Quickstart | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/quickstart"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/rust-core/index.html b/docs/rust-core/index.html
index 03a10c79c5..68cc344f39 100644
--- a/docs/rust-core/index.html
+++ b/docs/rust-core/index.html
@@ -6,7 +6,7 @@
<title data-rh="true">Rust Core | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/rust-core"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
<script src="/assets/js/runtime~main.72698383.js" defer="defer"></script>
-<script src="/assets/js/main.649bd06a.js" defer="defer"></script>
+<script src="/assets/js/main.aa3b0702.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/rust/opendal/all.html b/docs/rust/opendal/all.html
index 2442161734..b8aae8c270 100644
--- a/docs/rust/opendal/all.html
+++ b/docs/rust/opendal/all.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/changelog/index.html b/docs/rust/opendal/docs/changelog/index.html
index 8ff25dedc9..36dd5f4d13 100644
--- a/docs/rust/opendal/docs/changelog/index.html
+++ b/docs/rust/opendal/docs/changelog/index.html
@@ -1,10 +1,58 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Changes log for all OpenDAL released versions."><title>opendal::docs::changelog - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Changes log for all OpenDAL released versions."><title>opendal::docs::changelog - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
<h2 id="change-log"><a class="doc-anchor" href="#change-log">§</a>Change Log</h2>
<p>All notable changes to this project will be documented in this file.</p>
<p>The format is based on <a href="https://keepachangelog.com/">Keep a Changelog</a>
and this project adheres to <a href="https://semver.org/">Semantic Versioning</a>.</p>
<!-- Release notes generated using configuration in .github/release.yml at main -->
-<h3 id="v0470---2024-06-07"><a class="doc-anchor" href="#v0470---2024-06-07">§</a><a href="https://github.com/apache/opendal/compare/v0.46.0...v0.47.0">v0.47.0</a> - 2024-06-07</h3><h4 id="added"><a class="doc-anchor" href="#added">§</a>Added</h4>
+<h3 id="v0471---2024-06-18"><a class="doc-anchor" href="#v0471---2024-06-18">§</a><a href="https://github.com/apache/opendal/compare/v0.47.0...v0.47.1">v0.47.1</a> - 2024-06-18</h3><h4 id="added"><a class="doc-anchor" href="#added">§</a>Added</h4>
+<ul>
+<li>feat(core): sets default chunk_size and sends buffer > chunk_size directly by @evenyag in https://github.com/apache/opendal/pull/4710</li>
+<li>feat(services): add optional access_token for AliyunDrive by @yuchanns in https://github.com/apache/opendal/pull/4740</li>
+<li>feat(unftp-sbe): Add integration for unftp-sbe by @George-Miao in https://github.com/apache/opendal/pull/4753</li>
+</ul>
+<h4 id="changed"><a class="doc-anchor" href="#changed">§</a>Changed</h4>
+<ul>
+<li>refactor(ofs): Split fuse3 impl into fuse3_opendal by @Xuanwo in https://github.com/apache/opendal/pull/4721</li>
+<li>refactor(ovfs): Split ovfs impl into virtiofs_opendal by @zjregee in https://github.com/apache/opendal/pull/4723</li>
+<li>refactor(*): tiny refactor to the Error type by @waynexia in https://github.com/apache/opendal/pull/4737</li>
+<li>refactor(aliyun-drive): rewrite writer part by @yuchanns in https://github.com/apache/opendal/pull/4744</li>
+<li>refactor(object_store): Polish implementation details of object_store by @Xuanwo in https://github.com/apache/opendal/pull/4749</li>
+<li>refactor(dav-server): Polish dav-server integration details by @Xuanwo in https://github.com/apache/opendal/pull/4751</li>
+<li>refactor(core): Remove unused <code>size</code> for <code>RangeWrite</code>. by @reswqa in https://github.com/apache/opendal/pull/4755</li>
+</ul>
+<h4 id="fixed"><a class="doc-anchor" href="#fixed">§</a>Fixed</h4>
+<ul>
+<li>fix(s3): parse MultipartUploadResponse to check error in body by @waynexia in https://github.com/apache/opendal/pull/4735</li>
+<li>fix(services/aliyun-drive): unable to list <code>/</code> by @yuchanns in https://github.com/apache/opendal/pull/4754</li>
+</ul>
+<h4 id="docs"><a class="doc-anchor" href="#docs">§</a>Docs</h4>
+<ul>
+<li>docs: keep docs updated and tidy by @tisonkun in https://github.com/apache/opendal/pull/4709</li>
+<li>docs: fixup broken links by @tisonkun in https://github.com/apache/opendal/pull/4711</li>
+<li>docs(website): update release/verify docs by @suyanhanx in https://github.com/apache/opendal/pull/4714</li>
+<li>docs: Update release.md link correspondingly by @tisonkun in https://github.com/apache/opendal/pull/4717</li>
+<li>docs: update readme for fuse3_opendal & virtiofs_opendal by @zjregee in https://github.com/apache/opendal/pull/4730</li>
+<li>docs: Polish README and links to docs by @Xuanwo in https://github.com/apache/opendal/pull/4741</li>
+<li>docs: Enhance maintainability of the service section by @Xuanwo in https://github.com/apache/opendal/pull/4742</li>
+<li>docs: Polish opendal rust core README by @Xuanwo in https://github.com/apache/opendal/pull/4745</li>
+<li>docs: Refactor rust core examples by @Xuanwo in https://github.com/apache/opendal/pull/4757</li>
+</ul>
+<h4 id="ci"><a class="doc-anchor" href="#ci">§</a>CI</h4>
+<ul>
+<li>ci: verify build website on site content changes by @tisonkun in https://github.com/apache/opendal/pull/4712</li>
+<li>ci: Fix cert for redis and add docs for key maintenance by @Xuanwo in https://github.com/apache/opendal/pull/4718</li>
+</ul>
+<h4 id="chore"><a class="doc-anchor" href="#chore">§</a>Chore</h4>
+<ul>
+<li>chore: use more portable binutils by @tisonkun in https://github.com/apache/opendal/pull/4713</li>
+<li>chore(deps): bump clap from 4.5.6 to 4.5.7 in /bin/ofs by @dependabot in https://github.com/apache/opendal/pull/4728</li>
+<li>chore(deps): bump url from 2.5.0 to 2.5.1 in /bin/oay by @dependabot in https://github.com/apache/opendal/pull/4729</li>
+<li>chore(binding/python): Upgrade pyo3 to 0.21 by @reswqa in https://github.com/apache/opendal/pull/4734</li>
+<li>chore: Make 1.79 clippy happy by @Xuanwo in https://github.com/apache/opendal/pull/4731</li>
+<li>chore(docs): Add new line in lone services by @Xuanwo in https://github.com/apache/opendal/pull/4743</li>
+<li>chore: Bump versions to prepare v0.47.1 release by @Xuanwo in https://github.com/apache/opendal/pull/4759</li>
+</ul>
+<h3 id="v0470---2024-06-07"><a class="doc-anchor" href="#v0470---2024-06-07">§</a><a href="https://github.com/apache/opendal/compare/v0.46.0...v0.47.0">v0.47.0</a> - 2024-06-07</h3><h4 id="added-1"><a class="doc-anchor" href="#added-1">§</a>Added</h4>
<ul>
<li>feat(core/types): change oio::BlockingReader to <code>Arc<dyn oio::BlockingReader></code> by @hoslo in https://github.com/apache/opendal/pull/4577</li>
<li>fix: format_object_meta should not require metakeys that don’t exist by @rebasedming in https://github.com/apache/opendal/pull/4582</li>
@@ -26,7 +74,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(core): Add reader size check in complete reader by @Xuanwo in https://github.com/apache/opendal/pull/4690</li>
<li>feat(core): Azblob supports azure workload identity by @Xuanwo in https://github.com/apache/opendal/pull/4705</li>
</ul>
-<h4 id="changed"><a class="doc-anchor" href="#changed">§</a>Changed</h4>
+<h4 id="changed-1"><a class="doc-anchor" href="#changed-1">§</a>Changed</h4>
<ul>
<li>refactor(core): Align naming for <code>AccessorDyn</code> by @morristai in https://github.com/apache/opendal/pull/4574</li>
<li>refactor(core): core doesn’t expose invalid input error anymore by @Xuanwo in https://github.com/apache/opendal/pull/4632</li>
@@ -37,7 +85,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor(core): Use concurrent tasks to refactor block write by @Xuanwo in https://github.com/apache/opendal/pull/4692</li>
<li>refactor(core): Migrate RangeWrite to ConcurrentTasks by @Xuanwo in https://github.com/apache/opendal/pull/4696</li>
</ul>
-<h4 id="fixed"><a class="doc-anchor" href="#fixed">§</a>Fixed</h4>
+<h4 id="fixed-1"><a class="doc-anchor" href="#fixed-1">§</a>Fixed</h4>
<ul>
<li>fix(devcontainer/post_create.sh): change pnpm@stable to pnpm@latest by @GG2002 in https://github.com/apache/opendal/pull/4584</li>
<li>fix(bin/ofs): privileged mount crashes when external umount by @ho-229 in https://github.com/apache/opendal/pull/4586</li>
@@ -53,7 +101,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(core/prometheus): Fix metrics from prometheus not correct for reader by @Xuanwo in https://github.com/apache/opendal/pull/4691</li>
<li>fix(core/oio): Make ConcurrentTasks cancel safe by only pop after ready by @Xuanwo in https://github.com/apache/opendal/pull/4707</li>
</ul>
-<h4 id="docs"><a class="doc-anchor" href="#docs">§</a>Docs</h4>
+<h4 id="docs-1"><a class="doc-anchor" href="#docs-1">§</a>Docs</h4>
<ul>
<li>docs: fix Operator::writer doc comment by @mnpw in https://github.com/apache/opendal/pull/4605</li>
<li>doc: explain GCS authentication options by @jokester in https://github.com/apache/opendal/pull/4671</li>
@@ -61,14 +109,14 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: Add upgrade note for v0.47 by @Xuanwo in https://github.com/apache/opendal/pull/4698</li>
<li>docs: Add panics declare for TimeoutLayer and RetryLayer by @Xuanwo in https://github.com/apache/opendal/pull/4702</li>
</ul>
-<h4 id="ci"><a class="doc-anchor" href="#ci">§</a>CI</h4>
+<h4 id="ci-1"><a class="doc-anchor" href="#ci-1">§</a>CI</h4>
<ul>
<li>ci: upgrade typos to 1.21.0 and ignore changelog by @hezhizhen in https://github.com/apache/opendal/pull/4601</li>
<li>ci: Disable jfrog webdav tests for it’s keeping failed by @Xuanwo in https://github.com/apache/opendal/pull/4607</li>
<li>ci: use official typos github action by @shoothzj in https://github.com/apache/opendal/pull/4635</li>
<li>build(deps): upgrade crc32c to 0.6.6 for nightly toolchain by @tisonkun in https://github.com/apache/opendal/pull/4650</li>
</ul>
-<h4 id="chore"><a class="doc-anchor" href="#chore">§</a>Chore</h4>
+<h4 id="chore-1"><a class="doc-anchor" href="#chore-1">§</a>Chore</h4>
<ul>
<li>chore: fixup release docs and scripts by @tisonkun in https://github.com/apache/opendal/pull/4571</li>
<li>chore: Make rust 1.78 happy by @Xuanwo in https://github.com/apache/opendal/pull/4572</li>
@@ -85,7 +133,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore: bump version to 0.47.0 by @tisonkun in https://github.com/apache/opendal/pull/4701</li>
<li>chore: Update changelogs for v0.47 by @Xuanwo in https://github.com/apache/opendal/pull/4706</li>
</ul>
-<h3 id="v0460---2024-05-02"><a class="doc-anchor" href="#v0460---2024-05-02">§</a><a href="https://github.com/apache/opendal/compare/v0.45.1...v0.46.0">v0.46.0</a> - 2024-05-02</h3><h4 id="added-1"><a class="doc-anchor" href="#added-1">§</a>Added</h4>
+<h3 id="v0460---2024-05-02"><a class="doc-anchor" href="#v0460---2024-05-02">§</a><a href="https://github.com/apache/opendal/compare/v0.45.1...v0.46.0">v0.46.0</a> - 2024-05-02</h3><h4 id="added-2"><a class="doc-anchor" href="#added-2">§</a>Added</h4>
<ul>
<li>feat(services/github): add github contents support by @hoslo in https://github.com/apache/opendal/pull/4281</li>
<li>feat: Allow selecting webpki for reqwest by @arlyon in https://github.com/apache/opendal/pull/4303</li>
@@ -137,7 +185,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat: Add crc32c checksums to S3 Service by @JWackerbauer in https://github.com/apache/opendal/pull/4533</li>
<li>feat: Add into_bytes_sink for Writer by @Xuanwo in https://github.com/apache/opendal/pull/4541</li>
</ul>
-<h4 id="changed-1"><a class="doc-anchor" href="#changed-1">§</a>Changed</h4>
+<h4 id="changed-2"><a class="doc-anchor" href="#changed-2">§</a>Changed</h4>
<ul>
<li>refactor(core/raw): Migrate <code>oio::Read</code> to async in trait by @Xuanwo in https://github.com/apache/opendal/pull/4336</li>
<li>refactor(core/raw): Align oio::BlockingRead API with oio::Read by @Xuanwo in https://github.com/apache/opendal/pull/4349</li>
@@ -164,7 +212,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor(core): Migrate <code>Accessor</code> to async fn in trait by @George-Miao in https://github.com/apache/opendal/pull/4562</li>
<li>refactor(core): Align naming for <code>Accessor</code> by @George-Miao in https://github.com/apache/opendal/pull/4564</li>
</ul>
-<h4 id="fixed-1"><a class="doc-anchor" href="#fixed-1">§</a>Fixed</h4>
+<h4 id="fixed-2"><a class="doc-anchor" href="#fixed-2">§</a>Fixed</h4>
<ul>
<li>fix(bin/ofs): crashes when fh=None by @ho-229 in https://github.com/apache/opendal/pull/4297</li>
<li>fix(services/hdfs): fix poll_close when retry by @hoslo in https://github.com/apache/opendal/pull/4309</li>
@@ -189,7 +237,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(website): community sync calendar iframe by @suyanhanx in https://github.com/apache/opendal/pull/4549</li>
<li>fix: community sync calendar iframe load failed by @suyanhanx in https://github.com/apache/opendal/pull/4550</li>
</ul>
-<h4 id="docs-1"><a class="doc-anchor" href="#docs-1">§</a>Docs</h4>
+<h4 id="docs-2"><a class="doc-anchor" href="#docs-2">§</a>Docs</h4>
<ul>
<li>docs: Add gsoc proposal guide by @Xuanwo in https://github.com/apache/opendal/pull/4287</li>
<li>docs: Add blog for apache opendal participates in gsoc 2024 by @Xuanwo in https://github.com/apache/opendal/pull/4288</li>
@@ -213,7 +261,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: Add upgrade doc for rust core 0.46 by @Xuanwo in https://github.com/apache/opendal/pull/4543</li>
<li>docs: update the outdated download link by @suyanhanx in https://github.com/apache/opendal/pull/4546</li>
</ul>
-<h4 id="ci-1"><a class="doc-anchor" href="#ci-1">§</a>CI</h4>
+<h4 id="ci-2"><a class="doc-anchor" href="#ci-2">§</a>CI</h4>
<ul>
<li>ci(binding/java): Don’t create too many files in CI by @Xuanwo in https://github.com/apache/opendal/pull/4289</li>
<li>ci: Address Node.js 16 actions are deprecated by @Xuanwo in https://github.com/apache/opendal/pull/4293</li>
@@ -236,7 +284,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>build: staging website by @tisonkun in https://github.com/apache/opendal/pull/4565</li>
<li>build: fixup follow asfyaml rules by @tisonkun in https://github.com/apache/opendal/pull/4566</li>
</ul>
-<h4 id="chore-1"><a class="doc-anchor" href="#chore-1">§</a>Chore</h4>
+<h4 id="chore-2"><a class="doc-anchor" href="#chore-2">§</a>Chore</h4>
<ul>
<li>chore(deps): bump tempfile from 3.9.0 to 3.10.1 in /bin/oli by @dependabot in https://github.com/apache/opendal/pull/4298</li>
<li>chore(deps): bump wasm-bindgen-test from 0.3.40 to 0.3.41 in /core by @dependabot in https://github.com/apache/opendal/pull/4299</li>
@@ -268,7 +316,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore(deps): bump anyhow from 1.0.80 to 1.0.82 in /bin/oli by @dependabot in https://github.com/apache/opendal/pull/4559</li>
<li>chore(deps): bump libc from 0.2.153 to 0.2.154 in /bin/ofs by @dependabot in https://github.com/apache/opendal/pull/4558</li>
</ul>
-<h3 id="v0451---2024-02-22"><a class="doc-anchor" href="#v0451---2024-02-22">§</a><a href="https://github.com/apache/opendal/compare/v0.45.0...v0.45.1">v0.45.1</a> - 2024-02-22</h3><h4 id="added-2"><a class="doc-anchor" href="#added-2">§</a>Added</h4>
+<h3 id="v0451---2024-02-22"><a class="doc-anchor" href="#v0451---2024-02-22">§</a><a href="https://github.com/apache/opendal/compare/v0.45.0...v0.45.1">v0.45.1</a> - 2024-02-22</h3><h4 id="added-3"><a class="doc-anchor" href="#added-3">§</a>Added</h4>
<ul>
<li>feat(services/vercel_blob): support vercel blob by @hoslo in https://github.com/apache/opendal/pull/4103</li>
<li>feat(bindings/python): add ruff as linter by @asukaminato0721 in https://github.com/apache/opendal/pull/4135</li>
@@ -285,13 +333,13 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat: Implement Config for part of services by @Xuanwo in https://github.com/apache/opendal/pull/4277</li>
<li>feat: add jfrog test setup for webdav by @zjregee in https://github.com/apache/opendal/pull/4265</li>
</ul>
-<h4 id="changed-2"><a class="doc-anchor" href="#changed-2">§</a>Changed</h4>
+<h4 id="changed-3"><a class="doc-anchor" href="#changed-3">§</a>Changed</h4>
<ul>
<li>refactor(bindings/python): simplify async writer aexit by @suyanhanx in https://github.com/apache/opendal/pull/4128</li>
<li>refactor(service/d1): Add D1Config by @jihuayu in https://github.com/apache/opendal/pull/4129</li>
<li>refactor: Rewrite webdav to improve code quality by @Xuanwo in https://github.com/apache/opendal/pull/4280</li>
</ul>
-<h4 id="fixed-2"><a class="doc-anchor" href="#fixed-2">§</a>Fixed</h4>
+<h4 id="fixed-3"><a class="doc-anchor" href="#fixed-3">§</a>Fixed</h4>
<ul>
<li>fix: Azdls returns 403 while continuation contains <code>=</code> by @Xuanwo in https://github.com/apache/opendal/pull/4105</li>
<li>fix(bindings/python): missed to call close for the file internally by @zzl221000 in https://github.com/apache/opendal/pull/4122</li>
@@ -304,7 +352,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(services/webdav): Fix endpoint suffix not handled by @Xuanwo in https://github.com/apache/opendal/pull/4257</li>
<li>fix(services/webdav): Fix possible error with value loosing from config by @AJIOB in https://github.com/apache/opendal/pull/4262</li>
</ul>
-<h4 id="docs-2"><a class="doc-anchor" href="#docs-2">§</a>Docs</h4>
+<h4 id="docs-3"><a class="doc-anchor" href="#docs-3">§</a>Docs</h4>
<ul>
<li>docs: add request for add secrets of services by @suyanhanx in https://github.com/apache/opendal/pull/4104</li>
<li>docs(website): announce release v0.45.0 to news by @morristai in https://github.com/apache/opendal/pull/4152</li>
@@ -329,7 +377,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: Re-org project README by @Xuanwo in https://github.com/apache/opendal/pull/4260</li>
<li>docs: order the README <code>Who is using OpenDAL</code> list by @jbampton in https://github.com/apache/opendal/pull/4263</li>
</ul>
-<h4 id="ci-2"><a class="doc-anchor" href="#ci-2">§</a>CI</h4>
+<h4 id="ci-3"><a class="doc-anchor" href="#ci-3">§</a>CI</h4>
<ul>
<li>ci: Use old version of seafile mc instead by @Xuanwo in https://github.com/apache/opendal/pull/4107</li>
<li>ci: Refactor workflows layout by @Xuanwo in https://github.com/apache/opendal/pull/4139</li>
@@ -349,7 +397,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci(release): Make sure LICENSE and NOTICE files are included by @Xuanwo in https://github.com/apache/opendal/pull/4283</li>
<li>ci(release): Refactor and merge the check.py into verify.py by @Xuanwo in https://github.com/apache/opendal/pull/4284</li>
</ul>
-<h4 id="chore-2"><a class="doc-anchor" href="#chore-2">§</a>Chore</h4>
+<h4 id="chore-3"><a class="doc-anchor" href="#chore-3">§</a>Chore</h4>
<ul>
<li>chore(deps): bump actions/cache from 3 to 4 by @dependabot in https://github.com/apache/opendal/pull/4118</li>
<li>chore(deps): bump toml from 0.8.8 to 0.8.9 by @dependabot in https://github.com/apache/opendal/pull/4109</li>
@@ -371,7 +419,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore(deps): bump anyhow from 1.0.79 to 1.0.80 in /bin/oli by @dependabot in https://github.com/apache/opendal/pull/4216</li>
<li>chore(deps): bump cacache from 12.0.0 to 13.0.0 in /core by @dependabot in https://github.com/apache/opendal/pull/4215</li>
</ul>
-<h3 id="v0450---2024-01-29"><a class="doc-anchor" href="#v0450---2024-01-29">§</a><a href="https://github.com/apache/opendal/compare/v0.44.2...v0.45.0">v0.45.0</a> - 2024-01-29</h3><h4 id="added-3"><a class="doc-anchor" href="#added-3">§</a>Added</h4>
+<h3 id="v0450---2024-01-29"><a class="doc-anchor" href="#v0450---2024-01-29">§</a><a href="https://github.com/apache/opendal/compare/v0.44.2...v0.45.0">v0.45.0</a> - 2024-01-29</h3><h4 id="added-4"><a class="doc-anchor" href="#added-4">§</a>Added</h4>
<ul>
<li>feat(ofs): introduce ofs execute bin by @oowl in https://github.com/apache/opendal/pull/4033</li>
<li>feat: add a missing news by @WenyXu in https://github.com/apache/opendal/pull/4056</li>
@@ -379,11 +427,11 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(layers/dtrace): Support User Statically-Defined Tracing(aka USDT) on Linux by @Zheaoli in https://github.com/apache/opendal/pull/4053</li>
<li>feat(website): add missing news and organize the onboarding guide by @morristai in https://github.com/apache/opendal/pull/4072</li>
</ul>
-<h4 id="changed-3"><a class="doc-anchor" href="#changed-3">§</a>Changed</h4>
+<h4 id="changed-4"><a class="doc-anchor" href="#changed-4">§</a>Changed</h4>
<ul>
<li>refactor!: avoid hard dep to tokio rt by @tisonkun in https://github.com/apache/opendal/pull/4061</li>
</ul>
-<h4 id="fixed-3"><a class="doc-anchor" href="#fixed-3">§</a>Fixed</h4>
+<h4 id="fixed-4"><a class="doc-anchor" href="#fixed-4">§</a>Fixed</h4>
<ul>
<li>fix(examples/cpp): display the results to standard output. by @SYaoJun in https://github.com/apache/opendal/pull/4040</li>
<li>fix(service/icloud):Missing ‘X-APPLE-WEBAUTH-USER cookie’ and URL initialized failed by @bokket in https://github.com/apache/opendal/pull/4029</li>
@@ -392,7 +440,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(seafile): test_list_dir_with_metakey by @hoslo in https://github.com/apache/opendal/pull/4063</li>
<li>fix: list path recursive should not return path itself by @youngsofun in https://github.com/apache/opendal/pull/4067</li>
</ul>
-<h4 id="docs-3"><a class="doc-anchor" href="#docs-3">§</a>Docs</h4>
+<h4 id="docs-4"><a class="doc-anchor" href="#docs-4">§</a>Docs</h4>
<ul>
<li>docs: Remove not needed actions in release guide by @Xuanwo in https://github.com/apache/opendal/pull/4037</li>
<li>docs: fix spelling errors in README.md by @SYaoJun in https://github.com/apache/opendal/pull/4039</li>
@@ -400,12 +448,12 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: New Committer Yang Shuai by @Xuanwo in https://github.com/apache/opendal/pull/4054</li>
<li>docs(services/sftp): add more explanation for endpoint config by @silver-ymz in https://github.com/apache/opendal/pull/4055</li>
</ul>
-<h4 id="ci-3"><a class="doc-anchor" href="#ci-3">§</a>CI</h4>
+<h4 id="ci-4"><a class="doc-anchor" href="#ci-4">§</a>CI</h4>
<ul>
<li>ci(services/s3): Use minio/minio image instead by @Xuanwo in https://github.com/apache/opendal/pull/4070</li>
<li>ci: Fix CI after moving out of workspacs by @Xuanwo in https://github.com/apache/opendal/pull/4081</li>
</ul>
-<h4 id="chore-3"><a class="doc-anchor" href="#chore-3">§</a>Chore</h4>
+<h4 id="chore-4"><a class="doc-anchor" href="#chore-4">§</a>Chore</h4>
<ul>
<li>chore: Delete bindings/ruby/cucumber.yml by @tisonkun in https://github.com/apache/opendal/pull/4030</li>
<li>chore(website): Bump download link for 0.44.2 release by @Zheaoli in https://github.com/apache/opendal/pull/4034</li>
@@ -416,7 +464,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore(bindings/dotnet): build os detect by @suyanhanx in https://github.com/apache/opendal/pull/4085</li>
<li>chore(bindings/ocaml): pinning OCaml binding opendal version for release by @Ranxy in https://github.com/apache/opendal/pull/4086</li>
</ul>
-<h3 id="v0442---2023-01-19"><a class="doc-anchor" href="#v0442---2023-01-19">§</a><a href="https://github.com/apache/opendal/compare/v0.44.1...v0.44.2">v0.44.2</a> - 2023-01-19</h3><h4 id="added-4"><a class="doc-anchor" href="#added-4">§</a>Added</h4>
+<h3 id="v0442---2023-01-19"><a class="doc-anchor" href="#v0442---2023-01-19">§</a><a href="https://github.com/apache/opendal/compare/v0.44.1...v0.44.2">v0.44.2</a> - 2023-01-19</h3><h4 id="added-5"><a class="doc-anchor" href="#added-5">§</a>Added</h4>
<ul>
<li>feat: add behavior tests for blocking buffer reader by @WenyXu in https://github.com/apache/opendal/pull/3872</li>
<li>feat(services): add pcloud support by @hoslo in https://github.com/apache/opendal/pull/3892</li>
@@ -443,7 +491,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(services): add koofr support by @hoslo in https://github.com/apache/opendal/pull/3981</li>
<li>feat(icloud): Add basic Apple iCloud Drive support by @bokket in https://github.com/apache/opendal/pull/3980</li>
</ul>
-<h4 id="changed-4"><a class="doc-anchor" href="#changed-4">§</a>Changed</h4>
+<h4 id="changed-5"><a class="doc-anchor" href="#changed-5">§</a>Changed</h4>
<ul>
<li>refactor: Merge compose_{read,write} into enum_utils by @Xuanwo in https://github.com/apache/opendal/pull/3871</li>
<li>refactor(services/ftp): Impl parse_error instead of <code>From<Error></code> by @bokket in https://github.com/apache/opendal/pull/3891</li>
@@ -461,7 +509,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor: Add concurrent error test for BlockWrite by @Xuanwo in https://github.com/apache/opendal/pull/3968</li>
<li>refactor: Remove not needed types in icloud by @Xuanwo in https://github.com/apache/opendal/pull/4021</li>
</ul>
-<h4 id="fixed-4"><a class="doc-anchor" href="#fixed-4">§</a>Fixed</h4>
+<h4 id="fixed-5"><a class="doc-anchor" href="#fixed-5">§</a>Fixed</h4>
<ul>
<li>fix: Bump pyo3 to fix false positive of unnecessary_fallible_conversions by @Xuanwo in https://github.com/apache/opendal/pull/3873</li>
<li>fix(core): Handling content encoding correctly by @Xuanwo in https://github.com/apache/opendal/pull/3907</li>
@@ -474,7 +522,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(pcloud,seafile): use get_basename and get_parent by @hoslo in https://github.com/apache/opendal/pull/4020</li>
<li>fix(ci): remove pr author from review candidates by @dqhl76 in https://github.com/apache/opendal/pull/4023</li>
</ul>
-<h4 id="docs-4"><a class="doc-anchor" href="#docs-4">§</a>Docs</h4>
+<h4 id="docs-5"><a class="doc-anchor" href="#docs-5">§</a>Docs</h4>
<ul>
<li>docs(bindings/python): drop unnecessary patchelf by @tisonkun in https://github.com/apache/opendal/pull/3889</li>
<li>docs: Polish core’s quick start by @Xuanwo in https://github.com/apache/opendal/pull/3896</li>
@@ -495,7 +543,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: Update release guide to adapt as a new TLP by @Xuanwo in https://github.com/apache/opendal/pull/4011</li>
<li>docs: Add WebHDFS version compatibility details by @shbhmrzd in https://github.com/apache/opendal/pull/4024</li>
</ul>
-<h4 id="ci-4"><a class="doc-anchor" href="#ci-4">§</a>CI</h4>
+<h4 id="ci-5"><a class="doc-anchor" href="#ci-5">§</a>CI</h4>
<ul>
<li>build(deps): bump actions/download-artifact from 3 to 4 by @dependabot in https://github.com/apache/opendal/pull/3885</li>
<li>build(deps): bump once_cell from 1.18.0 to 1.19.0 by @dependabot in https://github.com/apache/opendal/pull/3880</li>
@@ -507,7 +555,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci: Refactor fuzz to integrate with test planner by @Xuanwo in https://github.com/apache/opendal/pull/3936</li>
<li>ci: Pick random reviewers from committer list by @Xuanwo in https://github.com/apache/opendal/pull/4001</li>
</ul>
-<h4 id="chore-4"><a class="doc-anchor" href="#chore-4">§</a>Chore</h4>
+<h4 id="chore-5"><a class="doc-anchor" href="#chore-5">§</a>Chore</h4>
<ul>
<li>chore: update release related docs and script by @dqhl76 in https://github.com/apache/opendal/pull/3870</li>
<li>chore(NOTICE): update copyright to year 2024 by @suyanhanx in https://github.com/apache/opendal/pull/3894</li>
@@ -526,7 +574,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore: fixup doc link in release_java.yml by @tisonkun in https://github.com/apache/opendal/pull/4019</li>
<li>chore: simplify reviewer candidates logic by @tisonkun in https://github.com/apache/opendal/pull/4017</li>
</ul>
-<h3 id="v0441---2023-12-31"><a class="doc-anchor" href="#v0441---2023-12-31">§</a><a href="https://github.com/apache/opendal/compare/v0.44.0...v0.44.1">v0.44.1</a> - 2023-12-31</h3><h4 id="added-5"><a class="doc-anchor" href="#added-5">§</a>Added</h4>
+<h3 id="v0441---2023-12-31"><a class="doc-anchor" href="#v0441---2023-12-31">§</a><a href="https://github.com/apache/opendal/compare/v0.44.0...v0.44.1">v0.44.1</a> - 2023-12-31</h3><h4 id="added-6"><a class="doc-anchor" href="#added-6">§</a>Added</h4>
<ul>
<li>feat(service/memcached): Add MemCachedConfig by @ankit-pn in https://github.com/apache/opendal/pull/3827</li>
<li>feat(service/rocksdb): Add RocksdbConfig by @ankit-pn in https://github.com/apache/opendal/pull/3828</li>
@@ -540,21 +588,21 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat: add fuzz reader with buffer tests by @WenyXu in https://github.com/apache/opendal/pull/3866</li>
<li>feat(ofs): implement ofs based on fuse3 by @Inokinoki in https://github.com/apache/opendal/pull/3857</li>
</ul>
-<h4 id="changed-5"><a class="doc-anchor" href="#changed-5">§</a>Changed</h4>
+<h4 id="changed-6"><a class="doc-anchor" href="#changed-6">§</a>Changed</h4>
<ul>
<li>refactor: simplify <code>bindings_python.yml</code> by @messense in https://github.com/apache/opendal/pull/3837</li>
<li>refactor: Add edge test for aws assume role with web identity by @Xuanwo in https://github.com/apache/opendal/pull/3839</li>
<li>refactor(services/webdav): Add WebdavConfig to implement ConfigDeserializer by @kwaa in https://github.com/apache/opendal/pull/3846</li>
<li>refactor: use TwoWays instead of TwoWaysReader and TwoWaysWriter by @WenyXu in https://github.com/apache/opendal/pull/3863</li>
</ul>
-<h4 id="fixed-5"><a class="doc-anchor" href="#fixed-5">§</a>Fixed</h4>
+<h4 id="fixed-6"><a class="doc-anchor" href="#fixed-6">§</a>Fixed</h4>
<ul>
<li>fix: Add tests for listing recursively on not supported services by @Xuanwo in https://github.com/apache/opendal/pull/3826</li>
<li>fix(services/upyun): fix list api by @hoslo in https://github.com/apache/opendal/pull/3841</li>
<li>fix: fix a bypass seek relative bug in <code>BufferReader</code> by @WenyXu in https://github.com/apache/opendal/pull/3864</li>
<li>fix: fix the bypass read does not sync the <code>cur</code> of <code>BufferReader</code> by @WenyXu in https://github.com/apache/opendal/pull/3865</li>
</ul>
-<h4 id="docs-5"><a class="doc-anchor" href="#docs-5">§</a>Docs</h4>
+<h4 id="docs-6"><a class="doc-anchor" href="#docs-6">§</a>Docs</h4>
<ul>
<li>docs: Add Apache prefix for all bindings by @Xuanwo in https://github.com/apache/opendal/pull/3829</li>
<li>docs: Add apache prefix for python docs by @Xuanwo in https://github.com/apache/opendal/pull/3830</li>
@@ -565,12 +613,12 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: Address branding for haskell and C bindings by @Xuanwo in https://github.com/apache/opendal/pull/3840</li>
<li>doc: add 0.44.0 release link to download.md by @dqhl76 in https://github.com/apache/opendal/pull/3868</li>
</ul>
-<h4 id="ci-5"><a class="doc-anchor" href="#ci-5">§</a>CI</h4>
+<h4 id="ci-6"><a class="doc-anchor" href="#ci-6">§</a>CI</h4>
<ul>
<li>ci: Remove workflows that not running or ready by @Xuanwo in https://github.com/apache/opendal/pull/3842</li>
<li>ci: Migrate ftp to test planner by @Xuanwo in https://github.com/apache/opendal/pull/3843</li>
</ul>
-<h4 id="chore-5"><a class="doc-anchor" href="#chore-5">§</a>Chore</h4>
+<h4 id="chore-6"><a class="doc-anchor" href="#chore-6">§</a>Chore</h4>
<ul>
<li>chore(bindings/java): Add name and description metadata by @tisonkun in https://github.com/apache/opendal/pull/3838</li>
<li>chore(website): improve a bit trademark refs by @tisonkun in https://github.com/apache/opendal/pull/3847</li>
@@ -580,7 +628,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore(bindings/c): make c binding separate workspace by @suyanhanx in https://github.com/apache/opendal/pull/3856</li>
<li>chore(bindings/haskell): support co-log-0.6.0 && ghc-9.4 by @silver-ymz in https://github.com/apache/opendal/pull/3858</li>
</ul>
-<h3 id="v0440---2023-12-26"><a class="doc-anchor" href="#v0440---2023-12-26">§</a><a href="https://github.com/apache/opendal/compare/v0.43.0...v0.44.0">v0.44.0</a> - 2023-12-26</h3><h4 id="added-6"><a class="doc-anchor" href="#added-6">§</a>Added</h4>
+<h3 id="v0440---2023-12-26"><a class="doc-anchor" href="#v0440---2023-12-26">§</a><a href="https://github.com/apache/opendal/compare/v0.43.0...v0.44.0">v0.44.0</a> - 2023-12-26</h3><h4 id="added-7"><a class="doc-anchor" href="#added-7">§</a>Added</h4>
<ul>
<li>feat(core): service add HuggingFace file system by @morristai in https://github.com/apache/opendal/pull/3670</li>
<li>feat(service/moka): bump moka from 0.10.4 to 0.12.1 by @G-XD in https://github.com/apache/opendal/pull/3711</li>
@@ -601,7 +649,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat: make services-gdrive compile for wasm target by @Young-Flash in https://github.com/apache/opendal/pull/3808</li>
<li>feat(core): Make gcs available on wasm32 arch by @Xuanwo in https://github.com/apache/opendal/pull/3816</li>
</ul>
-<h4 id="changed-6"><a class="doc-anchor" href="#changed-6">§</a>Changed</h4>
+<h4 id="changed-7"><a class="doc-anchor" href="#changed-7">§</a>Changed</h4>
<ul>
<li>refactor(service/etcd): use EtcdConfig in from_map by @G-XD in https://github.com/apache/opendal/pull/3703</li>
<li>refactor(object_store): upgrade object_store to 0.7. by @youngsofun in https://github.com/apache/opendal/pull/3713</li>
@@ -615,7 +663,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor(raw): refactor APIs like parse_content_disposition by @hoslo in https://github.com/apache/opendal/pull/3815</li>
<li>refactor: Polish http_util parse headers by @Xuanwo in https://github.com/apache/opendal/pull/3817</li>
</ul>
-<h4 id="fixed-6"><a class="doc-anchor" href="#fixed-6">§</a>Fixed</h4>
+<h4 id="fixed-7"><a class="doc-anchor" href="#fixed-7">§</a>Fixed</h4>
<ul>
<li>fix(oli): Fix cp -r command returns invalid path error by @kebe7jun in https://github.com/apache/opendal/pull/3687</li>
<li>fix(website): folder name mismatch by @suyanhanx in https://github.com/apache/opendal/pull/3707</li>
@@ -626,7 +674,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(services/gdrive): fix return value of <code>get_file_id_by_path</code> by @G-XD in https://github.com/apache/opendal/pull/3801</li>
<li>fix(core): List root should not return itself by @Xuanwo in https://github.com/apache/opendal/pull/3824</li>
</ul>
-<h4 id="docs-6"><a class="doc-anchor" href="#docs-6">§</a>Docs</h4>
+<h4 id="docs-7"><a class="doc-anchor" href="#docs-7">§</a>Docs</h4>
<ul>
<li>docs: add maturity model check by @suyanhanx in https://github.com/apache/opendal/pull/3680</li>
<li>docs(website): show maturity model by @suyanhanx in https://github.com/apache/opendal/pull/3709</li>
@@ -645,7 +693,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs(website): add service Huggingface to website by @morristai in https://github.com/apache/opendal/pull/3812</li>
<li>docs: update release docs to add cargo-deny setup by @dqhl76 in https://github.com/apache/opendal/pull/3821</li>
</ul>
-<h4 id="ci-6"><a class="doc-anchor" href="#ci-6">§</a>CI</h4>
+<h4 id="ci-7"><a class="doc-anchor" href="#ci-7">§</a>CI</h4>
<ul>
<li>build(deps): bump cacache from 11.7.1 to 12.0.0 by @dependabot in https://github.com/apache/opendal/pull/3690</li>
<li>build(deps): bump prometheus-client from 0.21.2 to 0.22.0 by @dependabot in https://github.com/apache/opendal/pull/3694</li>
@@ -655,7 +703,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci: Workaround ring 0.17 build issue, bring aarch64 and armv7l back by @Xuanwo in https://github.com/apache/opendal/pull/3781</li>
<li>ci: Support CI test for s3_read_on_wasm by @Zheaoli in https://github.com/apache/opendal/pull/3813</li>
</ul>
-<h4 id="chore-6"><a class="doc-anchor" href="#chore-6">§</a>Chore</h4>
+<h4 id="chore-7"><a class="doc-anchor" href="#chore-7">§</a>Chore</h4>
<ul>
<li>chore: bump aws-sdk-s3 from 0.38.0 to 1.4.0 by @memoryFade in https://github.com/apache/opendal/pull/3704</li>
<li>chore: Disable obs test for workaround by @Xuanwo in https://github.com/apache/opendal/pull/3717</li>
@@ -671,7 +719,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore: Address comments from hackernews by @Xuanwo in https://github.com/apache/opendal/pull/3805</li>
<li>chore(bindings/ocaml): dep opendal point to core by @suyanhanx in https://github.com/apache/opendal/pull/3814</li>
</ul>
-<h3 id="v0430---2023-11-30"><a class="doc-anchor" href="#v0430---2023-11-30">§</a><a href="https://github.com/apache/opendal/compare/v0.42.0...v0.43.0">v0.43.0</a> - 2023-11-30</h3><h4 id="added-7"><a class="doc-anchor" href="#added-7">§</a>Added</h4>
+<h3 id="v0430---2023-11-30"><a class="doc-anchor" href="#v0430---2023-11-30">§</a><a href="https://github.com/apache/opendal/compare/v0.42.0...v0.43.0">v0.43.0</a> - 2023-11-30</h3><h4 id="added-8"><a class="doc-anchor" href="#added-8">§</a>Added</h4>
<ul>
<li>feat(bindings/C): Add opendal_operator_rename and opendal_operator_copy by @jiaoew1991 in https://github.com/apache/opendal/pull/3517</li>
<li>feat(binding/python): Add new API to convert between AsyncOperator and Operator by @Zheaoli in https://github.com/apache/opendal/pull/3514</li>
@@ -693,7 +741,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat: disable <code>ftp</code> for python and java binding by @ZutJoe in https://github.com/apache/opendal/pull/3659</li>
<li>feat(bindings/nodejs): read/write stream by @suyanhanx in https://github.com/apache/opendal/pull/3619</li>
</ul>
-<h4 id="changed-7"><a class="doc-anchor" href="#changed-7">§</a>Changed</h4>
+<h4 id="changed-8"><a class="doc-anchor" href="#changed-8">§</a>Changed</h4>
<ul>
<li>refactor(services/persy): migrate tot test planner by @G-XD in https://github.com/apache/opendal/pull/3476</li>
<li>refactor(service/etcd): Add EtcdConfig to implement ConfigDeserializer by @Xuxiaotuan in https://github.com/apache/opendal/pull/3543</li>
@@ -710,7 +758,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor(services/azfile): Check if dir exists before create by @ZutJoe in https://github.com/apache/opendal/pull/3652</li>
<li>refactor: Polish concurrent list by @Xuanwo in https://github.com/apache/opendal/pull/3658</li>
</ul>
-<h4 id="fixed-7"><a class="doc-anchor" href="#fixed-7">§</a>Fixed</h4>
+<h4 id="fixed-8"><a class="doc-anchor" href="#fixed-8">§</a>Fixed</h4>
<ul>
<li>fix(bindings/python): Fix the test command in doc by @Justin-Xiang in https://github.com/apache/opendal/pull/3541</li>
<li>fix(ci): try enable corepack before setup-node action by @suyanhanx in https://github.com/apache/opendal/pull/3609</li>
@@ -719,7 +767,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(core): Path in remove not normalized by @Xuanwo in https://github.com/apache/opendal/pull/3671</li>
<li>fix(core): Build with redis features and Rust < 1.72 by @vincentdephily in https://github.com/apache/opendal/pull/3683</li>
</ul>
-<h4 id="docs-7"><a class="doc-anchor" href="#docs-7">§</a>Docs</h4>
+<h4 id="docs-8"><a class="doc-anchor" href="#docs-8">§</a>Docs</h4>
<ul>
<li>docs: Add questdb in users list by @caicancai in https://github.com/apache/opendal/pull/3532</li>
<li>docs: Add macos specific doc updates for hdfs by @shbhmrzd in https://github.com/apache/opendal/pull/3559</li>
@@ -727,7 +775,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs(bindings/java): add basic usage in README by @caicancai in https://github.com/apache/opendal/pull/3534</li>
<li>doc: add 0.42.0 release link to download.md by @silver-ymz in https://github.com/apache/opendal/pull/3598</li>
</ul>
-<h4 id="ci-7"><a class="doc-anchor" href="#ci-7">§</a>CI</h4>
+<h4 id="ci-8"><a class="doc-anchor" href="#ci-8">§</a>CI</h4>
<ul>
<li>ci(services/libsql): add rust test threads limit by @G-XD in https://github.com/apache/opendal/pull/3540</li>
<li>ci(services/redb): migrate to test planner by @suyanhanx in https://github.com/apache/opendal/pull/3518</li>
@@ -745,7 +793,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci(java/binding): Use zigbuild for glibc 2.17 support by @Xuanwo in https://github.com/apache/opendal/pull/3664</li>
<li>ci(bindings/python): remove aarch support by @G-XD in https://github.com/apache/opendal/pull/3674</li>
</ul>
-<h4 id="chore-7"><a class="doc-anchor" href="#chore-7">§</a>Chore</h4>
+<h4 id="chore-8"><a class="doc-anchor" href="#chore-8">§</a>Chore</h4>
<ul>
<li>chore(servies/sftp): Upgrade openssh-sftp-client to 0.14 by @sd44 in https://github.com/apache/opendal/pull/3538</li>
<li>chore(service/tikv): rename Backend to TikvBackend by @caicancai in https://github.com/apache/opendal/pull/3545</li>
@@ -771,7 +819,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore: add license.workspace to help cargo deny reports by @tisonkun in https://github.com/apache/opendal/pull/3679</li>
<li>chore: clearer doc for list metakey by @wcy-fdu in https://github.com/apache/opendal/pull/3666</li>
</ul>
-<h3 id="v0420---2023-11-07"><a class="doc-anchor" href="#v0420---2023-11-07">§</a><a href="https://github.com/apache/opendal/compare/v0.41.0...v0.42.0">v0.42.0</a> - 2023-11-07</h3><h4 id="added-8"><a class="doc-anchor" href="#added-8">§</a>Added</h4>
+<h3 id="v0420---2023-11-07"><a class="doc-anchor" href="#v0420---2023-11-07">§</a><a href="https://github.com/apache/opendal/compare/v0.41.0...v0.42.0">v0.42.0</a> - 2023-11-07</h3><h4 id="added-9"><a class="doc-anchor" href="#added-9">§</a>Added</h4>
<ul>
<li>feat(binding/java): add <code>rename</code> support by @G-XD in https://github.com/apache/opendal/pull/3238</li>
<li>feat(prometheus): add bytes metrics as counter by @flaneur2020 in https://github.com/apache/opendal/pull/3246</li>
@@ -829,7 +877,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(services): add RedisConfig by @hoslo in https://github.com/apache/opendal/pull/3498</li>
<li>feat: Add opendal_metadata_last_modified and opendal_operator_create_dir by @jiaoew1991 in https://github.com/apache/opendal/pull/3515</li>
</ul>
-<h4 id="changed-8"><a class="doc-anchor" href="#changed-8">§</a>Changed</h4>
+<h4 id="changed-9"><a class="doc-anchor" href="#changed-9">§</a>Changed</h4>
<ul>
<li>refactor(services/sqlite): Polish sqlite via adding connection pool by @Xuanwo in https://github.com/apache/opendal/pull/3249</li>
<li>refactor: Remove cucumber based test in python by @laipz8200 in https://github.com/apache/opendal/pull/3253</li>
@@ -882,7 +930,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor(service/sftp): Add SftpConfig to implement ConfigDeserializer by @sd44 in https://github.com/apache/opendal/pull/3511</li>
<li>refactor(service/tikv): Add TikvConfig to implement ConfigDeserializer by @caicancai in https://github.com/apache/opendal/pull/3512</li>
</ul>
-<h4 id="fixed-8"><a class="doc-anchor" href="#fixed-8">§</a>Fixed</h4>
+<h4 id="fixed-9"><a class="doc-anchor" href="#fixed-9">§</a>Fixed</h4>
<ul>
<li>fix: Fix read result not full by @jiaoew1991 in https://github.com/apache/opendal/pull/3350</li>
<li>fix(services/cos): fix prefix param by @G-XD in https://github.com/apache/opendal/pull/3384</li>
@@ -895,7 +943,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(bindings/python): fix type annotations and improve docs by @messense in https://github.com/apache/opendal/pull/3483</li>
<li>fix(services/dropbox): Check if folder exists before calling create dir by @leenstx in https://github.com/apache/opendal/pull/3513</li>
</ul>
-<h4 id="docs-8"><a class="doc-anchor" href="#docs-8">§</a>Docs</h4>
+<h4 id="docs-9"><a class="doc-anchor" href="#docs-9">§</a>Docs</h4>
<ul>
<li>docs: Add docs in website for sqlite/mysql/postgresql services by @Zheaoli in https://github.com/apache/opendal/pull/3290</li>
<li>docs: add docs in website for atomicserver by @Zheaoli in https://github.com/apache/opendal/pull/3293</li>
@@ -917,7 +965,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs(readme): Fix capitalization about the ABFS service in README.md by @caicancai in https://github.com/apache/opendal/pull/3485</li>
<li>docs: Add Milvus as C binding’s user by @Xuanwo in https://github.com/apache/opendal/pull/3523</li>
</ul>
-<h4 id="ci-8"><a class="doc-anchor" href="#ci-8">§</a>CI</h4>
+<h4 id="ci-9"><a class="doc-anchor" href="#ci-9">§</a>CI</h4>
<ul>
<li>ci: Add bindings_go workflow by @jiaoew1991 in https://github.com/apache/opendal/pull/3260</li>
<li>ci: Only fetch origin while in pull request by @Xuanwo in https://github.com/apache/opendal/pull/3268</li>
@@ -937,7 +985,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>build(bindings/java): Allow building on <code>linux-aarch_64</code> by @amunra in https://github.com/apache/opendal/pull/3527</li>
<li>ci: support behavior test for gridfs by @realtaobo in https://github.com/apache/opendal/pull/3520</li>
</ul>
-<h4 id="chore-8"><a class="doc-anchor" href="#chore-8">§</a>Chore</h4>
+<h4 id="chore-9"><a class="doc-anchor" href="#chore-9">§</a>Chore</h4>
<ul>
<li>chore(ci): publish to pypi with github OIDC credential by @everpcpc in https://github.com/apache/opendal/pull/3252</li>
<li>chore(bindings/java): align mapping POJO pattern by @tisonkun in https://github.com/apache/opendal/pull/3289</li>
@@ -964,7 +1012,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore: add updated Cargo.toml to git archive by @silver-ymz in https://github.com/apache/opendal/pull/3525</li>
<li>chore(bindings/java): improve build.py script by @tisonkun in https://github.com/apache/opendal/pull/3529</li>
</ul>
-<h3 id="v0410---2023-10-08"><a class="doc-anchor" href="#v0410---2023-10-08">§</a><a href="https://github.com/apache/opendal/compare/v0.40.0...v0.41.0">v0.41.0</a> - 2023-10-08</h3><h4 id="added-9"><a class="doc-anchor" href="#added-9">§</a>Added</h4>
+<h3 id="v0410---2023-10-08"><a class="doc-anchor" href="#v0410---2023-10-08">§</a><a href="https://github.com/apache/opendal/compare/v0.40.0...v0.41.0">v0.41.0</a> - 2023-10-08</h3><h4 id="added-10"><a class="doc-anchor" href="#added-10">§</a>Added</h4>
<ul>
<li>feat: allow using <code>prometheus-client</code> crate with PrometheusClientLayer by @flaneur2020 in https://github.com/apache/opendal/pull/3134</li>
<li>feat(binding/java): support info ops by @G-XD in https://github.com/apache/opendal/pull/3154</li>
@@ -984,14 +1032,14 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(services/sqlite): Support blocking_get/set/delete in sqlite service by @Zheaoli in https://github.com/apache/opendal/pull/3218</li>
<li>feat(oay): port <code>WebdavFs</code> to dav-server-fs-opendal by @Young-Flash in https://github.com/apache/opendal/pull/3119</li>
</ul>
-<h4 id="changed-9"><a class="doc-anchor" href="#changed-9">§</a>Changed</h4>
+<h4 id="changed-10"><a class="doc-anchor" href="#changed-10">§</a>Changed</h4>
<ul>
<li>refactor(services/dropbox): Use OpWrite instead of passing all args as parameters by @ImSingee in https://github.com/apache/opendal/pull/3126</li>
<li>refactor(binding/java): read should return bytes by @tisonkun in https://github.com/apache/opendal/pull/3153</li>
<li>refactor(bindings/java)!: operator jni calls by @tisonkun in https://github.com/apache/opendal/pull/3166</li>
<li>refactor(tests): reuse function to remove duplicate code by @zhao-gang in https://github.com/apache/opendal/pull/3219</li>
</ul>
-<h4 id="fixed-9"><a class="doc-anchor" href="#fixed-9">§</a>Fixed</h4>
+<h4 id="fixed-10"><a class="doc-anchor" href="#fixed-10">§</a>Fixed</h4>
<ul>
<li>fix(tests): Create test files one by one instead of concurrently by @Xuanwo in https://github.com/apache/opendal/pull/3132</li>
<li>chore(ci): fix web identity token path for aws s3 assume role test by @everpcpc in https://github.com/apache/opendal/pull/3141</li>
@@ -999,7 +1047,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix: making OpenDAL compilable on 32hf platforms by @ClSlaid in https://github.com/apache/opendal/pull/3188</li>
<li>fix(binding/java): decode Java’s modified UTF-8 format by @G-XD in https://github.com/apache/opendal/pull/3195</li>
</ul>
-<h4 id="docs-9"><a class="doc-anchor" href="#docs-9">§</a>Docs</h4>
+<h4 id="docs-10"><a class="doc-anchor" href="#docs-10">§</a>Docs</h4>
<ul>
<li>docs(release): describe how to close the Nexus staging repo by @tisonkun in https://github.com/apache/opendal/pull/3125</li>
<li>docs: update release docs for cpp and haskell bindings by @silver-ymz in https://github.com/apache/opendal/pull/3130</li>
@@ -1015,7 +1063,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: multiple improvements by @tisonkun in https://github.com/apache/opendal/pull/3215</li>
<li>docs: Add verify script by @Xuanwo in https://github.com/apache/opendal/pull/3239</li>
</ul>
-<h4 id="ci-9"><a class="doc-anchor" href="#ci-9">§</a>CI</h4>
+<h4 id="ci-10"><a class="doc-anchor" href="#ci-10">§</a>CI</h4>
<ul>
<li>ci: Align tags with semver specs by @Xuanwo in https://github.com/apache/opendal/pull/3136</li>
<li>ci: Migrate obs to databend labs sponsored bucket by @Xuanwo in https://github.com/apache/opendal/pull/3137</li>
@@ -1029,7 +1077,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>build(deps): bump korandoru/hawkeye from 3.3.0 to 3.4.0 by @dependabot in https://github.com/apache/opendal/pull/3223</li>
<li>build(deps): bump rusqlite from 0.25.4 to 0.29.0 by @dependabot in https://github.com/apache/opendal/pull/3226</li>
</ul>
-<h4 id="chore-9"><a class="doc-anchor" href="#chore-9">§</a>Chore</h4>
+<h4 id="chore-10"><a class="doc-anchor" href="#chore-10">§</a>Chore</h4>
<ul>
<li>chore(bindings/haskell): add rpath to haskell linker option by @silver-ymz in https://github.com/apache/opendal/pull/3128</li>
<li>chore(ci): add test for aws s3 assume role by @everpcpc in https://github.com/apache/opendal/pull/3139</li>
@@ -1039,7 +1087,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore(bindings/java): simplify library path resolution by @tisonkun in https://github.com/apache/opendal/pull/3196</li>
<li>chore: Make clippy happy by @Xuanwo in https://github.com/apache/opendal/pull/3229</li>
</ul>
-<h3 id="v0400---2023-09-18"><a class="doc-anchor" href="#v0400---2023-09-18">§</a><a href="https://github.com/apache/opendal/compare/v0.39.1...v0.40.0">v0.40.0</a> - 2023-09-18</h3><h4 id="added-10"><a class="doc-anchor" href="#added-10">§</a>Added</h4>
+<h3 id="v0400---2023-09-18"><a class="doc-anchor" href="#v0400---2023-09-18">§</a><a href="https://github.com/apache/opendal/compare/v0.39.1...v0.40.0">v0.40.0</a> - 2023-09-18</h3><h4 id="added-11"><a class="doc-anchor" href="#added-11">§</a>Added</h4>
<ul>
<li>feat(service/etcd): support list by @G-XD in https://github.com/apache/opendal/pull/2755</li>
<li>feat: setup the integrate with PHP binding by @godruoyi in https://github.com/apache/opendal/pull/2726</li>
@@ -1110,7 +1158,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(service/gdrive): add gdrive copy by @Young-Flash in https://github.com/apache/opendal/pull/3098</li>
<li>feat(services/wasabi): Rewrite the method signatures using OpRead,OpW… by @acehinnnqru in https://github.com/apache/opendal/pull/3099</li>
</ul>
-<h4 id="changed-10"><a class="doc-anchor" href="#changed-10">§</a>Changed</h4>
+<h4 id="changed-11"><a class="doc-anchor" href="#changed-11">§</a>Changed</h4>
<ul>
<li>refactor(bindings/haskell): unify ffi of creating operator by @silver-ymz in https://github.com/apache/opendal/pull/2778</li>
<li>refactor: Remove optimize in into_seekable_read_by_range by @Xuanwo in https://github.com/apache/opendal/pull/2796</li>
@@ -1142,7 +1190,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor: move all <code>fixtures</code> from <code>core/src/services/{service}</code> to top-level <code>fixtures/{service}</code> by @G-XD in https://github.com/apache/opendal/pull/3088</li>
<li>refactor(services/webhdfs): Rewrite <code>webhdfs</code> methods signature by using <code>OpXxxx</code> by @cxorm in https://github.com/apache/opendal/pull/3109</li>
</ul>
-<h4 id="fixed-10"><a class="doc-anchor" href="#fixed-10">§</a>Fixed</h4>
+<h4 id="fixed-11"><a class="doc-anchor" href="#fixed-11">§</a>Fixed</h4>
<ul>
<li>fix(docs): KEYS broken link by @suyanhanx in https://github.com/apache/opendal/pull/2749</li>
<li>fix: scheme from_str missing redb and tikv by @Ranxy in https://github.com/apache/opendal/pull/2766</li>
@@ -1186,7 +1234,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix: call <code>flush</code> before <code>sync_all</code> by @WenyXu in https://github.com/apache/opendal/pull/3053</li>
<li>fix: Metakeys are not propagated with the blocking operators by @Xuanwo in https://github.com/apache/opendal/pull/3116</li>
</ul>
-<h4 id="docs-10"><a class="doc-anchor" href="#docs-10">§</a>Docs</h4>
+<h4 id="docs-11"><a class="doc-anchor" href="#docs-11">§</a>Docs</h4>
<ul>
<li>doc: fix released doc minor error by @oowl in https://github.com/apache/opendal/pull/2737</li>
<li>docs: create README.md for oli by @STRRL in https://github.com/apache/opendal/pull/2752</li>
@@ -1221,7 +1269,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: add basic example for cpp binding by @silver-ymz in https://github.com/apache/opendal/pull/3108</li>
<li>docs: Add comments for blocking layer by @Xuanwo in https://github.com/apache/opendal/pull/3117</li>
</ul>
-<h4 id="ci-10"><a class="doc-anchor" href="#ci-10">§</a>CI</h4>
+<h4 id="ci-11"><a class="doc-anchor" href="#ci-11">§</a>CI</h4>
<ul>
<li>build(deps): bump serde_json from 1.0.99 to 1.0.104 by @dependabot in https://github.com/apache/opendal/pull/2746</li>
<li>build(deps): bump tracing-opentelemetry from 0.17.4 to 0.19.0 by @dependabot in https://github.com/apache/opendal/pull/2744</li>
@@ -1261,7 +1309,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci: Build rc but don’t publish by @Xuanwo in https://github.com/apache/opendal/pull/3089</li>
<li>ci: Don’t verify content for dry run by @Xuanwo in https://github.com/apache/opendal/pull/3115</li>
</ul>
-<h4 id="chore-10"><a class="doc-anchor" href="#chore-10">§</a>Chore</h4>
+<h4 id="chore-11"><a class="doc-anchor" href="#chore-11">§</a>Chore</h4>
<ul>
<li>chore(core): bump cargo.toml http version to 0.2.9 by @oowl in https://github.com/apache/opendal/pull/2740</li>
<li>chore: do not export example directory by @oowl in https://github.com/apache/opendal/pull/2750</li>
@@ -1287,7 +1335,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore: Bump version to v0.40 to start release process by @Xuanwo in https://github.com/apache/opendal/pull/3101</li>
<li>chore(bindings/haskell): rename library name from opendal-hs to opendal by @silver-ymz in https://github.com/apache/opendal/pull/3112</li>
</ul>
-<h3 id="v0390---2023-07-31"><a class="doc-anchor" href="#v0390---2023-07-31">§</a><a href="https://github.com/apache/opendal/compare/v0.38.1...v0.39.0">v0.39.0</a> - 2023-07-31</h3><h4 id="added-11"><a class="doc-anchor" href="#added-11">§</a>Added</h4>
+<h3 id="v0390---2023-07-31"><a class="doc-anchor" href="#v0390---2023-07-31">§</a><a href="https://github.com/apache/opendal/compare/v0.38.1...v0.39.0">v0.39.0</a> - 2023-07-31</h3><h4 id="added-12"><a class="doc-anchor" href="#added-12">§</a>Added</h4>
<ul>
<li>feat: add a behaviour test for InvalidInput by @dqhl76 in https://github.com/apache/opendal/pull/2644</li>
<li>feat(services/persy): add a basic persy service impl by @PsiACE in https://github.com/apache/opendal/pull/2648</li>
@@ -1313,14 +1361,14 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat: oss multipart uploads write by @parkma99 in https://github.com/apache/opendal/pull/2723</li>
<li>feat: add override_content_type by @G-XD in https://github.com/apache/opendal/pull/2734</li>
</ul>
-<h4 id="changed-11"><a class="doc-anchor" href="#changed-11">§</a>Changed</h4>
+<h4 id="changed-12"><a class="doc-anchor" href="#changed-12">§</a>Changed</h4>
<ul>
<li>refactor(services/redis): Polish features of redis by @Xuanwo in https://github.com/apache/opendal/pull/2681</li>
<li>refactor(services/s3): Check header first for region detect by @Xuanwo in https://github.com/apache/opendal/pull/2691</li>
<li>refactor(raw/oio): Reorganize to allow adding more features by @Xuanwo in https://github.com/apache/opendal/pull/2698</li>
<li>refactor: Polish fuzz build time by @Xuanwo in https://github.com/apache/opendal/pull/2721</li>
</ul>
-<h4 id="fixed-11"><a class="doc-anchor" href="#fixed-11">§</a>Fixed</h4>
+<h4 id="fixed-12"><a class="doc-anchor" href="#fixed-12">§</a>Fixed</h4>
<ul>
<li>fix(services/cos): fix cos service comments by @A-Stupid-Sun in https://github.com/apache/opendal/pull/2656</li>
<li>fix(test): profile setting warning by @dqhl76 in https://github.com/apache/opendal/pull/2657</li>
@@ -1331,13 +1379,13 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix: Seek before the start of file should be invalid by @Xuanwo in https://github.com/apache/opendal/pull/2718</li>
<li>fix(layer/minitrace): fix doctest by @andylokandy in https://github.com/apache/opendal/pull/2728</li>
</ul>
-<h4 id="docs-11"><a class="doc-anchor" href="#docs-11">§</a>Docs</h4>
+<h4 id="docs-12"><a class="doc-anchor" href="#docs-12">§</a>Docs</h4>
<ul>
<li>docs: add instructions to fix wrong vote mail and uploads by @ClSlaid in https://github.com/apache/opendal/pull/2682</li>
<li>doc(services/tikv): add tikv service backend to readme by @oowl in https://github.com/apache/opendal/pull/2711</li>
<li>docs(bindings/java): improve safety doc for get_current_env by @tisonkun in https://github.com/apache/opendal/pull/2733</li>
</ul>
-<h4 id="ci-11"><a class="doc-anchor" href="#ci-11">§</a>CI</h4>
+<h4 id="ci-12"><a class="doc-anchor" href="#ci-12">§</a>CI</h4>
<ul>
<li>ci(services/webdav): Setup integration test for owncloud by @dqhl76 in https://github.com/apache/opendal/pull/2659</li>
<li>ci: Fix unexpected error in owncloud by @Xuanwo in https://github.com/apache/opendal/pull/2663</li>
@@ -1347,7 +1395,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci: Fix Cargo.lock not updated by @Xuanwo in https://github.com/apache/opendal/pull/2680</li>
<li>ci: Add services fuzz test for read/write/range_read by @dqhl76 in https://github.com/apache/opendal/pull/2710</li>
</ul>
-<h4 id="chore-11"><a class="doc-anchor" href="#chore-11">§</a>Chore</h4>
+<h4 id="chore-12"><a class="doc-anchor" href="#chore-12">§</a>Chore</h4>
<ul>
<li>chore: Update CODEOWNERS by @Xuanwo in https://github.com/apache/opendal/pull/2676</li>
<li>chore(bindings/python): upgrade pyo3 to 0.19 by @messense in https://github.com/apache/opendal/pull/2694</li>
@@ -1355,7 +1403,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore(download): update version 0.38.1 by @suyanhanx in https://github.com/apache/opendal/pull/2714</li>
<li>chore(service/minitrace): update to v0.5.0 by @andylokandy in https://github.com/apache/opendal/pull/2725</li>
</ul>
-<h3 id="v0381---2023-07-14"><a class="doc-anchor" href="#v0381---2023-07-14">§</a><a href="https://github.com/apache/opendal/compare/v0.38.0...v0.38.1">v0.38.1</a> - 2023-07-14</h3><h4 id="added-12"><a class="doc-anchor" href="#added-12">§</a>Added</h4>
+<h3 id="v0381---2023-07-14"><a class="doc-anchor" href="#v0381---2023-07-14">§</a><a href="https://github.com/apache/opendal/compare/v0.38.0...v0.38.1">v0.38.1</a> - 2023-07-14</h3><h4 id="added-13"><a class="doc-anchor" href="#added-13">§</a>Added</h4>
<ul>
<li>feat(binding/lua): add rename and create_dir operator function by @oowl in https://github.com/apache/opendal/pull/2564</li>
<li>feat(services/azblob): support sink by @suyanhanx in https://github.com/apache/opendal/pull/2574</li>
@@ -1376,18 +1424,18 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(bindings/C): add support for list in C binding by @Ji-Xinyou in https://github.com/apache/opendal/pull/2448</li>
<li>feat(services/s3): Add detect_region support for S3Builder by @parkma99 in https://github.com/apache/opendal/pull/2634</li>
</ul>
-<h4 id="changed-12"><a class="doc-anchor" href="#changed-12">§</a>Changed</h4>
+<h4 id="changed-13"><a class="doc-anchor" href="#changed-13">§</a>Changed</h4>
<ul>
<li>refactor(core): Add ErrorKind InvalidInput to indicate users input error by @dqhl76 in https://github.com/apache/opendal/pull/2637</li>
<li>refactor(services/s3): Add more detect logic for detect_region by @Xuanwo in https://github.com/apache/opendal/pull/2645</li>
</ul>
-<h4 id="fixed-12"><a class="doc-anchor" href="#fixed-12">§</a>Fixed</h4>
+<h4 id="fixed-13"><a class="doc-anchor" href="#fixed-13">§</a>Fixed</h4>
<ul>
<li>fix(doc): fix codeblock rendering by @xxchan in https://github.com/apache/opendal/pull/2592</li>
<li>fix(service/minitrace): should set local parent by @andylokandy in https://github.com/apache/opendal/pull/2620</li>
<li>fix(service/minitrace): update doc by @andylokandy in https://github.com/apache/opendal/pull/2621</li>
</ul>
-<h4 id="docs-12"><a class="doc-anchor" href="#docs-12">§</a>Docs</h4>
+<h4 id="docs-13"><a class="doc-anchor" href="#docs-13">§</a>Docs</h4>
<ul>
<li>doc(bindings/haskell): add module document by @silver-ymz in https://github.com/apache/opendal/pull/2566</li>
<li>docs: Update license related comments by @Prashanth-Chandra in https://github.com/apache/opendal/pull/2573</li>
@@ -1396,7 +1444,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs(blog): add Apache OpenDAL(Incubating): Access Data Freely by @PsiACE in https://github.com/apache/opendal/pull/2607</li>
<li>docs(RFC): Object Versioning by @suyanhanx in https://github.com/apache/opendal/pull/2602</li>
</ul>
-<h4 id="ci-12"><a class="doc-anchor" href="#ci-12">§</a>CI</h4>
+<h4 id="ci-13"><a class="doc-anchor" href="#ci-13">§</a>CI</h4>
<ul>
<li>ci: Disable bindings/java deploy for now by @tisonkun in https://github.com/apache/opendal/pull/2560</li>
<li>ci: Disable the failed stage-release job instead by @tisonkun in https://github.com/apache/opendal/pull/2561</li>
@@ -1410,7 +1458,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci: upgrade hawkeye to v3 by @tisonkun in https://github.com/apache/opendal/pull/2585</li>
<li>ci(services/webdav): Setup integration test for nextcloud by @Xuanwo in https://github.com/apache/opendal/pull/2631</li>
</ul>
-<h4 id="chore-12"><a class="doc-anchor" href="#chore-12">§</a>Chore</h4>
+<h4 id="chore-13"><a class="doc-anchor" href="#chore-13">§</a>Chore</h4>
<ul>
<li>chore: add haskell binding link to website by @silver-ymz in https://github.com/apache/opendal/pull/2571</li>
<li>chore: fix cargo warning for resolver by @xxchan in https://github.com/apache/opendal/pull/2590</li>
@@ -1425,7 +1473,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>@andylokandy made their first contribution in https://github.com/apache/opendal/pull/2618</li>
<li>@parkma99 made their first contribution in https://github.com/apache/opendal/pull/2634</li>
</ul>
-<h3 id="v0380---2023-06-27"><a class="doc-anchor" href="#v0380---2023-06-27">§</a><a href="https://github.com/apache/opendal/compare/v0.37.0...v0.38.0">v0.38.0</a> - 2023-06-27</h3><h4 id="added-13"><a class="doc-anchor" href="#added-13">§</a>Added</h4>
+<h3 id="v0380---2023-06-27"><a class="doc-anchor" href="#v0380---2023-06-27">§</a><a href="https://github.com/apache/opendal/compare/v0.37.0...v0.38.0">v0.38.0</a> - 2023-06-27</h3><h4 id="added-14"><a class="doc-anchor" href="#added-14">§</a>Added</h4>
<ul>
<li>feat(raw/http_util): Implement mixed multipart parser by @Xuanwo in https://github.com/apache/opendal/pull/2430</li>
<li>feat(services/gcs): Add batch delete support by @wcy-fdu in https://github.com/apache/opendal/pull/2142</li>
@@ -1458,11 +1506,11 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(services): add cacache backend by @PsiACE in https://github.com/apache/opendal/pull/2548</li>
<li>feat: Implement Writer::copy so user can copy from AsyncRead by @Xuanwo in https://github.com/apache/opendal/pull/2552</li>
</ul>
-<h4 id="changed-13"><a class="doc-anchor" href="#changed-13">§</a>Changed</h4>
+<h4 id="changed-14"><a class="doc-anchor" href="#changed-14">§</a>Changed</h4>
<ul>
<li>refactor(bindings/C): refactor c bindings to call all APIs using pointer by @Ji-Xinyou in https://github.com/apache/opendal/pull/2489</li>
</ul>
-<h4 id="fixed-13"><a class="doc-anchor" href="#fixed-13">§</a>Fixed</h4>
+<h4 id="fixed-14"><a class="doc-anchor" href="#fixed-14">§</a>Fixed</h4>
<ul>
<li>fix(services/azblob): Fix azblob batch max operations by @A-Stupid-Sun in https://github.com/apache/opendal/pull/2434</li>
<li>fix(services/sftp): change default root config to remote server setting by @silver-ymz in https://github.com/apache/opendal/pull/2431</li>
@@ -1475,7 +1523,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(core/types): add missing <code>vercel artifacts</code> for <code>FromStr</code> by @cijiugechu in https://github.com/apache/opendal/pull/2519</li>
<li>fix(types/operator): fix operation limit error default size by @oowl in https://github.com/apache/opendal/pull/2536</li>
</ul>
-<h4 id="docs-13"><a class="doc-anchor" href="#docs-13">§</a>Docs</h4>
+<h4 id="docs-14"><a class="doc-anchor" href="#docs-14">§</a>Docs</h4>
<ul>
<li>docs: Replace <code>create</code> with <code>new</code> by @NiwakaDev in https://github.com/apache/opendal/pull/2427</li>
<li>docs(services/redis): fix redis via config example by @A-Stupid-Sun in https://github.com/apache/opendal/pull/2443</li>
@@ -1499,7 +1547,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: Add new architectural image for OpenDAL by @Xuanwo in https://github.com/apache/opendal/pull/2553</li>
<li>docs: Polish README for core and bindings by @Xuanwo in https://github.com/apache/opendal/pull/2554</li>
</ul>
-<h4 id="ci-13"><a class="doc-anchor" href="#ci-13">§</a>CI</h4>
+<h4 id="ci-14"><a class="doc-anchor" href="#ci-14">§</a>CI</h4>
<ul>
<li>ci: Fix append test should use copy_buf to avoid call times by @Xuanwo in https://github.com/apache/opendal/pull/2436</li>
<li>build(bindings/ruby): fix compile rb-sys on Apple M1 by @tisonkun in https://github.com/apache/opendal/pull/2451</li>
@@ -1515,7 +1563,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci(bindings/swift): optimize time consumption of CI pipeline by @unixzii in https://github.com/apache/opendal/pull/2545</li>
<li>ci: Fix PR label not updated while edited by @Xuanwo in https://github.com/apache/opendal/pull/2547</li>
</ul>
-<h4 id="chore-13"><a class="doc-anchor" href="#chore-13">§</a>Chore</h4>
+<h4 id="chore-14"><a class="doc-anchor" href="#chore-14">§</a>Chore</h4>
<ul>
<li>chore: Add redis bench support by @Xuanwo in https://github.com/apache/opendal/pull/2438</li>
<li>chore(bindings/nodejs): update index.d.ts by @suyanhanx in https://github.com/apache/opendal/pull/2459</li>
@@ -1524,7 +1572,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore: Polish some code details by @Xuanwo in https://github.com/apache/opendal/pull/2505</li>
<li>chore(bindings/nodejs): provide more precise type for scheme by @cijiugechu in https://github.com/apache/opendal/pull/2520</li>
</ul>
-<h3 id="v0370---2023-06-06"><a class="doc-anchor" href="#v0370---2023-06-06">§</a><a href="https://github.com/apache/opendal/compare/v0.36.0...v0.37.0">v0.37.0</a> - 2023-06-06</h3><h4 id="added-14"><a class="doc-anchor" href="#added-14">§</a>Added</h4>
+<h3 id="v0370---2023-06-06"><a class="doc-anchor" href="#v0370---2023-06-06">§</a><a href="https://github.com/apache/opendal/compare/v0.36.0...v0.37.0">v0.37.0</a> - 2023-06-06</h3><h4 id="added-15"><a class="doc-anchor" href="#added-15">§</a>Added</h4>
<ul>
<li>feat(services/webdav): support redirection when get 302/307 response during read operation by @Yansongsongsong in https://github.com/apache/opendal/pull/2256</li>
<li>feat: Add Zig Bindings Module by @kassane in https://github.com/apache/opendal/pull/2374</li>
@@ -1532,13 +1580,13 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(bindings/c): add opendal_operator_blocking_delete method by @jiaoew1991 in https://github.com/apache/opendal/pull/2416</li>
<li>feat(services/obs): add append support by @infdahai in https://github.com/apache/opendal/pull/2422</li>
</ul>
-<h4 id="changed-14"><a class="doc-anchor" href="#changed-14">§</a>Changed</h4>
+<h4 id="changed-15"><a class="doc-anchor" href="#changed-15">§</a>Changed</h4>
<ul>
<li>refactor(bindings/zig): enable tests and more by @tisonkun in https://github.com/apache/opendal/pull/2375</li>
<li>refactor(bindings/zig): add errors handler and module test by @kassane in https://github.com/apache/opendal/pull/2381</li>
<li>refactor(http_util): Adopt reqwest’s redirect support by @Xuanwo in https://github.com/apache/opendal/pull/2390</li>
</ul>
-<h4 id="fixed-14"><a class="doc-anchor" href="#fixed-14">§</a>Fixed</h4>
+<h4 id="fixed-15"><a class="doc-anchor" href="#fixed-15">§</a>Fixed</h4>
<ul>
<li>fix(bindings/zig): reflect C interface changes by @tisonkun in https://github.com/apache/opendal/pull/2378</li>
<li>fix(services/azblob): Fix batch delete doesn’t work on azure by @Xuanwo in https://github.com/apache/opendal/pull/2382</li>
@@ -1546,7 +1594,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>fix(core): Don’t wake up operator futures while not ready by @Xuanwo in https://github.com/apache/opendal/pull/2415</li>
<li>fix(services/s3): Fix s3 batch max operations by @A-Stupid-Sun in https://github.com/apache/opendal/pull/2418</li>
</ul>
-<h4 id="docs-14"><a class="doc-anchor" href="#docs-14">§</a>Docs</h4>
+<h4 id="docs-15"><a class="doc-anchor" href="#docs-15">§</a>Docs</h4>
<ul>
<li>docs: service doc for s3 by @suyanhanx in https://github.com/apache/opendal/pull/2376</li>
<li>docs(bindings/C): The documentation for OpenDAL C binding by @Ji-Xinyou in https://github.com/apache/opendal/pull/2373</li>
@@ -1560,7 +1608,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: doc for download by @suyanhanx in https://github.com/apache/opendal/pull/2424</li>
<li>docs: Add release guide by @Xuanwo in https://github.com/apache/opendal/pull/2425</li>
</ul>
-<h4 id="ci-14"><a class="doc-anchor" href="#ci-14">§</a>CI</h4>
+<h4 id="ci-15"><a class="doc-anchor" href="#ci-15">§</a>CI</h4>
<ul>
<li>ci: Enable semantic PRs by @Xuanwo in https://github.com/apache/opendal/pull/2370</li>
<li>ci: improve licenserc settings by @tisonkun in https://github.com/apache/opendal/pull/2377</li>
@@ -1571,13 +1619,13 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci: Remove website from git archive by @Xuanwo in https://github.com/apache/opendal/pull/2420</li>
<li>ci: Add integration tests for Cloudflare R2 by @Xuanwo in https://github.com/apache/opendal/pull/2423</li>
</ul>
-<h4 id="chore-14"><a class="doc-anchor" href="#chore-14">§</a>Chore</h4>
+<h4 id="chore-15"><a class="doc-anchor" href="#chore-15">§</a>Chore</h4>
<ul>
<li>chore(bindings/python): upgrade maturin to 1.0 by @messense in https://github.com/apache/opendal/pull/2369</li>
<li>chore: Fix license headers for release/labler by @Xuanwo in https://github.com/apache/opendal/pull/2371</li>
<li>chore(bindings/C): add one simple read/write example into readme and code by @Ji-Xinyou in https://github.com/apache/opendal/pull/2421</li>
</ul>
-<h3 id="v0360---2023-05-30"><a class="doc-anchor" href="#v0360---2023-05-30">§</a><a href="https://github.com/apache/opendal/compare/v0.35.0...v0.36.0">v0.36.0</a> - 2023-05-30</h3><h4 id="added-15"><a class="doc-anchor" href="#added-15">§</a>Added</h4>
+<h3 id="v0360---2023-05-30"><a class="doc-anchor" href="#v0360---2023-05-30">§</a><a href="https://github.com/apache/opendal/compare/v0.35.0...v0.36.0">v0.36.0</a> - 2023-05-30</h3><h4 id="added-16"><a class="doc-anchor" href="#added-16">§</a>Added</h4>
<ul>
<li>feat(service/fs): add append support for fs (#2296)</li>
<li>feat(services/sftp): add append support for sftp (#2297)</li>
@@ -1591,7 +1639,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>feat(bindings/java): save one jni call in the hot path (#2353)</li>
<li>feat: server side encryption support for azblob (#2347)</li>
</ul>
-<h4 id="changed-15"><a class="doc-anchor" href="#changed-15">§</a>Changed</h4>
+<h4 id="changed-16"><a class="doc-anchor" href="#changed-16">§</a>Changed</h4>
<ul>
<li>refactor(core): Implement RFC-2299 for stat_with (#2303)</li>
<li>refactor(core): Implement RFC-2299 for BlockingOperator::write_with (#2305)</li>
@@ -1609,12 +1657,12 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>refactor(bindings/C): align bdd test with the feature tests (#2340)</li>
<li>refactor(bindings/java): narrow unsafe boundary (#2351)</li>
</ul>
-<h4 id="fixed-15"><a class="doc-anchor" href="#fixed-15">§</a>Fixed</h4>
+<h4 id="fixed-16"><a class="doc-anchor" href="#fixed-16">§</a>Fixed</h4>
<ul>
<li>fix(services/supabase): correctly set retryable (#2295)</li>
<li>fix(core): appender complete check (#2298)</li>
</ul>
-<h4 id="docs-15"><a class="doc-anchor" href="#docs-15">§</a>Docs</h4>
+<h4 id="docs-16"><a class="doc-anchor" href="#docs-16">§</a>Docs</h4>
<ul>
<li>docs: add service doc for azdfs (#2310)</li>
<li>docs(bidnings/java): how to deploy snapshots (#2311)</li>
@@ -1628,7 +1676,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>docs: add service doc for dashmap (#2342)</li>
<li>docs(bindings/java): for BlockingOperator (#2344)</li>
</ul>
-<h4 id="ci-15"><a class="doc-anchor" href="#ci-15">§</a>CI</h4>
+<h4 id="ci-16"><a class="doc-anchor" href="#ci-16">§</a>CI</h4>
<ul>
<li>build(bindings/java): prepare for snapshot release (#2301)</li>
<li>build(bindings/java): support multiple platform java bindings (#2324)</li>
@@ -1643,7 +1691,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>ci: Speed up python docs build (#2364)</li>
<li>ci: Adopt setup-node’s cache logic instead (#2365)</li>
</ul>
-<h4 id="chore-15"><a class="doc-anchor" href="#chore-15">§</a>Chore</h4>
+<h4 id="chore-16"><a class="doc-anchor" href="#chore-16">§</a>Chore</h4>
<ul>
<li>chore(test): Avoid test names becoming prefixes of other tests (#2333)</li>
<li>chore(bindings/java): improve OpenDALException tests and docs (#2343)</li>
@@ -1651,7 +1699,7 @@ and this project adheres to <a href="https://semver.org/">Semantic Versioning</a
<li>chore(docs): split docs build into small jobs (#2356)’</li>
<li>chore: protect branch gh-pages (#2358)</li>
</ul>
-<h3 id="v0350---2023-05-23"><a class="doc-anchor" href="#v0350---2023-05-23">§</a><a href="https://github.com/apache/opendal/compare/v0.34.0...v0.35.0">v0.35.0</a> - 2023-05-23</h3><h4 id="added-16"><a class="doc-anchor" href="#added-16">§</a>Added</h4>
+<h3 id="v0350---2023-05-23"><a class="doc-anchor" href="#v0350---2023-05-23">§</a><a href="https://github.com/apache/opendal/compare/v0.34.0...v0.35.0">v0.35.0</a> - 2023-05-23</h3><h4 id="added-17"><a class="doc-anchor" href="#added-17">§</a>Added</h4>
<ul>
<li>feat(services/onedrive): Implement <code>list</code>, <code>create_dir</code>, <code>stat</code> and upload
ing large files (#2231)</li>
@@ -1673,14 +1721,14 @@ version (#2255)</li>
<li>feat(services/oss): add append support (#2279)</li>
<li>feat(bindings/java): implement async ops to pass AsyncStepsTest (#2291)</li>
</ul>
-<h4 id="changed-16"><a class="doc-anchor" href="#changed-16">§</a>Changed</h4>
+<h4 id="changed-17"><a class="doc-anchor" href="#changed-17">§</a>Changed</h4>
<ul>
<li>services/gdrive: port code to GdriveCore & add path_2_id cache (#2203)</li>
<li>refactor: Minimize futures dependencies (#2248)</li>
<li>refactor: Add Operator::via_map to support init without generic type parameters (#2280)</li>
<li>refactor(binding/java): build, async and docs (#2276)</li>
</ul>
-<h4 id="fixed-16"><a class="doc-anchor" href="#fixed-16">§</a>Fixed</h4>
+<h4 id="fixed-17"><a class="doc-anchor" href="#fixed-17">§</a>Fixed</h4>
<ul>
<li>fix: Fix bugs that failed wasabi’s integration tests (#2273)</li>
</ul>
@@ -1688,7 +1736,7 @@ version (#2255)</li>
<ul>
<li>feat(core): remove <code>scan</code> from raw API (#2262)</li>
</ul>
-<h4 id="docs-16"><a class="doc-anchor" href="#docs-16">§</a>Docs</h4>
+<h4 id="docs-17"><a class="doc-anchor" href="#docs-17">§</a>Docs</h4>
<ul>
<li>chore(s3): update builder region doc (#2247)</li>
<li>docs: Add services in readme (#2251)</li>
@@ -1699,7 +1747,7 @@ version (#2255)</li>
<li>docs: Remove unlicensed svg (#2289)</li>
<li>fix(website): double active route (#2290)</li>
</ul>
-<h4 id="ci-16"><a class="doc-anchor" href="#ci-16">§</a>CI</h4>
+<h4 id="ci-17"><a class="doc-anchor" href="#ci-17">§</a>CI</h4>
<ul>
<li>ci: Enable test for cos (#2270)</li>
<li>ci: Add integration tests for supabase (#2272)</li>
@@ -1708,11 +1756,11 @@ version (#2255)</li>
<li>ci: Cleanup NOTICE file (#2281)</li>
<li>ci: Fix release not contains incubating (#2292)</li>
</ul>
-<h4 id="chore-16"><a class="doc-anchor" href="#chore-16">§</a>Chore</h4>
+<h4 id="chore-17"><a class="doc-anchor" href="#chore-17">§</a>Chore</h4>
<ul>
<li>chore(core): remove unnecessary path prefix (#2265)</li>
</ul>
-<h3 id="v0340---2023-05-09"><a class="doc-anchor" href="#v0340---2023-05-09">§</a><a href="https://github.com/apache/opendal/compare/v0.33.3...v0.34.0">v0.34.0</a> - 2023-05-09</h3><h4 id="added-17"><a class="doc-anchor" href="#added-17">§</a>Added</h4>
+<h3 id="v0340---2023-05-09"><a class="doc-anchor" href="#v0340---2023-05-09">§</a><a href="https://github.com/apache/opendal/compare/v0.33.3...v0.34.0">v0.34.0</a> - 2023-05-09</h3><h4 id="added-18"><a class="doc-anchor" href="#added-18">§</a>Added</h4>
<ul>
<li>feat(writer): configurable buffer size of unsized write (#2143)</li>
<li>feat(oay): Add basic s3 list_objects_v2 with start_after support (#2219)</li>
@@ -1722,12 +1770,12 @@ version (#2255)</li>
<li>feat: Add assert for public types to ensure Send + Sync (#2237)</li>
<li>feat(services/gcs): Add abort support for writer (#2242)</li>
</ul>
-<h4 id="changed-17"><a class="doc-anchor" href="#changed-17">§</a>Changed</h4>
+<h4 id="changed-18"><a class="doc-anchor" href="#changed-18">§</a>Changed</h4>
<ul>
<li>refactor: Replace futures::ready with std::task::ready (#2221)</li>
<li>refactor: Use list without delimiter to replace scan (#2243)</li>
</ul>
-<h4 id="fixed-17"><a class="doc-anchor" href="#fixed-17">§</a>Fixed</h4>
+<h4 id="fixed-18"><a class="doc-anchor" href="#fixed-18">§</a>Fixed</h4>
<ul>
<li>fix(services/gcs): checked_rem_euclid could return Some(0) (#2220)</li>
<li>fix(tests): Etag must be wrapped by <code>"</code> (#2226)</li>
@@ -1735,12 +1783,12 @@ version (#2255)</li>
<li>fix(services/s3): Return error if region not set for AWS S3 (#2234)</li>
<li>fix(services/gcs): rsa 0.9 breaks gcs presign (#2236)</li>
</ul>
-<h4 id="chore-17"><a class="doc-anchor" href="#chore-17">§</a>Chore</h4>
+<h4 id="chore-18"><a class="doc-anchor" href="#chore-18">§</a>Chore</h4>
<ul>
<li>chore: change log subscriber from env_logger to tracing-subscriber (#2238)</li>
<li>chore: Fix build of wasabi (#2241)</li>
</ul>
-<h3 id="v0333---2023-05-06"><a class="doc-anchor" href="#v0333---2023-05-06">§</a><a href="https://github.com/apache/opendal/compare/v0.33.2...v0.33.3">v0.33.3</a> - 2023-05-06</h3><h4 id="added-18"><a class="doc-anchor" href="#added-18">§</a>Added</h4>
+<h3 id="v0333---2023-05-06"><a class="doc-anchor" href="#v0333---2023-05-06">§</a><a href="https://github.com/apache/opendal/compare/v0.33.2...v0.33.3">v0.33.3</a> - 2023-05-06</h3><h4 id="added-19"><a class="doc-anchor" href="#added-19">§</a>Added</h4>
<ul>
<li>feat(services/onedrive): Add read and write support for OneDrive (#2129)</li>
<li>test(core): test for <code>read_with_override_cache_control</code> (#2155)</li>
@@ -1753,19 +1801,19 @@ version (#2255)</li>
<li>feat(tests): Enable supabase integration tests (#2190)</li>
<li>feat(core): merge scan and list (#2214)</li>
</ul>
-<h4 id="changed-18"><a class="doc-anchor" href="#changed-18">§</a>Changed</h4>
+<h4 id="changed-19"><a class="doc-anchor" href="#changed-19">§</a>Changed</h4>
<ul>
<li>refactor(java): refactor java code for java binding (#2145)</li>
<li>refactor(layers/logging): parsing level str (#2160)</li>
<li>refactor: Move not initiated logic to utils instead (#2196)</li>
<li>refactor(services/memcached): Rewrite memecached connection entirely (#2204)</li>
</ul>
-<h4 id="fixed-18"><a class="doc-anchor" href="#fixed-18">§</a>Fixed</h4>
+<h4 id="fixed-19"><a class="doc-anchor" href="#fixed-19">§</a>Fixed</h4>
<ul>
<li>fix(service/s3): set retryable on batch (#2171)</li>
<li>fix(services/supabase): Supabase ci fix (#2200)</li>
</ul>
-<h4 id="docs-17"><a class="doc-anchor" href="#docs-17">§</a>Docs</h4>
+<h4 id="docs-18"><a class="doc-anchor" href="#docs-18">§</a>Docs</h4>
<ul>
<li>docs(website): try to add opendal logo (#2159)</li>
<li>doc: update vision to be more clear (#2164)</li>
@@ -1775,7 +1823,7 @@ version (#2255)</li>
<li>docs(nodejs): Add CONTRIBUTING docs (#2174)</li>
<li>docs: Add CONTRIBUTING for python (#2188)</li>
</ul>
-<h4 id="ci-17"><a class="doc-anchor" href="#ci-17">§</a>CI</h4>
+<h4 id="ci-18"><a class="doc-anchor" href="#ci-18">§</a>CI</h4>
<ul>
<li>ci: Use microsoft rust devcontainer instead (#2165)</li>
<li>ci(devcontainer): Install development deps (#2167)</li>
@@ -1785,7 +1833,7 @@ version (#2255)</li>
<li>ci: Add tools to generate NOTICE and all deps licenses (#2205)</li>
<li>ci: use Temurin JDK 11 to build the bindings-java (#2213)</li>
</ul>
-<h4 id="chore-18"><a class="doc-anchor" href="#chore-18">§</a>Chore</h4>
+<h4 id="chore-19"><a class="doc-anchor" href="#chore-19">§</a>Chore</h4>
<ul>
<li>chore(deps): bump clap from 4.1.11 to 4.2.5 (#2183)</li>
<li>chore(deps): bump futures from 0.3.27 to 0.3.28 (#2181)</li>
@@ -1793,7 +1841,7 @@ version (#2255)</li>
<li>chore: Refactor behavior test (#2189)</li>
<li>chore: update readme for more information that is more friendly to newcomers (#2217)</li>
</ul>
-<h3 id="v0332---2023-04-27"><a class="doc-anchor" href="#v0332---2023-04-27">§</a><a href="https://github.com/apache/opendal/compare/v0.33.1...v0.33.2">v0.33.2</a> - 2023-04-27</h3><h4 id="added-19"><a class="doc-anchor" href="#added-19">§</a>Added</h4>
+<h3 id="v0332---2023-04-27"><a class="doc-anchor" href="#v0332---2023-04-27">§</a><a href="https://github.com/apache/opendal/compare/v0.33.1...v0.33.2">v0.33.2</a> - 2023-04-27</h3><h4 id="added-20"><a class="doc-anchor" href="#added-20">§</a>Added</h4>
<ul>
<li>feat(core): add test for <code>stat_with_if_none_match</code> (#2122)</li>
<li>feat(services/gcs): Add start-after support for list (#2107)</li>
@@ -1809,16 +1857,16 @@ version (#2255)</li>
<li>test(core): test for <code>read_with_if_none_match</code> (#2141)</li>
<li>feat(services/supabase): Add read/write/stat support for supabase (#2119)</li>
</ul>
-<h4 id="docs-18"><a class="doc-anchor" href="#docs-18">§</a>Docs</h4>
+<h4 id="docs-19"><a class="doc-anchor" href="#docs-19">§</a>Docs</h4>
<ul>
<li>docs: add hdfs classpath related troubleshoot (#2130)</li>
</ul>
-<h4 id="ci-18"><a class="doc-anchor" href="#ci-18">§</a>CI</h4>
+<h4 id="ci-19"><a class="doc-anchor" href="#ci-19">§</a>CI</h4>
<ul>
<li>ci: Mark job as skipped if owner is not apache (#2128)</li>
<li>ci: Enable native-tls to test gcs presign for workaround (#2138)</li>
</ul>
-<h3 id="v0331---2023-04-25"><a class="doc-anchor" href="#v0331---2023-04-25">§</a><a href="https://github.com/apache/opendal/compare/v0.33.0...v0.33.1">v0.33.1</a> - 2023-04-25</h3><h4 id="added-20"><a class="doc-anchor" href="#added-20">§</a>Added</h4>
+<h3 id="v0331---2023-04-25"><a class="doc-anchor" href="#v0331---2023-04-25">§</a><a href="https://github.com/apache/opendal/compare/v0.33.0...v0.33.1">v0.33.1</a> - 2023-04-25</h3><h4 id="added-21"><a class="doc-anchor" href="#added-21">§</a>Added</h4>
<ul>
<li>feat: Add behavior test for read_with_if_match & stat_with_if_match (#2088)</li>
<li>feat(tests): Add fuzz test for writer without content length (#2100)</li>
@@ -1828,22 +1876,22 @@ version (#2255)</li>
<li>feat(services/s3): Add <code>start-after</code> support for list (#2096)</li>
<li>feat: gcs support cache control (#2116)</li>
</ul>
-<h4 id="fixed-19"><a class="doc-anchor" href="#fixed-19">§</a>Fixed</h4>
+<h4 id="fixed-20"><a class="doc-anchor" href="#fixed-20">§</a>Fixed</h4>
<ul>
<li>fix(services/gcs): set <code>content length=0</code> for gcs initiate_resumable_upload (#2110)</li>
<li>fix(bindings/nodejs): Fix index.d.ts not updated (#2117)</li>
</ul>
-<h4 id="docs-19"><a class="doc-anchor" href="#docs-19">§</a>Docs</h4>
+<h4 id="docs-20"><a class="doc-anchor" href="#docs-20">§</a>Docs</h4>
<ul>
<li>chore: improve LoggingLayer docs and pub use log::Level (#2089)</li>
<li>docs(refactor): Add more detailed description of operator, accessor, and builder (#2094)</li>
</ul>
-<h4 id="ci-19"><a class="doc-anchor" href="#ci-19">§</a>CI</h4>
+<h4 id="ci-20"><a class="doc-anchor" href="#ci-20">§</a>CI</h4>
<ul>
<li>chore(bindings/nodejs): update <code>package.json</code> repository info (#2078)</li>
<li>ci: Bring hdfs test back (#2114)</li>
</ul>
-<h3 id="v0330---2023-04-23"><a class="doc-anchor" href="#v0330---2023-04-23">§</a><a href="https://github.com/apache/opendal/compare/v0.32.0...v0.33.0">v0.33.0</a> - 2023-04-23</h3><h4 id="added-21"><a class="doc-anchor" href="#added-21">§</a>Added</h4>
+<h3 id="v0330---2023-04-23"><a class="doc-anchor" href="#v0330---2023-04-23">§</a><a href="https://github.com/apache/opendal/compare/v0.32.0...v0.33.0">v0.33.0</a> - 2023-04-23</h3><h4 id="added-22"><a class="doc-anchor" href="#added-22">§</a>Added</h4>
<ul>
<li>feat: Add OpenTelemetry Trace Layer (#2001)</li>
<li>feat: add if_none_match support for azblob (#2035)</li>
@@ -1862,29 +1910,29 @@ version (#2255)</li>
<li>feat(core): test for read_with_override_content_composition (#2067)</li>
<li>feat(core): Add <code>start-after</code> support for list (#2071)</li>
</ul>
-<h4 id="changed-19"><a class="doc-anchor" href="#changed-19">§</a>Changed</h4>
+<h4 id="changed-20"><a class="doc-anchor" href="#changed-20">§</a>Changed</h4>
<ul>
<li>refactor: Polish Writer API by merging append and write together (#2036)</li>
<li>refactor(raw/http_util): Add url in error context (#2066)</li>
<li>refactor: Allow reusing the same operator to speed up tests (#2068)</li>
</ul>
-<h4 id="fixed-20"><a class="doc-anchor" href="#fixed-20">§</a>Fixed</h4>
+<h4 id="fixed-21"><a class="doc-anchor" href="#fixed-21">§</a>Fixed</h4>
<ul>
<li>fix(bindings/ruby): use rb_sys_env to help find ruby for building (#2051)</li>
<li>fix: MadsimLayer should be able to built without cfg (#2059)</li>
<li>fix(services/s3): Ignore prefix if it’s empty (#2064)</li>
</ul>
-<h4 id="docs-20"><a class="doc-anchor" href="#docs-20">§</a>Docs</h4>
+<h4 id="docs-21"><a class="doc-anchor" href="#docs-21">§</a>Docs</h4>
<ul>
<li>docs(bindings/python): ipynb examples for users (#2061)</li>
</ul>
-<h4 id="ci-20"><a class="doc-anchor" href="#ci-20">§</a>CI</h4>
+<h4 id="ci-21"><a class="doc-anchor" href="#ci-21">§</a>CI</h4>
<ul>
<li>ci(bindings/nodejs): publish support <code>--provenance</code> (#2046)</li>
<li>ci: upgrade typos to 1.14.8 (#2055)</li>
<li>chore(bindings/C): ignore the formatting of auto-generated opendal.h (#2056)</li>
</ul>
-<h3 id="v0320---2023-04-18"><a class="doc-anchor" href="#v0320---2023-04-18">§</a><a href="https://github.com/apache/opendal/compare/v0.31.1...v0.32.0">v0.32.0</a> - 2023-04-18</h3><h4 id="added-22"><a class="doc-anchor" href="#added-22">§</a>Added</h4>
+<h3 id="v0320---2023-04-18"><a class="doc-anchor" href="#v0320---2023-04-18">§</a><a href="https://github.com/apache/opendal/compare/v0.31.1...v0.32.0">v0.32.0</a> - 2023-04-18</h3><h4 id="added-23"><a class="doc-anchor" href="#added-23">§</a>Added</h4>
<ul>
<li>feat: Add wasabi service implementation (#2004)</li>
<li>feat: improve the readability of oli command line error output (#2016)</li>
@@ -1895,22 +1943,22 @@ version (#2255)</li>
<li>feat(layer): add madsim layer (#2006)</li>
<li>feat(gcs): add support for gcs append (#1801)</li>
</ul>
-<h4 id="changed-20"><a class="doc-anchor" href="#changed-20">§</a>Changed</h4>
+<h4 id="changed-21"><a class="doc-anchor" href="#changed-21">§</a>Changed</h4>
<ul>
<li>refactor: Rename <code>Create</code> to <code>CreateDir</code> for its behavior changed (#2019)</li>
</ul>
-<h4 id="fixed-21"><a class="doc-anchor" href="#fixed-21">§</a>Fixed</h4>
+<h4 id="fixed-22"><a class="doc-anchor" href="#fixed-22">§</a>Fixed</h4>
<ul>
<li>fix: Cargo lock not updated (#2027)</li>
<li>fix(services/s3): Ignore empty query to make it more compatible (#2028)</li>
<li>fix(services/oss): Fix env not loaded for oss signer (#2029)</li>
</ul>
-<h4 id="docs-21"><a class="doc-anchor" href="#docs-21">§</a>Docs</h4>
+<h4 id="docs-22"><a class="doc-anchor" href="#docs-22">§</a>Docs</h4>
<ul>
<li>docs: fix some typos (#2022)</li>
<li>docs: add dev dependency section (#2021)</li>
</ul>
-<h3 id="v0311---2023-04-17"><a class="doc-anchor" href="#v0311---2023-04-17">§</a><a href="https://github.com/apache/opendal/compare/v0.31.0...v0.31.1">v0.31.1</a> - 2023-04-17</h3><h4 id="added-23"><a class="doc-anchor" href="#added-23">§</a>Added</h4>
+<h3 id="v0311---2023-04-17"><a class="doc-anchor" href="#v0311---2023-04-17">§</a><a href="https://github.com/apache/opendal/compare/v0.31.0...v0.31.1">v0.31.1</a> - 2023-04-17</h3><h4 id="added-24"><a class="doc-anchor" href="#added-24">§</a>Added</h4>
<ul>
<li>feat(services/azdfs): support rename (#1929)</li>
<li>test: Increate copy/move nested path test depth (#1932)</li>
@@ -1924,12 +1972,12 @@ version (#2255)</li>
<li>feat(services/gcs): Allow setting default storage_class (#1996)</li>
<li>feat(binding/C): add clang-format for c binding (#2003)</li>
</ul>
-<h4 id="changed-21"><a class="doc-anchor" href="#changed-21">§</a>Changed</h4>
+<h4 id="changed-22"><a class="doc-anchor" href="#changed-22">§</a>Changed</h4>
<ul>
<li>refactor: Polish the behavior of scan (#1926)</li>
<li>refactor: Polish the implementation of webhdfs (#1935)</li>
</ul>
-<h4 id="fixed-22"><a class="doc-anchor" href="#fixed-22">§</a>Fixed</h4>
+<h4 id="fixed-23"><a class="doc-anchor" href="#fixed-23">§</a>Fixed</h4>
<ul>
<li>fix: sled should not be enabled by default (#1923)</li>
<li>fix: kv adapter’s writer implementation fixed to honour empty writes (#193</li>
@@ -1940,7 +1988,7 @@ version (#2255)</li>
<ul>
<li>fix(services/azblob): fix copy missing content-length (#2000)</li>
</ul>
-<h4 id="docs-22"><a class="doc-anchor" href="#docs-22">§</a>Docs</h4>
+<h4 id="docs-23"><a class="doc-anchor" href="#docs-23">§</a>Docs</h4>
<ul>
<li>docs: Adding docs link to python binding (#1921)</li>
<li>docs(bindings/python): fix wrong doc link (#1928)</li>
@@ -1952,14 +2000,14 @@ version (#2255)</li>
<li>docs: Add OpenDAL VISION (#2007)</li>
<li>docs: update VISION and behavior tests doc (#2009)</li>
</ul>
-<h4 id="ci-21"><a class="doc-anchor" href="#ci-21">§</a>CI</h4>
+<h4 id="ci-22"><a class="doc-anchor" href="#ci-22">§</a>CI</h4>
<ul>
<li>ci(bindings/nodejs): Access should be set to public before publish (#1919)</li>
<li>ci: Re-enable webhdfs test (#1925)</li>
<li>chore: add .editorconfig (#1988)</li>
<li>ci: Fix format after adding editorconfig (#1990)</li>
</ul>
-<h3 id="v0310---2023-04-12"><a class="doc-anchor" href="#v0310---2023-04-12">§</a><a href="https://github.com/apache/opendal/compare/v0.30.5...v0.31.0">v0.31.0</a> - 2023-04-12</h3><h4 id="added-24"><a class="doc-anchor" href="#added-24">§</a>Added</h4>
+<h3 id="v0310---2023-04-12"><a class="doc-anchor" href="#v0310---2023-04-12">§</a><a href="https://github.com/apache/opendal/compare/v0.30.5...v0.31.0">v0.31.0</a> - 2023-04-12</h3><h4 id="added-25"><a class="doc-anchor" href="#added-25">§</a>Added</h4>
<ul>
<li>feat(bindings/java): add cucumber test (#1809)</li>
<li>feat(bindings/java): setup Java CI (#1823)</li>
@@ -1991,7 +2039,7 @@ version (#2255)</li>
<li>feat(services/oss): remove unused builder prop allow_anonymous (#1913)</li>
<li>feat: Add feature flag for all services (#1915)</li>
</ul>
-<h4 id="changed-22"><a class="doc-anchor" href="#changed-22">§</a>Changed</h4>
+<h4 id="changed-23"><a class="doc-anchor" href="#changed-23">§</a>Changed</h4>
<ul>
<li>refactor(core): Simplify the usage of BatchOperation and BatchResults (#1843)</li>
<li>refactor: Use reqwest blocking client instead of ureq (#1853)</li>
@@ -2006,7 +2054,7 @@ version (#2255)</li>
<li>refactor: Use chrono instead of time to work well with ecosystem (#1912)</li>
<li>refactor(service/obs): Migrate obs to async reqsign (#1914)</li>
</ul>
-<h4 id="fixed-23"><a class="doc-anchor" href="#fixed-23">§</a>Fixed</h4>
+<h4 id="fixed-24"><a class="doc-anchor" href="#fixed-24">§</a>Fixed</h4>
<ul>
<li>fix: podling website check (#1838)</li>
<li>fix(website): copyright update (#1839)</li>
@@ -2014,19 +2062,19 @@ version (#2255)</li>
<li>fix(core): S3 Copy should set SSE headers (#1860)</li>
<li>fix: Fix presign related unit tests (#1910)</li>
</ul>
-<h4 id="docs-23"><a class="doc-anchor" href="#docs-23">§</a>Docs</h4>
+<h4 id="docs-24"><a class="doc-anchor" href="#docs-24">§</a>Docs</h4>
<ul>
<li>docs(bindings/nodejs): fix build failed (#1819)</li>
<li>docs: fix several typos in the documentation (#1846)</li>
<li>doc(bindings/nodejs): update presign example in doc (#1901)</li>
</ul>
-<h4 id="ci-22"><a class="doc-anchor" href="#ci-22">§</a>CI</h4>
+<h4 id="ci-23"><a class="doc-anchor" href="#ci-23">§</a>CI</h4>
<ul>
<li>ci: Fix build for nodejs binding on macos (#1813)</li>
<li>binding/c: build: add phony to makefile, and some improve (#1850)</li>
<li>ci: upgrade hawkeye action (#1834)</li>
</ul>
-<h4 id="chore-19"><a class="doc-anchor" href="#chore-19">§</a>Chore</h4>
+<h4 id="chore-20"><a class="doc-anchor" href="#chore-20">§</a>Chore</h4>
<ul>
<li>chore(bindings/nodejs): add deno benchmark (#1814)</li>
<li>chore: Add CODEOWNERS (#1817)</li>
@@ -2039,7 +2087,7 @@ version (#2255)</li>
<li>chore: Make clippy happy (#1865)</li>
<li>binding(python): Format python code in binding (#1885)</li>
</ul>
-<h3 id="v0305---2023-03-31"><a class="doc-anchor" href="#v0305---2023-03-31">§</a><a href="https://github.com/apache/opendal/compare/v0.30.4...v0.30.5">v0.30.5</a> - 2023-03-31</h3><h4 id="added-25"><a class="doc-anchor" href="#added-25">§</a>Added</h4>
+<h3 id="v0305---2023-03-31"><a class="doc-anchor" href="#v0305---2023-03-31">§</a><a href="https://github.com/apache/opendal/compare/v0.30.4...v0.30.5">v0.30.5</a> - 2023-03-31</h3><h4 id="added-26"><a class="doc-anchor" href="#added-26">§</a>Added</h4>
<ul>
<li>feat(oli): implement <code>oli rm</code> (#1774)</li>
<li>feat(bindings/nodejs): Support presign (#1772)</li>
@@ -2053,25 +2101,25 @@ version (#2255)</li>
<li>feat: add override_cache_control (#1804)</li>
<li>feat: add cache_control to OpWrite (#1806)</li>
</ul>
-<h4 id="changed-23"><a class="doc-anchor" href="#changed-23">§</a>Changed</h4>
+<h4 id="changed-24"><a class="doc-anchor" href="#changed-24">§</a>Changed</h4>
<ul>
<li>refactor(oli): switch to <code>Operator::scan</code> and <code>Operator::remove_all</code> (#1779)</li>
<li>refactor(bindings/nodejs): Polish benchmark to make it more readable (#1810)</li>
</ul>
-<h4 id="fixed-24"><a class="doc-anchor" href="#fixed-24">§</a>Fixed</h4>
+<h4 id="fixed-25"><a class="doc-anchor" href="#fixed-25">§</a>Fixed</h4>
<ul>
<li>fix(oli): set the root of fs service to ‘/’ (#1773)</li>
<li>fix: align WebDAV stat with RFC specification (#1783)</li>
<li>fix(bindings/nodejs): fix read benchmark (#1805)</li>
</ul>
-<h4 id="ci-23"><a class="doc-anchor" href="#ci-23">§</a>CI</h4>
+<h4 id="ci-24"><a class="doc-anchor" href="#ci-24">§</a>CI</h4>
<ul>
<li>ci: Split clippy and docs check (#1785)</li>
<li>ci(bindings/nodejs): Support aarch64-apple-darwin (#1780)</li>
<li>ci(bindings/nodejs): publish with LICENSE & NOTICE (#1790)</li>
<li>ci(services/redis): Add dragonfly test (#1808)</li>
</ul>
-<h4 id="chore-20"><a class="doc-anchor" href="#chore-20">§</a>Chore</h4>
+<h4 id="chore-21"><a class="doc-anchor" href="#chore-21">§</a>Chore</h4>
<ul>
<li>chore(bindings/python): update maturin to 0.14.16 (#1777)</li>
<li>chore(bin/oli): Set oli version from package version (#1786)</li>
@@ -2080,7 +2128,7 @@ version (#2255)</li>
<li>chore(bindings/nodejs): init benchmark (#1798)</li>
<li>chore(bindings/nodejs): Fix generated headers (#1802)</li>
</ul>
-<h3 id="v0304---2023-03-26"><a class="doc-anchor" href="#v0304---2023-03-26">§</a><a href="https://github.com/apache/opendal/compare/v0.30.3...v0.30.4">v0.30.4</a> - 2023-03-26</h3><h4 id="added-26"><a class="doc-anchor" href="#added-26">§</a>Added</h4>
+<h3 id="v0304---2023-03-26"><a class="doc-anchor" href="#v0304---2023-03-26">§</a><a href="https://github.com/apache/opendal/compare/v0.30.3...v0.30.4">v0.30.4</a> - 2023-03-26</h3><h4 id="added-27"><a class="doc-anchor" href="#added-27">§</a>Added</h4>
<ul>
<li>feat(oli): add config file to oli (#1706)</li>
<li>feat: make oli support more services (#1717)</li>
@@ -2097,17 +2145,17 @@ version (#2255)</li>
<li>feat(oli): implement oli ls (#1755)</li>
<li>feat(oli): implement oli cat (#1759)</li>
</ul>
-<h4 id="fixed-25"><a class="doc-anchor" href="#fixed-25">§</a>Fixed</h4>
+<h4 id="fixed-26"><a class="doc-anchor" href="#fixed-26">§</a>Fixed</h4>
<ul>
<li>fix(bindings/nodejs): Publish sub-package name (#1704)</li>
</ul>
-<h4 id="docs-24"><a class="doc-anchor" href="#docs-24">§</a>Docs</h4>
+<h4 id="docs-25"><a class="doc-anchor" href="#docs-25">§</a>Docs</h4>
<ul>
<li>docs: Update comparison vs object_store (#1698)</li>
<li>docs(bindings/python): add pdoc to docs env (#1718)</li>
<li>docs: List working on bindings in README (#1753)</li>
</ul>
-<h4 id="ci-24"><a class="doc-anchor" href="#ci-24">§</a>CI</h4>
+<h4 id="ci-25"><a class="doc-anchor" href="#ci-25">§</a>CI</h4>
<ul>
<li>ci: Fix workflow not triggered when itself changed (#1716)</li>
<li>ci: Remove ROCKSDB_LIB_DIR after we didn’t install librocksdb (#1719)</li>
@@ -2116,7 +2164,7 @@ version (#2255)</li>
<li>ci: add a basic ci for ruby (#1744)</li>
<li>ci: Remove target from cache (#1764)</li>
</ul>
-<h4 id="chore-21"><a class="doc-anchor" href="#chore-21">§</a>Chore</h4>
+<h4 id="chore-22"><a class="doc-anchor" href="#chore-22">§</a>Chore</h4>
<ul>
<li>chore: Fix CHANGELOG not found (#1694)</li>
<li>chore: Remove publish=false of oli (#1697)</li>
@@ -2129,7 +2177,7 @@ version (#2255)</li>
<li>chore: improve NotADirectory error message with ending slash (#1756)</li>
<li>chore(bindings/python): update pyo3 to 0.18.2 (#1758)</li>
</ul>
-<h3 id="v0303---2023-03-16"><a class="doc-anchor" href="#v0303---2023-03-16">§</a><a href="https://github.com/apache/opendal/compare/v0.30.2...v0.30.3">v0.30.3</a> - 2023-03-16</h3><h4 id="added-27"><a class="doc-anchor" href="#added-27">§</a>Added</h4>
+<h3 id="v0303---2023-03-16"><a class="doc-anchor" href="#v0303---2023-03-16">§</a><a href="https://github.com/apache/opendal/compare/v0.30.2...v0.30.3">v0.30.3</a> - 2023-03-16</h3><h4 id="added-28"><a class="doc-anchor" href="#added-28">§</a>Added</h4>
<ul>
<li>feat: Infer storage name based on endpoint (#1551)</li>
<li>feat(bindings/python): implement async file-like reader API (#1570)</li>
@@ -2148,12 +2196,12 @@ version (#2255)</li>
<li>feat(bindings/python): add auto-generated api docs (#1613)</li>
<li>feat(bindings/python): add <code>__repr__</code> to <code>Operator</code> and <code>AsyncOperator</code> (#1683)</li>
</ul>
-<h4 id="changed-24"><a class="doc-anchor" href="#changed-24">§</a>Changed</h4>
+<h4 id="changed-25"><a class="doc-anchor" href="#changed-25">§</a>Changed</h4>
<ul>
<li>*: Change all files licenses to ASF (#1592)</li>
<li>refactor(bindings/python): only enable <code>pyo3/entension-module</code> feature when building with maturin (#1680)</li>
</ul>
-<h4 id="fixed-26"><a class="doc-anchor" href="#fixed-26">§</a>Fixed</h4>
+<h4 id="fixed-27"><a class="doc-anchor" href="#fixed-27">§</a>Fixed</h4>
<ul>
<li>fix(bindings/python): Fix the metadata for Python binding (#1568)</li>
<li>fix: Operator::remove_all behaviour on non-existing object fixed (#1587)</li>
@@ -2161,7 +2209,7 @@ version (#2255)</li>
<li>fix: Bucket config related error is misleadling (#1684)</li>
<li>fix(services/s3): UploadId should be percent encoded (#1690)</li>
</ul>
-<h4 id="ci-25"><a class="doc-anchor" href="#ci-25">§</a>CI</h4>
+<h4 id="ci-26"><a class="doc-anchor" href="#ci-26">§</a>CI</h4>
<ul>
<li>ci: Fix typo in workflows (#1582)</li>
<li>ci: Don’t check dep updates so frequently (#1599)</li>
@@ -2181,7 +2229,7 @@ version (#2255)</li>
<li>ci: Fix license header check and doc check (#1674)</li>
<li>infra: Add odev to simplify contributor’s setup (#1687)</li>
</ul>
-<h4 id="docs-25"><a class="doc-anchor" href="#docs-25">§</a>Docs</h4>
+<h4 id="docs-26"><a class="doc-anchor" href="#docs-26">§</a>Docs</h4>
<ul>
<li>docs: Migrate links to o.a.o (#1630)</li>
<li>docs: update the old address and the LICENSE size. (#1633)</li>
@@ -2199,7 +2247,7 @@ version (#2255)</li>
<li>website: Add GitHub entry (#1636)</li>
<li>website: move some content of footer to navbar. (#1660)</li>
</ul>
-<h4 id="chore-22"><a class="doc-anchor" href="#chore-22">§</a>Chore</h4>
+<h4 id="chore-23"><a class="doc-anchor" href="#chore-23">§</a>Chore</h4>
<ul>
<li>chore(bindings/nodejs): fix missing files to publish (#1569)</li>
<li>chore(deps): bump lazy-regex from 2.4.1 to 2.5.0 (#1573)</li>
@@ -2228,23 +2276,23 @@ version (#2255)</li>
<li>chore: Remove not needed ignore from licenserc (#1677)</li>
<li>chore: Ignore generated docs from git (#1686)</li>
</ul>
-<h3 id="v0302---2023-03-10"><a class="doc-anchor" href="#v0302---2023-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.30.1...v0.30.2">v0.30.2</a> - 2023-03-10</h3><h4 id="ci-26"><a class="doc-anchor" href="#ci-26">§</a>CI</h4>
+<h3 id="v0302---2023-03-10"><a class="doc-anchor" href="#v0302---2023-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.30.1...v0.30.2">v0.30.2</a> - 2023-03-10</h3><h4 id="ci-27"><a class="doc-anchor" href="#ci-27">§</a>CI</h4>
<ul>
<li>ci(bindings/nodejs): Fix nodejs package can’t uploaded (#1564)</li>
</ul>
-<h3 id="v0301---2023-03-10"><a class="doc-anchor" href="#v0301---2023-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.30.0...v0.30.1">v0.30.1</a> - 2023-03-10</h3><h4 id="docs-26"><a class="doc-anchor" href="#docs-26">§</a>Docs</h4>
+<h3 id="v0301---2023-03-10"><a class="doc-anchor" href="#v0301---2023-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.30.0...v0.30.1">v0.30.1</a> - 2023-03-10</h3><h4 id="docs-27"><a class="doc-anchor" href="#docs-27">§</a>Docs</h4>
<ul>
<li>docs: Fix Operator::create() has been removed (#1560)</li>
</ul>
-<h4 id="ci-27"><a class="doc-anchor" href="#ci-27">§</a>CI</h4>
+<h4 id="ci-28"><a class="doc-anchor" href="#ci-28">§</a>CI</h4>
<ul>
<li>ci: Fix python & nodejs not released correctly (#1559)</li>
</ul>
-<h4 id="chore-23"><a class="doc-anchor" href="#chore-23">§</a>Chore</h4>
+<h4 id="chore-24"><a class="doc-anchor" href="#chore-24">§</a>Chore</h4>
<ul>
<li>chore(bindings/nodejs): update license in package.json (#1556)</li>
</ul>
-<h3 id="v0300---2023-03-10"><a class="doc-anchor" href="#v0300---2023-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.29.1...v0.30.0">v0.30.0</a> - 2023-03-10</h3><h4 id="added-28"><a class="doc-anchor" href="#added-28">§</a>Added</h4>
+<h3 id="v0300---2023-03-10"><a class="doc-anchor" href="#v0300---2023-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.29.1...v0.30.0">v0.30.0</a> - 2023-03-10</h3><h4 id="added-29"><a class="doc-anchor" href="#added-29">§</a>Added</h4>
<ul>
<li>RFC-1477: Remove Object Concept (#1477)</li>
<li>feat(bindings/nodejs): fs Operator (#1485)</li>
@@ -2265,7 +2313,7 @@ version (#2255)</li>
<li>feat(bindings/nodejs): Support Operator.scanSync & Operator.listSync (#1546)</li>
<li>feat: remove_via can delete files concurrently (#1495)</li>
</ul>
-<h4 id="changed-25"><a class="doc-anchor" href="#changed-25">§</a>Changed</h4>
+<h4 id="changed-26"><a class="doc-anchor" href="#changed-26">§</a>Changed</h4>
<ul>
<li>refactor: Split operator APIs into different part (#1483)</li>
<li>refactor: Remove Object prefix for public API (#1488)</li>
@@ -2277,50 +2325,50 @@ version (#2255)</li>
<li>refactor: improve the python binding implementation (#1517)</li>
<li>refactor(bindings/nodejs): Remove scheme from bindings (#1552)</li>
</ul>
-<h4 id="fixed-27"><a class="doc-anchor" href="#fixed-27">§</a>Fixed</h4>
+<h4 id="fixed-28"><a class="doc-anchor" href="#fixed-28">§</a>Fixed</h4>
<ul>
<li>fix(services/s3): Make sure the ureq’s body has been consumed (#1497)</li>
<li>fix(services/s3): Allow retry error RequestTimeout (#1532)</li>
</ul>
-<h4 id="docs-27"><a class="doc-anchor" href="#docs-27">§</a>Docs</h4>
+<h4 id="docs-28"><a class="doc-anchor" href="#docs-28">§</a>Docs</h4>
<ul>
<li>docs: Remove all references to object (#1500)</li>
<li>docs(bindings/python): Add building docs (#1526)</li>
<li>docs(bindings/nodejs): update readme (#1527)</li>
<li>docs: Add detailed docs for create_dir (#1537)</li>
</ul>
-<h4 id="ci-28"><a class="doc-anchor" href="#ci-28">§</a>CI</h4>
+<h4 id="ci-29"><a class="doc-anchor" href="#ci-29">§</a>CI</h4>
<ul>
<li>ci: Don’t run binding tests if only services changes (#1498)</li>
<li>ci: Improve rocksdb build speed by link dynamic libs (#1502)</li>
<li>ci: Fix bindings CI not running on PR (#1530)</li>
<li>ci: Polish scripts and prepare for releasing (#1553)</li>
</ul>
-<h4 id="chore-24"><a class="doc-anchor" href="#chore-24">§</a>Chore</h4>
+<h4 id="chore-25"><a class="doc-anchor" href="#chore-25">§</a>Chore</h4>
<ul>
<li>chore: Re-organize the project layout (#1489)</li>
<li>chore: typo & clippy (#1499)</li>
<li>chore: typo (#1501)</li>
<li>chore: Move memcache-async into opendal (#1544)</li>
</ul>
-<h3 id="v0291---2023-03-05"><a class="doc-anchor" href="#v0291---2023-03-05">§</a><a href="https://github.com/apache/opendal/compare/v0.29.0...v0.29.1">v0.29.1</a> - 2023-03-05</h3><h4 id="added-29"><a class="doc-anchor" href="#added-29">§</a>Added</h4>
+<h3 id="v0291---2023-03-05"><a class="doc-anchor" href="#v0291---2023-03-05">§</a><a href="https://github.com/apache/opendal/compare/v0.29.0...v0.29.1">v0.29.1</a> - 2023-03-05</h3><h4 id="added-30"><a class="doc-anchor" href="#added-30">§</a>Added</h4>
<ul>
<li>feat(bindings/python): Add basic IO support (#1464)</li>
<li>feat(binding/node.js): basic IO (#1416)</li>
<li>feat(bindings/nodejs): Align to OpenDAL exports (#1466)</li>
<li>chore(bindings/nodejs): remove duplicate attribute & unused comment (#1478)</li>
</ul>
-<h4 id="changed-26"><a class="doc-anchor" href="#changed-26">§</a>Changed</h4>
+<h4 id="changed-27"><a class="doc-anchor" href="#changed-27">§</a>Changed</h4>
<ul>
<li>refactor: Promote operator as a mod for further refactor (#1479)</li>
</ul>
-<h4 id="docs-28"><a class="doc-anchor" href="#docs-28">§</a>Docs</h4>
+<h4 id="docs-29"><a class="doc-anchor" href="#docs-29">§</a>Docs</h4>
<ul>
<li>docs: Add convert from m*n to m+n (#1454)</li>
<li>docs: Polish comments for public types (#1455)</li>
<li>docs: Add discord chat link (#1474)</li>
</ul>
-<h4 id="chore-25"><a class="doc-anchor" href="#chore-25">§</a>Chore</h4>
+<h4 id="chore-26"><a class="doc-anchor" href="#chore-26">§</a>Chore</h4>
<ul>
<li>chore: fix typo (#1456)</li>
<li>chore: fix typo (#1459)</li>
@@ -2328,7 +2376,7 @@ version (#2255)</li>
<li>chore(bindings/nodjes): Don’t check-in binaries (#1469)</li>
<li>chore(binding/nodejs): specific package manager version with hash (#1470)</li>
</ul>
-<h3 id="v0290---2023-03-01"><a class="doc-anchor" href="#v0290---2023-03-01">§</a><a href="https://github.com/apache/opendal/compare/v0.28.0...v0.29.0">v0.29.0</a> - 2023-03-01</h3><h4 id="added-30"><a class="doc-anchor" href="#added-30">§</a>Added</h4>
+<h3 id="v0290---2023-03-01"><a class="doc-anchor" href="#v0290---2023-03-01">§</a><a href="https://github.com/apache/opendal/compare/v0.28.0...v0.29.0">v0.29.0</a> - 2023-03-01</h3><h4 id="added-31"><a class="doc-anchor" href="#added-31">§</a>Added</h4>
<ul>
<li>RFC-1420: Object Writer (#1420)</li>
<li>feat: oss backend support http protocol (#1432)</li>
@@ -2336,23 +2384,23 @@ version (#2255)</li>
<li>feat/layers/retry: Add Write Retry support (#1447)</li>
<li>feat: Add Write append tests (#1448)</li>
</ul>
-<h4 id="changed-27"><a class="doc-anchor" href="#changed-27">§</a>Changed</h4>
+<h4 id="changed-28"><a class="doc-anchor" href="#changed-28">§</a>Changed</h4>
<ul>
<li>refactor: Decouple decompress read feature from opendal (#1406)</li>
<li>refactor: Cleanup pager related implementation (#1439)</li>
<li>refactor: Polish the implement details for Writer (#1445)</li>
<li>refactor: Remove <code>io::input</code> and Rename <code>io::output</code> to <code>oio</code> (#1446)</li>
</ul>
-<h4 id="fixed-28"><a class="doc-anchor" href="#fixed-28">§</a>Fixed</h4>
+<h4 id="fixed-29"><a class="doc-anchor" href="#fixed-29">§</a>Fixed</h4>
<ul>
<li>fix(services/s3): Fix part number for AWS S3 (#1450)</li>
</ul>
-<h4 id="ci-29"><a class="doc-anchor" href="#ci-29">§</a>CI</h4>
+<h4 id="ci-30"><a class="doc-anchor" href="#ci-30">§</a>CI</h4>
<ul>
<li>ci: Consistently apply license header (#1411)</li>
<li>ci: add typos check (#1425)</li>
</ul>
-<h4 id="docs-29"><a class="doc-anchor" href="#docs-29">§</a>Docs</h4>
+<h4 id="docs-30"><a class="doc-anchor" href="#docs-30">§</a>Docs</h4>
<ul>
<li>docs: Add services-dashmap feature (#1404)</li>
<li>docs: Fix incorrect indent for title (#1405)</li>
@@ -2361,29 +2409,29 @@ version (#2255)</li>
<li>docs: Add tutorial of building a duck storage service (#1410)</li>
<li>docs: Add a basic object example (#1422)</li>
</ul>
-<h4 id="chore-26"><a class="doc-anchor" href="#chore-26">§</a>Chore</h4>
+<h4 id="chore-27"><a class="doc-anchor" href="#chore-27">§</a>Chore</h4>
<ul>
<li>chore: typo fix (#1418)</li>
<li>chore: Make license check happy (#1423)</li>
<li>chore: typo-fix (#1434)</li>
</ul>
-<h3 id="v0280---2023-02-22"><a class="doc-anchor" href="#v0280---2023-02-22">§</a><a href="https://github.com/apache/opendal/compare/v0.27.2...v0.28.0">v0.28.0</a> - 2023-02-22</h3><h4 id="added-31"><a class="doc-anchor" href="#added-31">§</a>Added</h4>
+<h3 id="v0280---2023-02-22"><a class="doc-anchor" href="#v0280---2023-02-22">§</a><a href="https://github.com/apache/opendal/compare/v0.27.2...v0.28.0">v0.28.0</a> - 2023-02-22</h3><h4 id="added-32"><a class="doc-anchor" href="#added-32">§</a>Added</h4>
<ul>
<li>feat: add dashmap support (#1390)</li>
</ul>
-<h4 id="changed-28"><a class="doc-anchor" href="#changed-28">§</a>Changed</h4>
+<h4 id="changed-29"><a class="doc-anchor" href="#changed-29">§</a>Changed</h4>
<ul>
<li>refactor: Implement query based object metadata cache (#1395)</li>
<li>refactor: Store complete inside bits and add more examples (#1397)</li>
<li>refactor: Trigger panic if users try to visit not fetched metadata (#1399)</li>
<li>refactor: Polish the implement of Query Based Metadata Cache (#1400)</li>
</ul>
-<h4 id="docs-30"><a class="doc-anchor" href="#docs-30">§</a>Docs</h4>
+<h4 id="docs-31"><a class="doc-anchor" href="#docs-31">§</a>Docs</h4>
<ul>
<li>RFC-1391: Object Metadataer (#1391)</li>
<li>RFC-1398: Query Based Metadata (#1398)</li>
</ul>
-<h3 id="v0272---2023-02-20"><a class="doc-anchor" href="#v0272---2023-02-20">§</a><a href="https://github.com/apache/opendal/compare/v0.27.1...v0.27.2">v0.27.2</a> - 2023-02-20</h3><h4 id="added-32"><a class="doc-anchor" href="#added-32">§</a>Added</h4>
+<h3 id="v0272---2023-02-20"><a class="doc-anchor" href="#v0272---2023-02-20">§</a><a href="https://github.com/apache/opendal/compare/v0.27.1...v0.27.2">v0.27.2</a> - 2023-02-20</h3><h4 id="added-33"><a class="doc-anchor" href="#added-33">§</a>Added</h4>
<ul>
<li>feat: Add batch API for Accessor (#1339)</li>
<li>feat: add Content-Disposition for inner API (#1347)</li>
@@ -2395,7 +2443,7 @@ version (#2255)</li>
<li>feat: Integrate batch with existing ecosystem better (#1378)</li>
<li>feat: Add batch delete support for oss (#1385)</li>
</ul>
-<h4 id="changed-29"><a class="doc-anchor" href="#changed-29">§</a>Changed</h4>
+<h4 id="changed-30"><a class="doc-anchor" href="#changed-30">§</a>Changed</h4>
<ul>
<li>refactor: Authorization logic for WebdavBackend (#1348)</li>
<li>refactor(webhdfs): handle 307 redirection instead of noredirect (#1358)</li>
@@ -2403,12 +2451,12 @@ version (#2255)</li>
<li>refactor: Cleanup duplicated code (#1373)</li>
<li>refactor: Cleanup some not needed error context (#1374)</li>
</ul>
-<h4 id="docs-31"><a class="doc-anchor" href="#docs-31">§</a>Docs</h4>
+<h4 id="docs-32"><a class="doc-anchor" href="#docs-32">§</a>Docs</h4>
<ul>
<li>docs: Fix broken links (#1344)</li>
<li>docs: clarify about opendal user defined client (#1356)</li>
</ul>
-<h4 id="fixed-29"><a class="doc-anchor" href="#fixed-29">§</a>Fixed</h4>
+<h4 id="fixed-30"><a class="doc-anchor" href="#fixed-30">§</a>Fixed</h4>
<ul>
<li>fix(webhdfs): should prepend http:// scheme (#1354)</li>
</ul>
@@ -2418,7 +2466,7 @@ version (#2255)</li>
<li>ci: Only run service test on changing (#1363)</li>
<li>ci: run tests with nextest (#1370)</li>
</ul>
-<h3 id="v0271---2023-02-13"><a class="doc-anchor" href="#v0271---2023-02-13">§</a><a href="https://github.com/apache/opendal/compare/v0.27.0...v0.27.1">v0.27.1</a> - 2023-02-13</h3><h4 id="added-33"><a class="doc-anchor" href="#added-33">§</a>Added</h4>
+<h3 id="v0271---2023-02-13"><a class="doc-anchor" href="#v0271---2023-02-13">§</a><a href="https://github.com/apache/opendal/compare/v0.27.0...v0.27.1">v0.27.1</a> - 2023-02-13</h3><h4 id="added-34"><a class="doc-anchor" href="#added-34">§</a>Added</h4>
<ul>
<li>feat: Add username and password support for WebDAV (#1323)</li>
<li>ci: Add test case for webdav with basic auth (#1327)</li>
@@ -2426,23 +2474,23 @@ version (#2255)</li>
<li>feat: Add scan support for kv adapter (#1333)</li>
<li>feat: Add scan support for sled (#1334)</li>
</ul>
-<h4 id="changed-30"><a class="doc-anchor" href="#changed-30">§</a>Changed</h4>
+<h4 id="changed-31"><a class="doc-anchor" href="#changed-31">§</a>Changed</h4>
<ul>
<li>chore(deps): update moka requirement from 0.9 to 0.10 (#1331)</li>
<li>chore(deps): update rocksdb requirement from 0.19 to 0.20 (#1332)</li>
</ul>
-<h4 id="fixed-30"><a class="doc-anchor" href="#fixed-30">§</a>Fixed</h4>
+<h4 id="fixed-31"><a class="doc-anchor" href="#fixed-31">§</a>Fixed</h4>
<ul>
<li>fix(services/oss,s3): Metadata should be marked as complete (#1335)</li>
</ul>
-<h3 id="v0270---2023-02-11"><a class="doc-anchor" href="#v0270---2023-02-11">§</a><a href="https://github.com/apache/opendal/compare/v0.26.2...v0.27.0">v0.27.0</a> - 2023-02-11</h3><h4 id="added-34"><a class="doc-anchor" href="#added-34">§</a>Added</h4>
+<h3 id="v0270---2023-02-11"><a class="doc-anchor" href="#v0270---2023-02-11">§</a><a href="https://github.com/apache/opendal/compare/v0.26.2...v0.27.0">v0.27.0</a> - 2023-02-11</h3><h4 id="added-35"><a class="doc-anchor" href="#added-35">§</a>Added</h4>
<ul>
<li>feat: Add Retryable Pager Support (#1304)</li>
<li>feat: Add Sled support (#1305)</li>
<li>feat: Add Object::scan() support (#1314)</li>
<li>feat: Add object page size support (#1318)</li>
</ul>
-<h4 id="changed-31"><a class="doc-anchor" href="#changed-31">§</a>Changed</h4>
+<h4 id="changed-32"><a class="doc-anchor" href="#changed-32">§</a>Changed</h4>
<ul>
<li>refactor: Hide backon from our public API (#1302)</li>
<li>refactor: Don’t expose ops structs to users directly (#1303)</li>
@@ -2451,87 +2499,87 @@ version (#2255)</li>
<li>deps: remove unused deps (#1321)</li>
<li>refactor: Extract scan as a new API and remove ListStyle (#1324)</li>
</ul>
-<h4 id="docs-32"><a class="doc-anchor" href="#docs-32">§</a>Docs</h4>
+<h4 id="docs-33"><a class="doc-anchor" href="#docs-33">§</a>Docs</h4>
<ul>
<li>docs: Add risingwave in projects (#1322)</li>
</ul>
-<h4 id="fixed-31"><a class="doc-anchor" href="#fixed-31">§</a>Fixed</h4>
+<h4 id="fixed-32"><a class="doc-anchor" href="#fixed-32">§</a>Fixed</h4>
<ul>
<li>ci: Fix dev container Dockerfile (#1298)</li>
<li>fix: Rocksdb’s scheme not output correctly (#1300)</li>
<li>chore: fix name typo in oss backend (#1316)</li>
<li>chore: Add typos-cli and fix typos (#1320)</li>
</ul>
-<h3 id="v0262---2023-02-07"><a class="doc-anchor" href="#v0262---2023-02-07">§</a><a href="https://github.com/apache/opendal/compare/v0.26.1...v0.26.2">v0.26.2</a> - 2023-02-07</h3><h4 id="added-35"><a class="doc-anchor" href="#added-35">§</a>Added</h4>
+<h3 id="v0262---2023-02-07"><a class="doc-anchor" href="#v0262---2023-02-07">§</a><a href="https://github.com/apache/opendal/compare/v0.26.1...v0.26.2">v0.26.2</a> - 2023-02-07</h3><h4 id="added-36"><a class="doc-anchor" href="#added-36">§</a>Added</h4>
<ul>
<li>feat: Add ChaosLayer to inject errors into underlying services (#1287)</li>
<li>feat: Implement retry reader (#1291)</li>
<li>feat: use std::path::Path for fs backend (#1100)</li>
<li>feat: Implement services webhdfs (#1263)</li>
</ul>
-<h4 id="changed-32"><a class="doc-anchor" href="#changed-32">§</a>Changed</h4>
+<h4 id="changed-33"><a class="doc-anchor" href="#changed-33">§</a>Changed</h4>
<ul>
<li>refactor: Split CompleteReaderLayer from TypeEraserLayer (#1290)</li>
<li>refactor(services/fs): Remove not needed generic (#1292)</li>
</ul>
-<h4 id="docs-33"><a class="doc-anchor" href="#docs-33">§</a>Docs</h4>
+<h4 id="docs-34"><a class="doc-anchor" href="#docs-34">§</a>Docs</h4>
<ul>
<li>docs: fix typo (#1285)</li>
<li>docs: Polish docs for better reading (#1288)</li>
</ul>
-<h4 id="fixed-32"><a class="doc-anchor" href="#fixed-32">§</a>Fixed</h4>
+<h4 id="fixed-33"><a class="doc-anchor" href="#fixed-33">§</a>Fixed</h4>
<ul>
<li>fix: FsBuilder can’t be used with empty root anymore (#1293)</li>
<li>fix: Fix retry happened in seek’s read ahead logic (#1294)</li>
</ul>
-<h3 id="v0261---2023-02-05"><a class="doc-anchor" href="#v0261---2023-02-05">§</a><a href="https://github.com/apache/opendal/compare/v0.26.0...v0.26.1">v0.26.1</a> - 2023-02-05</h3><h4 id="changed-33"><a class="doc-anchor" href="#changed-33">§</a>Changed</h4>
+<h3 id="v0261---2023-02-05"><a class="doc-anchor" href="#v0261---2023-02-05">§</a><a href="https://github.com/apache/opendal/compare/v0.26.0...v0.26.1">v0.26.1</a> - 2023-02-05</h3><h4 id="changed-34"><a class="doc-anchor" href="#changed-34">§</a>Changed</h4>
<ul>
<li>refactor: Remove not used layer subdir (#1280)</li>
</ul>
-<h4 id="docs-34"><a class="doc-anchor" href="#docs-34">§</a>Docs</h4>
+<h4 id="docs-35"><a class="doc-anchor" href="#docs-35">§</a>Docs</h4>
<ul>
<li>docs: Add v0.26 upgrade guide (#1276)</li>
<li>docs: Add feature sets in services (#1277)</li>
<li>docs: Migrate all docs in rustdoc instead (#1281)</li>
<li>docs: Fix index page not redirected (#1282)</li>
</ul>
-<h3 id="v0260---2023-02-04"><a class="doc-anchor" href="#v0260---2023-02-04">§</a><a href="https://github.com/apache/opendal/compare/v0.25.2...v0.26.0">v0.26.0</a> - 2023-02-04</h3><h4 id="added-36"><a class="doc-anchor" href="#added-36">§</a>Added</h4>
+<h3 id="v0260---2023-02-04"><a class="doc-anchor" href="#v0260---2023-02-04">§</a><a href="https://github.com/apache/opendal/compare/v0.25.2...v0.26.0">v0.26.0</a> - 2023-02-04</h3><h4 id="added-37"><a class="doc-anchor" href="#added-37">§</a>Added</h4>
<ul>
<li>feat: Add benchmarks for blocking_seek operations (#1258)</li>
<li>feat: add dev container (#1261)</li>
<li>feat: Zero Cost OpenDAL (#1260)</li>
<li>feat: Allow dynamic dispatch layer (#1273)</li>
</ul>
-<h4 id="changed-34"><a class="doc-anchor" href="#changed-34">§</a>Changed</h4>
+<h4 id="changed-35"><a class="doc-anchor" href="#changed-35">§</a>Changed</h4>
<ul>
<li>refactor: remove the duplicated dependency in dev-dependencies (#1257)</li>
<li>refactor: some code in GitHub Actions (#1269)</li>
<li>refactor: Don’t expose services mod directly (#1271)</li>
<li>refactor: Polish Builder API (#1272)</li>
</ul>
-<h3 id="v0252---2023-01-30"><a class="doc-anchor" href="#v0252---2023-01-30">§</a><a href="https://github.com/apache/opendal/compare/v0.25.1...v0.25.2">v0.25.2</a> - 2023-01-30</h3><h4 id="added-37"><a class="doc-anchor" href="#added-37">§</a>Added</h4>
+<h3 id="v0252---2023-01-30"><a class="doc-anchor" href="#v0252---2023-01-30">§</a><a href="https://github.com/apache/opendal/compare/v0.25.1...v0.25.2">v0.25.2</a> - 2023-01-30</h3><h4 id="added-38"><a class="doc-anchor" href="#added-38">§</a>Added</h4>
<ul>
<li>feat: Add basic object_store support (#1243)</li>
<li>feat: Implement webdav support (#1246)</li>
<li>feat: Allow passing content_type to OSS presign (#1252)</li>
<li>feat: Make sure short functions have been inlined (#1253)</li>
</ul>
-<h4 id="changed-35"><a class="doc-anchor" href="#changed-35">§</a>Changed</h4>
+<h4 id="changed-36"><a class="doc-anchor" href="#changed-36">§</a>Changed</h4>
<ul>
<li>refacor(services/fs): Make normalized path check optional (#1242)</li>
</ul>
-<h4 id="docs-35"><a class="doc-anchor" href="#docs-35">§</a>Docs</h4>
+<h4 id="docs-36"><a class="doc-anchor" href="#docs-36">§</a>Docs</h4>
<ul>
<li>docs(http): remove out-dated comments (#1240)</li>
<li>docs: Add bindings in README (#1244)</li>
<li>docs: Add docs for webdav and http services (#1248)</li>
<li>docs: Add webdav in lib docs (#1249)</li>
</ul>
-<h4 id="fixed-33"><a class="doc-anchor" href="#fixed-33">§</a>Fixed</h4>
+<h4 id="fixed-34"><a class="doc-anchor" href="#fixed-34">§</a>Fixed</h4>
<ul>
<li>fix(services/ghac): Fix log message for ghac_upload in write (#1239)</li>
</ul>
-<h3 id="v0251---2023-01-27"><a class="doc-anchor" href="#v0251---2023-01-27">§</a><a href="https://github.com/apache/opendal/compare/v0.25.0...v0.25.1">v0.25.1</a> - 2023-01-27</h3><h4 id="added-38"><a class="doc-anchor" href="#added-38">§</a>Added</h4>
+<h3 id="v0251---2023-01-27"><a class="doc-anchor" href="#v0251---2023-01-27">§</a><a href="https://github.com/apache/opendal/compare/v0.25.0...v0.25.1">v0.25.1</a> - 2023-01-27</h3><h4 id="added-39"><a class="doc-anchor" href="#added-39">§</a>Added</h4>
<ul>
<li>ci: Setup benchmark workflow (#1200)</li>
<li>feat: Let’s try play with python (#1205)</li>
@@ -2540,7 +2588,7 @@ version (#2255)</li>
<li>ci: Make sure opendal is buildable on windows (#1221)</li>
<li>ci: Remove not needed audit checks (#1226)</li>
</ul>
-<h4 id="changed-36"><a class="doc-anchor" href="#changed-36">§</a>Changed</h4>
+<h4 id="changed-37"><a class="doc-anchor" href="#changed-37">§</a>Changed</h4>
<ul>
<li>refactor: Remove observe read/write (#1202)</li>
<li>refactor: Remove not used unwind safe feature (#1218)</li>
@@ -2548,67 +2596,67 @@ version (#2255)</li>
<li>cleanup: Move testdata into tests/data (#1228)</li>
<li>refactor(layers/metrics): Defer initiation of error counters (#1232)</li>
</ul>
-<h4 id="fixed-34"><a class="doc-anchor" href="#fixed-34">§</a>Fixed</h4>
+<h4 id="fixed-35"><a class="doc-anchor" href="#fixed-35">§</a>Fixed</h4>
<ul>
<li>fix: Retry for read and write should at ObjectReader level (#1211)</li>
</ul>
-<h3 id="v0250---2023-01-18"><a class="doc-anchor" href="#v0250---2023-01-18">§</a><a href="https://github.com/apache/opendal/compare/v0.24.6...v0.25.0">v0.25.0</a> - 2023-01-18</h3><h4 id="added-39"><a class="doc-anchor" href="#added-39">§</a>Added</h4>
+<h3 id="v0250---2023-01-18"><a class="doc-anchor" href="#v0250---2023-01-18">§</a><a href="https://github.com/apache/opendal/compare/v0.24.6...v0.25.0">v0.25.0</a> - 2023-01-18</h3><h4 id="added-40"><a class="doc-anchor" href="#added-40">§</a>Added</h4>
<ul>
<li>feat: Add dns cache for std dns resolver (#1191)</li>
<li>feat: Allow setting http client that built from external (#1192)</li>
<li>feat: Implement BlockingObjectReader (#1194)</li>
</ul>
-<h4 id="changed-37"><a class="doc-anchor" href="#changed-37">§</a>Changed</h4>
+<h4 id="changed-38"><a class="doc-anchor" href="#changed-38">§</a>Changed</h4>
<ul>
<li>chore(deps): replace dotenv with dotenvy (#1187)</li>
<li>refactor: Avoid calling detect region if we know the region (#1188)</li>
<li>chore: ensure minimal version buildable (#1193)</li>
</ul>
-<h3 id="v0246---2023-01-12"><a class="doc-anchor" href="#v0246---2023-01-12">§</a><a href="https://github.com/apache/opendal/compare/v0.24.5...v0.24.6">v0.24.6</a> - 2023-01-12</h3><h4 id="added-40"><a class="doc-anchor" href="#added-40">§</a>Added</h4>
+<h3 id="v0246---2023-01-12"><a class="doc-anchor" href="#v0246---2023-01-12">§</a><a href="https://github.com/apache/opendal/compare/v0.24.5...v0.24.6">v0.24.6</a> - 2023-01-12</h3><h4 id="added-41"><a class="doc-anchor" href="#added-41">§</a>Added</h4>
<ul>
<li>feat: implement tokio::io::{AsyncRead, AsyncSeek} for ObjectReader (#1175)</li>
<li>feat(services/hdfs): Evaluating the new async implementation (#1176)</li>
<li>feat(services/ghac): Handling too many requests error (#1181)</li>
</ul>
-<h4 id="fixed-35"><a class="doc-anchor" href="#fixed-35">§</a>Fixed</h4>
+<h4 id="fixed-36"><a class="doc-anchor" href="#fixed-36">§</a>Fixed</h4>
<ul>
<li>doc: fix name change in README (#1179)</li>
</ul>
-<h3 id="v0245---2023-01-09"><a class="doc-anchor" href="#v0245---2023-01-09">§</a><a href="https://github.com/apache/opendal/compare/v0.24.4...v0.24.5">v0.24.5</a> - 2023-01-09</h3><h4 id="fixed-36"><a class="doc-anchor" href="#fixed-36">§</a>Fixed</h4>
+<h3 id="v0245---2023-01-09"><a class="doc-anchor" href="#v0245---2023-01-09">§</a><a href="https://github.com/apache/opendal/compare/v0.24.4...v0.24.5">v0.24.5</a> - 2023-01-09</h3><h4 id="fixed-37"><a class="doc-anchor" href="#fixed-37">§</a>Fixed</h4>
<ul>
<li>fix(services/memcached): TcpStream should only accept host:port (#1170)</li>
</ul>
-<h3 id="v0244---2023-01-09"><a class="doc-anchor" href="#v0244---2023-01-09">§</a><a href="https://github.com/apache/opendal/compare/v0.24.3...v0.24.4">v0.24.4</a> - 2023-01-09</h3><h4 id="added-41"><a class="doc-anchor" href="#added-41">§</a>Added</h4>
+<h3 id="v0244---2023-01-09"><a class="doc-anchor" href="#v0244---2023-01-09">§</a><a href="https://github.com/apache/opendal/compare/v0.24.3...v0.24.4">v0.24.4</a> - 2023-01-09</h3><h4 id="added-42"><a class="doc-anchor" href="#added-42">§</a>Added</h4>
<ul>
<li>feat: Add presign endpoint option for OSS (#1135)</li>
<li>feat: Reset state while returning error so that we can retry IO (#1166)</li>
</ul>
-<h4 id="changed-38"><a class="doc-anchor" href="#changed-38">§</a>Changed</h4>
+<h4 id="changed-39"><a class="doc-anchor" href="#changed-39">§</a>Changed</h4>
<ul>
<li>chore(deps): update base64 requirement from 0.20 to 0.21 (#1164)</li>
</ul>
-<h4 id="fixed-37"><a class="doc-anchor" href="#fixed-37">§</a>Fixed</h4>
+<h4 id="fixed-38"><a class="doc-anchor" href="#fixed-38">§</a>Fixed</h4>
<ul>
<li>fix: Memcached can’t work on windows (#1165)</li>
</ul>
-<h3 id="v0243---2023-01-09"><a class="doc-anchor" href="#v0243---2023-01-09">§</a><a href="https://github.com/apache/opendal/compare/v0.24.2...v0.24.3">v0.24.3</a> - 2023-01-09</h3><h4 id="added-42"><a class="doc-anchor" href="#added-42">§</a>Added</h4>
+<h3 id="v0243---2023-01-09"><a class="doc-anchor" href="#v0243---2023-01-09">§</a><a href="https://github.com/apache/opendal/compare/v0.24.2...v0.24.3">v0.24.3</a> - 2023-01-09</h3><h4 id="added-43"><a class="doc-anchor" href="#added-43">§</a>Added</h4>
<ul>
<li>feat: Implement memcached service support (#1161)</li>
</ul>
-<h3 id="v0242---2023-01-08"><a class="doc-anchor" href="#v0242---2023-01-08">§</a><a href="https://github.com/apache/opendal/compare/v0.24.1...v0.24.2">v0.24.2</a> - 2023-01-08</h3><h4 id="changed-39"><a class="doc-anchor" href="#changed-39">§</a>Changed</h4>
+<h3 id="v0242---2023-01-08"><a class="doc-anchor" href="#v0242---2023-01-08">§</a><a href="https://github.com/apache/opendal/compare/v0.24.1...v0.24.2">v0.24.2</a> - 2023-01-08</h3><h4 id="changed-40"><a class="doc-anchor" href="#changed-40">§</a>Changed</h4>
<ul>
<li>refactor: Use dep: to make our features more clean (#1153)</li>
</ul>
-<h4 id="fixed-38"><a class="doc-anchor" href="#fixed-38">§</a>Fixed</h4>
+<h4 id="fixed-39"><a class="doc-anchor" href="#fixed-39">§</a>Fixed</h4>
<ul>
<li>fix: ghac shall return ObjectAlreadyExists for writing the same path (#1156)</li>
<li>fix: futures read_to_end will lead to performance regression (#1158)</li>
</ul>
-<h3 id="v0241---2023-01-08"><a class="doc-anchor" href="#v0241---2023-01-08">§</a><a href="https://github.com/apache/opendal/compare/v0.24.0...v0.24.1">v0.24.1</a> - 2023-01-08</h3><h4 id="fixed-39"><a class="doc-anchor" href="#fixed-39">§</a>Fixed</h4>
+<h3 id="v0241---2023-01-08"><a class="doc-anchor" href="#v0241---2023-01-08">§</a><a href="https://github.com/apache/opendal/compare/v0.24.0...v0.24.1">v0.24.1</a> - 2023-01-08</h3><h4 id="fixed-40"><a class="doc-anchor" href="#fixed-40">§</a>Fixed</h4>
<ul>
<li>fix: Allow range_read to be retired (#1149)</li>
</ul>
-<h3 id="v0240---2023-01-07"><a class="doc-anchor" href="#v0240---2023-01-07">§</a><a href="https://github.com/apache/opendal/compare/v0.23.0...v0.24.0">v0.24.0</a> - 2023-01-07</h3><h4 id="added-43"><a class="doc-anchor" href="#added-43">§</a>Added</h4>
+<h3 id="v0240---2023-01-07"><a class="doc-anchor" href="#v0240---2023-01-07">§</a><a href="https://github.com/apache/opendal/compare/v0.23.0...v0.24.0">v0.24.0</a> - 2023-01-07</h3><h4 id="added-44"><a class="doc-anchor" href="#added-44">§</a>Added</h4>
<ul>
<li>Add support for SAS tokens in Azure blob storage (#1124)</li>
<li>feat: Add github action cache service support (#1111)</li>
@@ -2616,7 +2664,7 @@ version (#2255)</li>
<li>feat: Implement offset seekable reader for zero cost read (#1133)</li>
<li>feat: Implement fuzz test on ObjectReader (#1140)</li>
</ul>
-<h4 id="changed-40"><a class="doc-anchor" href="#changed-40">§</a>Changed</h4>
+<h4 id="changed-41"><a class="doc-anchor" href="#changed-41">§</a>Changed</h4>
<ul>
<li>chore(deps): update quick-xml requirement from 0.26 to 0.27 (#1101)</li>
<li>ci: Enable rust cache for CI (#1107)</li>
@@ -2626,94 +2674,94 @@ version (#2255)</li>
<li>refactor: Remove open related APIs (#1129)</li>
<li>refactor: Merge and cleanup io & io_util modules (#1136)</li>
</ul>
-<h4 id="fixed-40"><a class="doc-anchor" href="#fixed-40">§</a>Fixed</h4>
+<h4 id="fixed-41"><a class="doc-anchor" href="#fixed-41">§</a>Fixed</h4>
<ul>
<li>ci: Fix build for oay and oli (#1097)</li>
<li>fix: Fix rustls support for suppaftp (#1102)</li>
<li>fix(services/ghac): Fix pkg version not used correctly (#1125)</li>
</ul>
-<h3 id="v0230---2022-12-22"><a class="doc-anchor" href="#v0230---2022-12-22">§</a><a href="https://github.com/apache/opendal/compare/v0.22.6...v0.23.0">v0.23.0</a> - 2022-12-22</h3><h4 id="added-44"><a class="doc-anchor" href="#added-44">§</a>Added</h4>
+<h3 id="v0230---2022-12-22"><a class="doc-anchor" href="#v0230---2022-12-22">§</a><a href="https://github.com/apache/opendal/compare/v0.22.6...v0.23.0">v0.23.0</a> - 2022-12-22</h3><h4 id="added-45"><a class="doc-anchor" href="#added-45">§</a>Added</h4>
<ul>
<li>feat: Implement object handler so that we can do seek on file (#1091)</li>
<li>feat: Implement blocking for hdfs (#1092)</li>
<li>feat(services/hdfs): Implement open and blocking open (#1093)</li>
<li>docs: Add mozilla/sccache into projects (#1094)</li>
</ul>
-<h3 id="v0226---2022-12-20"><a class="doc-anchor" href="#v0226---2022-12-20">§</a><a href="https://github.com/apache/opendal/compare/v0.22.5...v0.22.6">v0.22.6</a> - 2022-12-20</h3><h4 id="added-45"><a class="doc-anchor" href="#added-45">§</a>Added</h4>
+<h3 id="v0226---2022-12-20"><a class="doc-anchor" href="#v0226---2022-12-20">§</a><a href="https://github.com/apache/opendal/compare/v0.22.5...v0.22.6">v0.22.6</a> - 2022-12-20</h3><h4 id="added-46"><a class="doc-anchor" href="#added-46">§</a>Added</h4>
<ul>
<li>feat(io): make BlockingBytesRead Send + Sync (#1083)</li>
<li>feat(fs): skip seek if offset is 0 (#1082)</li>
<li>RFC-1085: Object Handler (#1085)</li>
<li>feat(services/s3,gcs): Allow accepting signer directly (#1087)</li>
</ul>
-<h3 id="v0225---2022-12-13"><a class="doc-anchor" href="#v0225---2022-12-13">§</a><a href="https://github.com/apache/opendal/compare/v0.22.4...v0.22.5">v0.22.5</a> - 2022-12-13</h3><h4 id="added-46"><a class="doc-anchor" href="#added-46">§</a>Added</h4>
+<h3 id="v0225---2022-12-13"><a class="doc-anchor" href="#v0225---2022-12-13">§</a><a href="https://github.com/apache/opendal/compare/v0.22.4...v0.22.5">v0.22.5</a> - 2022-12-13</h3><h4 id="added-47"><a class="doc-anchor" href="#added-47">§</a>Added</h4>
<ul>
<li>feat: Add service account support for gcs (#1076)</li>
</ul>
-<h3 id="v0224---2022-12-13"><a class="doc-anchor" href="#v0224---2022-12-13">§</a><a href="https://github.com/apache/opendal/compare/v0.22.3...v0.22.4">v0.22.4</a> - 2022-12-13</h3><h4 id="added-47"><a class="doc-anchor" href="#added-47">§</a>Added</h4>
+<h3 id="v0224---2022-12-13"><a class="doc-anchor" href="#v0224---2022-12-13">§</a><a href="https://github.com/apache/opendal/compare/v0.22.3...v0.22.4">v0.22.4</a> - 2022-12-13</h3><h4 id="added-48"><a class="doc-anchor" href="#added-48">§</a>Added</h4>
<ul>
<li>improve blocking read use read_to_end (#1072)</li>
<li>feat(services/gcs): Fully implement default credential support (#1073)</li>
</ul>
-<h4 id="fixed-41"><a class="doc-anchor" href="#fixed-41">§</a>Fixed</h4>
+<h4 id="fixed-42"><a class="doc-anchor" href="#fixed-42">§</a>Fixed</h4>
<ul>
<li>fix: read a large range without error and add test (#1068)</li>
<li>fix(services/oss): Enable standard behavior for oss range (#1070)</li>
</ul>
-<h3 id="v0223---2022-12-11"><a class="doc-anchor" href="#v0223---2022-12-11">§</a><a href="https://github.com/apache/opendal/compare/v0.22.2...v0.22.3">v0.22.3</a> - 2022-12-11</h3><h4 id="added-48"><a class="doc-anchor" href="#added-48">§</a>Added</h4>
+<h3 id="v0223---2022-12-11"><a class="doc-anchor" href="#v0223---2022-12-11">§</a><a href="https://github.com/apache/opendal/compare/v0.22.2...v0.22.3">v0.22.3</a> - 2022-12-11</h3><h4 id="added-49"><a class="doc-anchor" href="#added-49">§</a>Added</h4>
<ul>
<li>feat(layers/metrics): Merge error and failure counters together (#1058)</li>
<li>feat: Set MSRV to 1.60 (#1060)</li>
<li>feat: Add unwind safe flag for operator (#1061)</li>
<li>feat(azblob): Add build from connection string support (#1064)</li>
</ul>
-<h4 id="fixed-42"><a class="doc-anchor" href="#fixed-42">§</a>Fixed</h4>
+<h4 id="fixed-43"><a class="doc-anchor" href="#fixed-43">§</a>Fixed</h4>
<ul>
<li>fix(services/moka): Don’t print all content in cache (#1057)</li>
</ul>
-<h3 id="v0222---2022-12-07"><a class="doc-anchor" href="#v0222---2022-12-07">§</a><a href="https://github.com/apache/opendal/compare/v0.22.1...v0.22.2">v0.22.2</a> - 2022-12-07</h3><h4 id="added-49"><a class="doc-anchor" href="#added-49">§</a>Added</h4>
+<h3 id="v0222---2022-12-07"><a class="doc-anchor" href="#v0222---2022-12-07">§</a><a href="https://github.com/apache/opendal/compare/v0.22.1...v0.22.2">v0.22.2</a> - 2022-12-07</h3><h4 id="added-50"><a class="doc-anchor" href="#added-50">§</a>Added</h4>
<ul>
<li>feat(presign): support presign head method for s3 and oss (#1049)</li>
</ul>
-<h3 id="v0221---2022-12-05"><a class="doc-anchor" href="#v0221---2022-12-05">§</a><a href="https://github.com/apache/opendal/compare/v0.22.0...v0.22.1">v0.22.1</a> - 2022-12-05</h3><h4 id="fixed-43"><a class="doc-anchor" href="#fixed-43">§</a>Fixed</h4>
+<h3 id="v0221---2022-12-05"><a class="doc-anchor" href="#v0221---2022-12-05">§</a><a href="https://github.com/apache/opendal/compare/v0.22.0...v0.22.1">v0.22.1</a> - 2022-12-05</h3><h4 id="fixed-44"><a class="doc-anchor" href="#fixed-44">§</a>Fixed</h4>
<ul>
<li>fix(services/s3): Allow disable loading from imds_v2 and assume_role (#1044)</li>
</ul>
-<h3 id="v0220---2022-12-05"><a class="doc-anchor" href="#v0220---2022-12-05">§</a><a href="https://github.com/apache/opendal/compare/v0.21.2...v0.22.0">v0.22.0</a> - 2022-12-05</h3><h4 id="added-50"><a class="doc-anchor" href="#added-50">§</a>Added</h4>
+<h3 id="v0220---2022-12-05"><a class="doc-anchor" href="#v0220---2022-12-05">§</a><a href="https://github.com/apache/opendal/compare/v0.21.2...v0.22.0">v0.22.0</a> - 2022-12-05</h3><h4 id="added-51"><a class="doc-anchor" href="#added-51">§</a>Added</h4>
<ul>
<li>feat: improve temp file organization when enable atomic write in fs (#1017)</li>
<li>feat: Allow configure LoggingLayer’s level (#1021)</li>
<li>feat: Enable users to specify the cache policy (#1024)</li>
<li>feat: Implement presign for oss (#1035)</li>
</ul>
-<h4 id="changed-41"><a class="doc-anchor" href="#changed-41">§</a>Changed</h4>
+<h4 id="changed-42"><a class="doc-anchor" href="#changed-42">§</a>Changed</h4>
<ul>
<li>refactor: Polish error handling of different services (#1018)</li>
<li>refactor: Merge metadata and content cache together (#1020)</li>
<li>refactor(layer/cache): Allow users implement cache by themselves (#1040)</li>
</ul>
-<h4 id="fixed-44"><a class="doc-anchor" href="#fixed-44">§</a>Fixed</h4>
+<h4 id="fixed-45"><a class="doc-anchor" href="#fixed-45">§</a>Fixed</h4>
<ul>
<li>fix(services/fs): Make sure writing file is truncated (#1036)</li>
</ul>
-<h3 id="v0212---2022-11-27"><a class="doc-anchor" href="#v0212---2022-11-27">§</a><a href="https://github.com/apache/opendal/compare/v0.21.1...v0.21.2">v0.21.2</a> - 2022-11-27</h3><h4 id="added-51"><a class="doc-anchor" href="#added-51">§</a>Added</h4>
+<h3 id="v0212---2022-11-27"><a class="doc-anchor" href="#v0212---2022-11-27">§</a><a href="https://github.com/apache/opendal/compare/v0.21.1...v0.21.2">v0.21.2</a> - 2022-11-27</h3><h4 id="added-52"><a class="doc-anchor" href="#added-52">§</a>Added</h4>
<ul>
<li>feat: Add azdfs support (#1009)</li>
<li>feat: Set MSRV of opendal to 1.60 (#1012)</li>
</ul>
-<h4 id="docs-36"><a class="doc-anchor" href="#docs-36">§</a>Docs</h4>
+<h4 id="docs-37"><a class="doc-anchor" href="#docs-37">§</a>Docs</h4>
<ul>
<li>docs: Fix docs for azdfs service (#1010)</li>
</ul>
-<h3 id="v0211---2022-11-26"><a class="doc-anchor" href="#v0211---2022-11-26">§</a><a href="https://github.com/apache/opendal/compare/v0.21.0...v0.21.1">v0.21.1</a> - 2022-11-26</h3><h4 id="added-52"><a class="doc-anchor" href="#added-52">§</a>Added</h4>
+<h3 id="v0211---2022-11-26"><a class="doc-anchor" href="#v0211---2022-11-26">§</a><a href="https://github.com/apache/opendal/compare/v0.21.0...v0.21.1">v0.21.1</a> - 2022-11-26</h3><h4 id="added-53"><a class="doc-anchor" href="#added-53">§</a>Added</h4>
<ul>
<li>feat: Export ObjectLister as public type (#1006)</li>
</ul>
-<h4 id="changed-42"><a class="doc-anchor" href="#changed-42">§</a>Changed</h4>
+<h4 id="changed-43"><a class="doc-anchor" href="#changed-43">§</a>Changed</h4>
<ul>
<li>deps: Remove not used thiserror and num-trait (#1005)</li>
</ul>
-<h3 id="v0210---2022-11-25"><a class="doc-anchor" href="#v0210---2022-11-25">§</a><a href="https://github.com/apache/opendal/compare/v0.20.1...v0.21.0">v0.21.0</a> - 2022-11-25</h3><h4 id="added-53"><a class="doc-anchor" href="#added-53">§</a>Added</h4>
+<h3 id="v0210---2022-11-25"><a class="doc-anchor" href="#v0210---2022-11-25">§</a><a href="https://github.com/apache/opendal/compare/v0.20.1...v0.21.0">v0.21.0</a> - 2022-11-25</h3><h4 id="added-54"><a class="doc-anchor" href="#added-54">§</a>Added</h4>
<ul>
<li>docs: Add greptimedb and mars into projects (#975)</li>
<li>RFC-0977: Refactor Error (#977)</li>
@@ -2721,7 +2769,7 @@ version (#2255)</li>
<li>feat: Add OperatorMetadata to avoid expose AccessorMetadata (#997)</li>
<li>feat: Improve display for error (#1002)</li>
</ul>
-<h4 id="changed-43"><a class="doc-anchor" href="#changed-43">§</a>Changed</h4>
+<h4 id="changed-44"><a class="doc-anchor" href="#changed-44">§</a>Changed</h4>
<ul>
<li>refactor: Use separate Error instead of std::io::Error to avoid confusing (#976)</li>
<li>refactor: Return ReplyCreate for create operation (#981)</li>
@@ -2739,21 +2787,21 @@ version (#2255)</li>
<li>refactor: Move ObjectEntry and ObjectPage into raw (#999)</li>
<li>refactor: Accept Operator instead of <code>Arc<dyn Accessor></code> (#1001)</li>
</ul>
-<h4 id="fixed-45"><a class="doc-anchor" href="#fixed-45">§</a>Fixed</h4>
+<h4 id="fixed-46"><a class="doc-anchor" href="#fixed-46">§</a>Fixed</h4>
<ul>
<li>fix: RetryAccessor is too verbose (#980)</li>
</ul>
-<h3 id="v0201---2022-11-18"><a class="doc-anchor" href="#v0201---2022-11-18">§</a><a href="https://github.com/apache/opendal/compare/v0.20.0...v0.20.1">v0.20.1</a> - 2022-11-18</h3><h4 id="added-54"><a class="doc-anchor" href="#added-54">§</a>Added</h4>
+<h3 id="v0201---2022-11-18"><a class="doc-anchor" href="#v0201---2022-11-18">§</a><a href="https://github.com/apache/opendal/compare/v0.20.0...v0.20.1">v0.20.1</a> - 2022-11-18</h3><h4 id="added-55"><a class="doc-anchor" href="#added-55">§</a>Added</h4>
<ul>
<li>feat: Implement blocking operations for cache services (#970)</li>
</ul>
-<h4 id="fixed-46"><a class="doc-anchor" href="#fixed-46">§</a>Fixed</h4>
+<h4 id="fixed-47"><a class="doc-anchor" href="#fixed-47">§</a>Fixed</h4>
<ul>
<li>fix: Use std Duration as args instead (#966)</li>
<li>build: Make opendal buildable on 1.60 (#968)</li>
<li>fix: Avoid cache missing after write (#971)</li>
</ul>
-<h3 id="v0200---2022-11-17"><a class="doc-anchor" href="#v0200---2022-11-17">§</a><a href="https://github.com/apache/opendal/compare/v0.19.8...v0.20.0">v0.20.0</a> - 2022-11-17</h3><h4 id="added-55"><a class="doc-anchor" href="#added-55">§</a>Added</h4>
+<h3 id="v0200---2022-11-17"><a class="doc-anchor" href="#v0200---2022-11-17">§</a><a href="https://github.com/apache/opendal/compare/v0.19.8...v0.20.0">v0.20.0</a> - 2022-11-17</h3><h4 id="added-56"><a class="doc-anchor" href="#added-56">§</a>Added</h4>
<ul>
<li>RFC-0926: Object Reader (#926)</li>
<li>feat: Implement Object Reader (#928)</li>
@@ -2770,57 +2818,57 @@ version (#2255)</li>
<li>feat(layers): Implement fixed content cache (#953)</li>
<li>feat: Enable default_ttl support for redis (#960)</li>
</ul>
-<h4 id="changed-44"><a class="doc-anchor" href="#changed-44">§</a>Changed</h4>
+<h4 id="changed-45"><a class="doc-anchor" href="#changed-45">§</a>Changed</h4>
<ul>
<li>refactor: Return ObjectReader in Accessor::read (#929)</li>
<li>refactor(oay,oli): drop unnecessary patch.crates-io from <code>Cargo.toml</code></li>
<li>refactor: Polish bytes range (#950)</li>
<li>refactor: Use simplified kv adapter instead (#959)</li>
</ul>
-<h4 id="fixed-47"><a class="doc-anchor" href="#fixed-47">§</a>Fixed</h4>
+<h4 id="fixed-48"><a class="doc-anchor" href="#fixed-48">§</a>Fixed</h4>
<ul>
<li>fix(ops): Fix suffix range behavior of bytes range (#942)</li>
<li>fix: Fix cache path not used correctly (#958)</li>
</ul>
-<h3 id="v0198---2022-11-13"><a class="doc-anchor" href="#v0198---2022-11-13">§</a><a href="https://github.com/apache/opendal/compare/v0.19.7...v0.19.8">v0.19.8</a> - 2022-11-13</h3><h4 id="added-56"><a class="doc-anchor" href="#added-56">§</a>Added</h4>
+<h3 id="v0198---2022-11-13"><a class="doc-anchor" href="#v0198---2022-11-13">§</a><a href="https://github.com/apache/opendal/compare/v0.19.7...v0.19.8">v0.19.8</a> - 2022-11-13</h3><h4 id="added-57"><a class="doc-anchor" href="#added-57">§</a>Added</h4>
<ul>
<li>feat(services/moka): Use entry’s bytes as capacity weigher (#914)</li>
<li>feat: Implement rocksdb service (#913)</li>
</ul>
-<h4 id="changed-45"><a class="doc-anchor" href="#changed-45">§</a>Changed</h4>
+<h4 id="changed-46"><a class="doc-anchor" href="#changed-46">§</a>Changed</h4>
<ul>
<li>refactor: Reduce backend builder log level to debug (#907)</li>
<li>refactor: Remove deprecated features (#920)</li>
<li>refactor: use moka::sync::SegmentedCache (#921)</li>
</ul>
-<h4 id="fixed-48"><a class="doc-anchor" href="#fixed-48">§</a>Fixed</h4>
+<h4 id="fixed-49"><a class="doc-anchor" href="#fixed-49">§</a>Fixed</h4>
<ul>
<li>fix(http): Check already read size before returning (#919)</li>
</ul>
-<h3 id="v0197---2022-10-31"><a class="doc-anchor" href="#v0197---2022-10-31">§</a><a href="https://github.com/apache/opendal/compare/v0.19.6...v0.19.7">v0.19.7</a> - 2022-10-31</h3><h4 id="added-57"><a class="doc-anchor" href="#added-57">§</a>Added</h4>
+<h3 id="v0197---2022-10-31"><a class="doc-anchor" href="#v0197---2022-10-31">§</a><a href="https://github.com/apache/opendal/compare/v0.19.6...v0.19.7">v0.19.7</a> - 2022-10-31</h3><h4 id="added-58"><a class="doc-anchor" href="#added-58">§</a>Added</h4>
<ul>
<li>feat: Implement content type support for stat (#891)</li>
</ul>
-<h4 id="changed-46"><a class="doc-anchor" href="#changed-46">§</a>Changed</h4>
+<h4 id="changed-47"><a class="doc-anchor" href="#changed-47">§</a>Changed</h4>
<ul>
<li>refactor(layers/metrics): Holding all metrics handlers to avoid lock (#894)</li>
<li>refactor(layers/metrics): Only update metrics while dropping readers (#896)</li>
</ul>
-<h3 id="v0196---2022-10-25"><a class="doc-anchor" href="#v0196---2022-10-25">§</a><a href="https://github.com/apache/opendal/compare/v0.19.5...v0.19.6">v0.19.6</a> - 2022-10-25</h3><h4 id="fixed-49"><a class="doc-anchor" href="#fixed-49">§</a>Fixed</h4>
+<h3 id="v0196---2022-10-25"><a class="doc-anchor" href="#v0196---2022-10-25">§</a><a href="https://github.com/apache/opendal/compare/v0.19.5...v0.19.6">v0.19.6</a> - 2022-10-25</h3><h4 id="fixed-50"><a class="doc-anchor" href="#fixed-50">§</a>Fixed</h4>
<ul>
<li>fix: Metrics blocking reader doesn’t handle operation correctly (#887)</li>
</ul>
-<h3 id="v0195---2022-10-24"><a class="doc-anchor" href="#v0195---2022-10-24">§</a><a href="https://github.com/apache/opendal/compare/v0.19.4...v0.19.5">v0.19.5</a> - 2022-10-24</h3><h4 id="added-58"><a class="doc-anchor" href="#added-58">§</a>Added</h4>
+<h3 id="v0195---2022-10-24"><a class="doc-anchor" href="#v0195---2022-10-24">§</a><a href="https://github.com/apache/opendal/compare/v0.19.4...v0.19.5">v0.19.5</a> - 2022-10-24</h3><h4 id="added-59"><a class="doc-anchor" href="#added-59">§</a>Added</h4>
<ul>
<li>feat: add a feature named trust-dns (#879)</li>
<li>feat: implement write_with (#880)</li>
<li>feat: <code>content-type</code> configuration (#878)</li>
</ul>
-<h4 id="fixed-50"><a class="doc-anchor" href="#fixed-50">§</a>Fixed</h4>
+<h4 id="fixed-51"><a class="doc-anchor" href="#fixed-51">§</a>Fixed</h4>
<ul>
<li>fix: Allow forward layers’ acesser operations to inner (#884)</li>
</ul>
-<h3 id="v0194---2022-10-15"><a class="doc-anchor" href="#v0194---2022-10-15">§</a><a href="https://github.com/apache/opendal/compare/v0.19.3...v0.19.4">v0.19.4</a> - 2022-10-15</h3><h4 id="added-59"><a class="doc-anchor" href="#added-59">§</a>Added</h4>
+<h3 id="v0194---2022-10-15"><a class="doc-anchor" href="#v0194---2022-10-15">§</a><a href="https://github.com/apache/opendal/compare/v0.19.3...v0.19.4">v0.19.4</a> - 2022-10-15</h3><h4 id="added-60"><a class="doc-anchor" href="#added-60">§</a>Added</h4>
<ul>
<li>feat: Improve into_stream by reduce zero byte fill (#864)</li>
<li>debug: Add log for sync http client (#865)</li>
@@ -2828,16 +2876,16 @@ version (#2255)</li>
<li>feat: Try to use trust-dns-resolver (#869)</li>
<li>feat: Add log for dropping reader and streamer (#870)</li>
</ul>
-<h4 id="changed-47"><a class="doc-anchor" href="#changed-47">§</a>Changed</h4>
+<h4 id="changed-48"><a class="doc-anchor" href="#changed-48">§</a>Changed</h4>
<ul>
<li>refactor: replace md5 with md-5 (#862)</li>
<li>refactor: replace the hard code to X_AMZ_BUCKET_REGION constant (#866)</li>
</ul>
-<h3 id="v0193---2022-10-13"><a class="doc-anchor" href="#v0193---2022-10-13">§</a><a href="https://github.com/apache/opendal/compare/v0.19.2...v0.19.3">v0.19.3</a> - 2022-10-13</h3><h4 id="fixed-51"><a class="doc-anchor" href="#fixed-51">§</a>Fixed</h4>
+<h3 id="v0193---2022-10-13"><a class="doc-anchor" href="#v0193---2022-10-13">§</a><a href="https://github.com/apache/opendal/compare/v0.19.2...v0.19.3">v0.19.3</a> - 2022-10-13</h3><h4 id="fixed-52"><a class="doc-anchor" href="#fixed-52">§</a>Fixed</h4>
<ul>
<li>fix: Retry for write is not implemented correctly (#860)</li>
</ul>
-<h3 id="v0192---2022-10-13"><a class="doc-anchor" href="#v0192---2022-10-13">§</a><a href="https://github.com/apache/opendal/compare/v0.19.1...v0.19.2">v0.19.2</a> - 2022-10-13</h3><h4 id="added-60"><a class="doc-anchor" href="#added-60">§</a>Added</h4>
+<h3 id="v0192---2022-10-13"><a class="doc-anchor" href="#v0192---2022-10-13">§</a><a href="https://github.com/apache/opendal/compare/v0.19.1...v0.19.2">v0.19.2</a> - 2022-10-13</h3><h4 id="added-61"><a class="doc-anchor" href="#added-61">§</a>Added</h4>
<ul>
<li>feat(experiment): Allow user to config http connection pool (#843)</li>
<li>feat: Add concurrent limit layer (#848)</li>
@@ -2845,7 +2893,7 @@ version (#2255)</li>
<li>feat: Implement service for moka (#852)</li>
<li>docs: Add docs for moka service and concurrent limit layer (#857)</li>
</ul>
-<h3 id="v0191---2022-10-11"><a class="doc-anchor" href="#v0191---2022-10-11">§</a><a href="https://github.com/apache/opendal/compare/v0.19.0...v0.19.1">v0.19.1</a> - 2022-10-11</h3><h4 id="added-61"><a class="doc-anchor" href="#added-61">§</a>Added</h4>
+<h3 id="v0191---2022-10-11"><a class="doc-anchor" href="#v0191---2022-10-11">§</a><a href="https://github.com/apache/opendal/compare/v0.19.0...v0.19.1">v0.19.1</a> - 2022-10-11</h3><h4 id="added-62"><a class="doc-anchor" href="#added-62">§</a>Added</h4>
<ul>
<li>feat: Allow retry read and write (#826)</li>
<li>feat: Convert interrupted error to permanent after retry (#827)</li>
@@ -2854,16 +2902,16 @@ version (#2255)</li>
<li>feat: Bump reqsign to latest version (#837)</li>
<li>feat(services/s3): Add role_arn and external_id for assume_role (#838)</li>
</ul>
-<h4 id="changed-48"><a class="doc-anchor" href="#changed-48">§</a>Changed</h4>
+<h4 id="changed-49"><a class="doc-anchor" href="#changed-49">§</a>Changed</h4>
<ul>
<li>test: accelerate behaviour test <code>test_list_rich_dir</code> (#828)</li>
</ul>
-<h4 id="fixed-52"><a class="doc-anchor" href="#fixed-52">§</a>Fixed</h4>
+<h4 id="fixed-53"><a class="doc-anchor" href="#fixed-53">§</a>Fixed</h4>
<ul>
<li>fix: ObjectEntry returned in batch operator doesn’t have correct accessor (#839)</li>
<li>fix: Accessor in layers not set correctly (#840)</li>
</ul>
-<h3 id="v0190---2022-10-08"><a class="doc-anchor" href="#v0190---2022-10-08">§</a><a href="https://github.com/apache/opendal/compare/v0.18.2...v0.19.0">v0.19.0</a> - 2022-10-08</h3><h4 id="added-62"><a class="doc-anchor" href="#added-62">§</a>Added</h4>
+<h3 id="v0190---2022-10-08"><a class="doc-anchor" href="#v0190---2022-10-08">§</a><a href="https://github.com/apache/opendal/compare/v0.18.2...v0.19.0">v0.19.0</a> - 2022-10-08</h3><h4 id="added-63"><a class="doc-anchor" href="#added-63">§</a>Added</h4>
<ul>
<li>feat: Implement object page stream for services like s3 (#787)</li>
<li>RFC-0793: Generic KV Services (#793)</li>
@@ -2875,7 +2923,7 @@ version (#2255)</li>
<li>feat: Add OSS Service Support (#801)</li>
<li>feat: Add integration tests for OSS (#814)</li>
</ul>
-<h4 id="changed-49"><a class="doc-anchor" href="#changed-49">§</a>Changed</h4>
+<h4 id="changed-50"><a class="doc-anchor" href="#changed-50">§</a>Changed</h4>
<ul>
<li>refactor: Move object to mod (#786)</li>
<li>refactor: Implement azblob dir stream based on ObjectPageStream (#790)</li>
@@ -2885,32 +2933,32 @@ version (#2255)</li>
<li>refactor: Remove deprecated type aliases (#819)</li>
<li>test: list rich dir (#820)</li>
</ul>
-<h4 id="fixed-53"><a class="doc-anchor" href="#fixed-53">§</a>Fixed</h4>
+<h4 id="fixed-54"><a class="doc-anchor" href="#fixed-54">§</a>Fixed</h4>
<ul>
<li>fix(services/redis): MATCH can’t handle correctly (#803)</li>
<li>fix: Disable ipfs redirection (#809)</li>
<li>fix(services/ipfs): Use ipfs files API to copy data (#811)</li>
<li>fix(services/hdfs): Allow retrying would block (#815)</li>
</ul>
-<h3 id="v0182---2022-10-01"><a class="doc-anchor" href="#v0182---2022-10-01">§</a><a href="https://github.com/apache/opendal/compare/v0.18.1...v0.18.2">v0.18.2</a> - 2022-10-01</h3><h4 id="added-63"><a class="doc-anchor" href="#added-63">§</a>Added</h4>
+<h3 id="v0182---2022-10-01"><a class="doc-anchor" href="#v0182---2022-10-01">§</a><a href="https://github.com/apache/opendal/compare/v0.18.1...v0.18.2">v0.18.2</a> - 2022-10-01</h3><h4 id="added-64"><a class="doc-anchor" href="#added-64">§</a>Added</h4>
<ul>
<li>feat: Enable retry layer by default (#781)</li>
</ul>
-<h4 id="changed-50"><a class="doc-anchor" href="#changed-50">§</a>Changed</h4>
+<h4 id="changed-51"><a class="doc-anchor" href="#changed-51">§</a>Changed</h4>
<ul>
<li>ci: Enable IPFS NoFecth to avoid networking timeout (#780)</li>
<li>ci: Build all feature in release to prevent build failure under release profile (#783)</li>
</ul>
-<h4 id="fixed-54"><a class="doc-anchor" href="#fixed-54">§</a>Fixed</h4>
+<h4 id="fixed-55"><a class="doc-anchor" href="#fixed-55">§</a>Fixed</h4>
<ul>
<li>fix: Fix build error under release profile (#782)</li>
</ul>
-<h3 id="v0181---2022-10-01"><a class="doc-anchor" href="#v0181---2022-10-01">§</a><a href="https://github.com/apache/opendal/compare/v0.18.0...v0.18.1">v0.18.1</a> - 2022-10-01</h3><h4 id="fixed-55"><a class="doc-anchor" href="#fixed-55">§</a>Fixed</h4>
+<h3 id="v0181---2022-10-01"><a class="doc-anchor" href="#v0181---2022-10-01">§</a><a href="https://github.com/apache/opendal/compare/v0.18.0...v0.18.1">v0.18.1</a> - 2022-10-01</h3><h4 id="fixed-56"><a class="doc-anchor" href="#fixed-56">§</a>Fixed</h4>
<ul>
<li>fix(services/s3): Content MD5 not set during list (#775)</li>
<li>test: Add a test for ObjectEntry metadata cache (#776)</li>
</ul>
-<h3 id="v0180---2022-10-01"><a class="doc-anchor" href="#v0180---2022-10-01">§</a><a href="https://github.com/apache/opendal/compare/v0.17.4...v0.18.0">v0.18.0</a> - 2022-10-01</h3><h4 id="added-64"><a class="doc-anchor" href="#added-64">§</a>Added</h4>
+<h3 id="v0180---2022-10-01"><a class="doc-anchor" href="#v0180---2022-10-01">§</a><a href="https://github.com/apache/opendal/compare/v0.17.4...v0.18.0">v0.18.0</a> - 2022-10-01</h3><h4 id="added-65"><a class="doc-anchor" href="#added-65">§</a>Added</h4>
<ul>
<li>feat: Add Metadata Cache Layer (#739)</li>
<li>feat: Bump reqsign version to 0.5 (#741)</li>
@@ -2923,28 +2971,28 @@ version (#2255)</li>
<li>feat: Implement cached metadata for ObjectEntry (#761)</li>
<li>feat: Assign unique name for memory backend (#769)</li>
</ul>
-<h4 id="changed-51"><a class="doc-anchor" href="#changed-51">§</a>Changed</h4>
+<h4 id="changed-52"><a class="doc-anchor" href="#changed-52">§</a>Changed</h4>
<ul>
<li>refactor: replace error::other with new_other_object_error (#738)</li>
<li>chore(compress): log with trace level instead of debug. (#752)</li>
<li>refactor: Rename DirXxxx to ObjectXxxx instead (#759)</li>
</ul>
-<h4 id="fixed-56"><a class="doc-anchor" href="#fixed-56">§</a>Fixed</h4>
+<h4 id="fixed-57"><a class="doc-anchor" href="#fixed-57">§</a>Fixed</h4>
<ul>
<li>fix(http_util): Disable auto compress and enable http proxy (#731)</li>
<li>deps: Fix build after bump deps of oli and oay (#766)</li>
</ul>
-<h3 id="v0174---2022-09-27"><a class="doc-anchor" href="#v0174---2022-09-27">§</a><a href="https://github.com/apache/opendal/compare/v0.17.3...v0.17.4">v0.17.4</a> - 2022-09-27</h3><h4 id="fixed-57"><a class="doc-anchor" href="#fixed-57">§</a>Fixed</h4>
+<h3 id="v0174---2022-09-27"><a class="doc-anchor" href="#v0174---2022-09-27">§</a><a href="https://github.com/apache/opendal/compare/v0.17.3...v0.17.4">v0.17.4</a> - 2022-09-27</h3><h4 id="fixed-58"><a class="doc-anchor" href="#fixed-58">§</a>Fixed</h4>
<ul>
<li>fix(http_util): Allow retry more errors (#724)</li>
<li>fix(services/ftp): Suffix endpoints with default port (#726)</li>
</ul>
-<h3 id="v0173---2022-09-26"><a class="doc-anchor" href="#v0173---2022-09-26">§</a><a href="https://github.com/apache/opendal/compare/v0.17.2...v0.17.3">v0.17.3</a> - 2022-09-26</h3><h4 id="added-65"><a class="doc-anchor" href="#added-65">§</a>Added</h4>
+<h3 id="v0173---2022-09-26"><a class="doc-anchor" href="#v0173---2022-09-26">§</a><a href="https://github.com/apache/opendal/compare/v0.17.2...v0.17.3">v0.17.3</a> - 2022-09-26</h3><h4 id="added-66"><a class="doc-anchor" href="#added-66">§</a>Added</h4>
<ul>
<li>feat: Add SubdirLayer to allowing switch directory (#718)</li>
<li>feat(layers/retry): Add warning log while retry happened (#721)</li>
</ul>
-<h4 id="fixed-58"><a class="doc-anchor" href="#fixed-58">§</a>Fixed</h4>
+<h4 id="fixed-59"><a class="doc-anchor" href="#fixed-59">§</a>Fixed</h4>
<ul>
<li>fix: update metrics on result (#716)</li>
<li>fix: SubdirLayer should handle dir correctly (#720)</li>
@@ -2954,33 +3002,33 @@ version (#2255)</li>
<li>feat: implement basic cp command (#688)</li>
<li>chore: also parse ‘FTPS’ to Scheme::Ftp (#704)</li>
</ul>
-<h4 id="changed-52"><a class="doc-anchor" href="#changed-52">§</a>Changed</h4>
+<h4 id="changed-53"><a class="doc-anchor" href="#changed-53">§</a>Changed</h4>
<ul>
<li>refactor: remove <code>enable_secure</code> in FTP service (#709)</li>
<li>oli: refactor copy implementation (#710)</li>
</ul>
-<h4 id="fixed-59"><a class="doc-anchor" href="#fixed-59">§</a>Fixed</h4>
+<h4 id="fixed-60"><a class="doc-anchor" href="#fixed-60">§</a>Fixed</h4>
<ul>
<li>fix: Handle slash normalized false positives properly (#702)</li>
<li>fix: Tracing is too verbose (#707)</li>
<li>chore: fix error message in ftp service (#705)</li>
</ul>
-<h3 id="v0171---2022-09-19"><a class="doc-anchor" href="#v0171---2022-09-19">§</a><a href="https://github.com/apache/opendal/compare/v0.17.0...v0.17.1">v0.17.1</a> - 2022-09-19</h3><h4 id="added-66"><a class="doc-anchor" href="#added-66">§</a>Added</h4>
+<h3 id="v0171---2022-09-19"><a class="doc-anchor" href="#v0171---2022-09-19">§</a><a href="https://github.com/apache/opendal/compare/v0.17.0...v0.17.1">v0.17.1</a> - 2022-09-19</h3><h4 id="added-67"><a class="doc-anchor" href="#added-67">§</a>Added</h4>
<ul>
<li>feat: redis service implement (#679)</li>
<li>feat: Implement AsyncBufRead for IntoReader (#690)</li>
<li>feat: expose security token of s3 (#693)</li>
</ul>
-<h4 id="changed-53"><a class="doc-anchor" href="#changed-53">§</a>Changed</h4>
+<h4 id="changed-54"><a class="doc-anchor" href="#changed-54">§</a>Changed</h4>
<ul>
<li>refactor: avoid unnecessary parent creating in Redis service (#692)</li>
<li>refactor: Refactor HTTP Client to split sending and incoming logic (#695)</li>
</ul>
-<h4 id="fixed-60"><a class="doc-anchor" href="#fixed-60">§</a>Fixed</h4>
+<h4 id="fixed-61"><a class="doc-anchor" href="#fixed-61">§</a>Fixed</h4>
<ul>
<li>fix: Handle write data in async way for IPMFS (#694)</li>
</ul>
-<h3 id="v0170---2022-09-15"><a class="doc-anchor" href="#v0170---2022-09-15">§</a><a href="https://github.com/apache/opendal/compare/v0.16.0...v0.17.0">v0.17.0</a> - 2022-09-15</h3><h4 id="added-67"><a class="doc-anchor" href="#added-67">§</a>Added</h4>
+<h3 id="v0170---2022-09-15"><a class="doc-anchor" href="#v0170---2022-09-15">§</a><a href="https://github.com/apache/opendal/compare/v0.16.0...v0.17.0">v0.17.0</a> - 2022-09-15</h3><h4 id="added-68"><a class="doc-anchor" href="#added-68">§</a>Added</h4>
<ul>
<li>RFC: Path In Accessor (#661)</li>
<li>feat: Implement RFC-0661: Path In Accessor (#664)</li>
@@ -2988,13 +3036,13 @@ version (#2255)</li>
<li>feat: make rustls the default tls implementation (#674)</li>
<li>feat: Implement benches for layers (#681)</li>
</ul>
-<h4 id="docs-37"><a class="doc-anchor" href="#docs-37">§</a>Docs</h4>
+<h4 id="docs-38"><a class="doc-anchor" href="#docs-38">§</a>Docs</h4>
<ul>
<li>docs: Add how to implement service docs (#665)</li>
<li>refactor: update redis support rfc (#676)</li>
<li>docs: update metrics documentation (#684)</li>
</ul>
-<h4 id="fixed-61"><a class="doc-anchor" href="#fixed-61">§</a>Fixed</h4>
+<h4 id="fixed-62"><a class="doc-anchor" href="#fixed-62">§</a>Fixed</h4>
<ul>
<li>fix: Immutable Index Layer could return duplicated paths (#671)</li>
<li>fix: Remove not needed type parameter for immutable_layer (#677)</li>
@@ -3002,7 +3050,7 @@ version (#2255)</li>
<li>fix: List non-exist dir should return empty (#683)</li>
<li>fix: Add path validation for fs backend (#685)</li>
</ul>
-<h3 id="v0160---2022-09-12"><a class="doc-anchor" href="#v0160---2022-09-12">§</a><a href="https://github.com/apache/opendal/compare/v0.15.0...v0.16.0">v0.16.0</a> - 2022-09-12</h3><h4 id="added-68"><a class="doc-anchor" href="#added-68">§</a>Added</h4>
+<h3 id="v0160---2022-09-12"><a class="doc-anchor" href="#v0160---2022-09-12">§</a><a href="https://github.com/apache/opendal/compare/v0.15.0...v0.16.0">v0.16.0</a> - 2022-09-12</h3><h4 id="added-69"><a class="doc-anchor" href="#added-69">§</a>Added</h4>
<ul>
<li>feat: Implement tests for read-only services (#634)</li>
<li>feat(services/ftp): Implemented multi connection (#637)</li>
@@ -3012,7 +3060,7 @@ version (#2255)</li>
<li>feat: derive Hash for Scheme (#653)</li>
<li>feat(services/ftp): Setup integration tests (#648)</li>
</ul>
-<h4 id="changed-54"><a class="doc-anchor" href="#changed-54">§</a>Changed</h4>
+<h4 id="changed-55"><a class="doc-anchor" href="#changed-55">§</a>Changed</h4>
<ul>
<li>refactor: Migrate all behavior tests to capability based (#635)</li>
<li>refactor: Remove list support from http service (#639)</li>
@@ -3025,7 +3073,7 @@ version (#2255)</li>
<li>chore(deps): Update criterion requirement from 0.3 to 0.4 (#656)</li>
<li>chore(deps): Update quick-xml requirement from 0.24 to 0.25 (#657)</li>
</ul>
-<h4 id="docs-38"><a class="doc-anchor" href="#docs-38">§</a>Docs</h4>
+<h4 id="docs-39"><a class="doc-anchor" href="#docs-39">§</a>Docs</h4>
<ul>
<li>docs: Add docs for ipfs (#649)</li>
<li>docs: Fix typo (#650)</li>
@@ -3035,7 +3083,7 @@ version (#2255)</li>
<ul>
<li>RFC-0623: Redis Service (#623)</li>
</ul>
-<h3 id="v0150---2022-09-05"><a class="doc-anchor" href="#v0150---2022-09-05">§</a><a href="https://github.com/apache/opendal/compare/v0.14.1...v0.15.0">v0.15.0</a> - 2022-09-05</h3><h4 id="added-69"><a class="doc-anchor" href="#added-69">§</a>Added</h4>
+<h3 id="v0150---2022-09-05"><a class="doc-anchor" href="#v0150---2022-09-05">§</a><a href="https://github.com/apache/opendal/compare/v0.14.1...v0.15.0">v0.15.0</a> - 2022-09-05</h3><h4 id="added-70"><a class="doc-anchor" href="#added-70">§</a>Added</h4>
<ul>
<li>RFC-0599: Blocking API (#599)</li>
<li>feat: Add blocking API in Accessor (#604)</li>
@@ -3046,27 +3094,27 @@ version (#2255)</li>
<li>feat: implemented ftp backend (#581)</li>
<li>RFC-0627: Split Capabilities (#627)</li>
</ul>
-<h4 id="changed-55"><a class="doc-anchor" href="#changed-55">§</a>Changed</h4>
+<h4 id="changed-56"><a class="doc-anchor" href="#changed-56">§</a>Changed</h4>
<ul>
<li>refactor: Extrace normalize_root functions (#619)</li>
<li>refactor: Extrace build_abs_path and build_rooted_abs_path (#620)</li>
<li>refactor: Extract build_rel_path (#621)</li>
<li>feat: Rename ipfs to ipmfs to better reflect its naming (#629)</li>
</ul>
-<h3 id="v0141---2022-08-30"><a class="doc-anchor" href="#v0141---2022-08-30">§</a><a href="https://github.com/apache/opendal/compare/v0.14.0...v0.14.1">v0.14.1</a> - 2022-08-30</h3><h4 id="added-70"><a class="doc-anchor" href="#added-70">§</a>Added</h4>
+<h3 id="v0141---2022-08-30"><a class="doc-anchor" href="#v0141---2022-08-30">§</a><a href="https://github.com/apache/opendal/compare/v0.14.0...v0.14.1">v0.14.1</a> - 2022-08-30</h3><h4 id="added-71"><a class="doc-anchor" href="#added-71">§</a>Added</h4>
<ul>
<li>feat: Add IPFS backend (#481)</li>
<li>refactor: IPFS service cleanup (#590)</li>
</ul>
-<h4 id="docs-39"><a class="doc-anchor" href="#docs-39">§</a>Docs</h4>
+<h4 id="docs-40"><a class="doc-anchor" href="#docs-40">§</a>Docs</h4>
<ul>
<li>docs: Add obs in OpenDAL lib docs (#585)</li>
</ul>
-<h4 id="fixed-62"><a class="doc-anchor" href="#fixed-62">§</a>Fixed</h4>
+<h4 id="fixed-63"><a class="doc-anchor" href="#fixed-63">§</a>Fixed</h4>
<ul>
<li>fix(services/s3): If input range is <code>0..</code>, don’t insert range header (#592)</li>
</ul>
-<h3 id="v0140---2022-08-28"><a class="doc-anchor" href="#v0140---2022-08-28">§</a><a href="https://github.com/apache/opendal/compare/v0.13.1...v0.14.0">v0.14.0</a> - 2022-08-28</h3><h4 id="added-71"><a class="doc-anchor" href="#added-71">§</a>Added</h4>
+<h3 id="v0140---2022-08-28"><a class="doc-anchor" href="#v0140---2022-08-28">§</a><a href="https://github.com/apache/opendal/compare/v0.13.1...v0.14.0">v0.14.0</a> - 2022-08-28</h3><h4 id="added-72"><a class="doc-anchor" href="#added-72">§</a>Added</h4>
<ul>
<li>RFC-0554: Write Refactor (#554)</li>
<li>feat: Implement huaweicloud obs service other op support (#557)</li>
@@ -3080,7 +3128,7 @@ version (#2255)</li>
<li>feat: List metadata reuse (#577)</li>
<li>feat: Implement integration test for obs (#572)</li>
</ul>
-<h4 id="changed-56"><a class="doc-anchor" href="#changed-56">§</a>Changed</h4>
+<h4 id="changed-57"><a class="doc-anchor" href="#changed-57">§</a>Changed</h4>
<ul>
<li>refactor(ops): Promote ops as a parent mod (#553)</li>
<li>refactor: Implement RFC-0554 Write Refactor (#556)</li>
@@ -3092,22 +3140,22 @@ version (#2255)</li>
<ul>
<li>refactor: Remove deprecated APIs (#582)</li>
</ul>
-<h4 id="docs-40"><a class="doc-anchor" href="#docs-40">§</a>Docs</h4>
+<h4 id="docs-41"><a class="doc-anchor" href="#docs-41">§</a>Docs</h4>
<ul>
<li>docs: Add docs for obs service (#579)</li>
</ul>
-<h3 id="v0131---2022-08-22"><a class="doc-anchor" href="#v0131---2022-08-22">§</a><a href="https://github.com/apache/opendal/compare/v0.13.0...v0.13.1">v0.13.1</a> - 2022-08-22</h3><h4 id="added-72"><a class="doc-anchor" href="#added-72">§</a>Added</h4>
+<h3 id="v0131---2022-08-22"><a class="doc-anchor" href="#v0131---2022-08-22">§</a><a href="https://github.com/apache/opendal/compare/v0.13.0...v0.13.1">v0.13.1</a> - 2022-08-22</h3><h4 id="added-73"><a class="doc-anchor" href="#added-73">§</a>Added</h4>
<ul>
<li>feat: Add walk for BatchOperator (#543)</li>
<li>feat: Mark Scheme non_exhaustive and extendable (#544)</li>
<li>feat: Try to limit the max_connections for http client (#545)</li>
<li>feat: Implement huaweicloud obs service read support (#540)</li>
</ul>
-<h4 id="docs-41"><a class="doc-anchor" href="#docs-41">§</a>Docs</h4>
+<h4 id="docs-42"><a class="doc-anchor" href="#docs-42">§</a>Docs</h4>
<ul>
<li>docs: Fix gcs is missing from index (#546)</li>
</ul>
-<h3 id="v0130---2022-08-17"><a class="doc-anchor" href="#v0130---2022-08-17">§</a><a href="https://github.com/apache/opendal/compare/v0.12.0...v0.13.0">v0.13.0</a> - 2022-08-17</h3><h4 id="added-73"><a class="doc-anchor" href="#added-73">§</a>Added</h4>
+<h3 id="v0130---2022-08-17"><a class="doc-anchor" href="#v0130---2022-08-17">§</a><a href="https://github.com/apache/opendal/compare/v0.12.0...v0.13.0">v0.13.0</a> - 2022-08-17</h3><h4 id="added-74"><a class="doc-anchor" href="#added-74">§</a>Added</h4>
<ul>
<li>feat: Refactor metrics and hide under feature layers-metrics (#521)</li>
<li>feat(layer): Add TracingLayer support (#523)</li>
@@ -3117,20 +3165,20 @@ version (#2255)</li>
<li>docs: Add docs for new layers (#534)</li>
<li>docs: Add docs for gcs backend (#535)</li>
</ul>
-<h4 id="changed-57"><a class="doc-anchor" href="#changed-57">§</a>Changed</h4>
+<h4 id="changed-58"><a class="doc-anchor" href="#changed-58">§</a>Changed</h4>
<ul>
<li>refactor: Rewrite retry layer support (#522)</li>
</ul>
-<h4 id="fixed-63"><a class="doc-anchor" href="#fixed-63">§</a>Fixed</h4>
+<h4 id="fixed-64"><a class="doc-anchor" href="#fixed-64">§</a>Fixed</h4>
<ul>
<li>fix: Make ProtocolViolation a retryable error (#528)</li>
</ul>
-<h3 id="v0120---2022-08-12"><a class="doc-anchor" href="#v0120---2022-08-12">§</a><a href="https://github.com/apache/opendal/compare/v0.11.4...v0.12.0">v0.12.0</a> - 2022-08-12</h3><h4 id="added-74"><a class="doc-anchor" href="#added-74">§</a>Added</h4>
+<h3 id="v0120---2022-08-12"><a class="doc-anchor" href="#v0120---2022-08-12">§</a><a href="https://github.com/apache/opendal/compare/v0.11.4...v0.12.0">v0.12.0</a> - 2022-08-12</h3><h4 id="added-75"><a class="doc-anchor" href="#added-75">§</a>Added</h4>
<ul>
<li>RFC-0501: New Builder (#501)</li>
<li>feat: Implement RFC-0501 New Builder (#510)</li>
</ul>
-<h4 id="changed-58"><a class="doc-anchor" href="#changed-58">§</a>Changed</h4>
+<h4 id="changed-59"><a class="doc-anchor" href="#changed-59">§</a>Changed</h4>
<ul>
<li>feat: Use isahc to replace hyper (#471)</li>
<li>refactor: make parse http error code public (#511)</li>
@@ -3141,30 +3189,30 @@ version (#2255)</li>
<ul>
<li>refactor: Remove deprecated struct Metadata (#503)</li>
</ul>
-<h3 id="v0114---2022-08-02"><a class="doc-anchor" href="#v0114---2022-08-02">§</a><a href="https://github.com/apache/opendal/compare/v0.11.3...v0.11.4">v0.11.4</a> - 2022-08-02</h3><h4 id="added-75"><a class="doc-anchor" href="#added-75">§</a>Added</h4>
+<h3 id="v0114---2022-08-02"><a class="doc-anchor" href="#v0114---2022-08-02">§</a><a href="https://github.com/apache/opendal/compare/v0.11.3...v0.11.4">v0.11.4</a> - 2022-08-02</h3><h4 id="added-76"><a class="doc-anchor" href="#added-76">§</a>Added</h4>
<ul>
<li>feat: Support using rustls for TLS (#491)</li>
</ul>
-<h4 id="changed-59"><a class="doc-anchor" href="#changed-59">§</a>Changed</h4>
+<h4 id="changed-60"><a class="doc-anchor" href="#changed-60">§</a>Changed</h4>
<ul>
<li>feat: try to support epoll (#478)</li>
<li>deps: Lower the requirement of deps (#495)</li>
<li>Revert “feat: try to support epoll” (#496)</li>
</ul>
-<h4 id="fixed-64"><a class="doc-anchor" href="#fixed-64">§</a>Fixed</h4>
+<h4 id="fixed-65"><a class="doc-anchor" href="#fixed-65">§</a>Fixed</h4>
<ul>
<li>fix: Uri encode continuation-token before signing (#494)</li>
</ul>
-<h4 id="docs-42"><a class="doc-anchor" href="#docs-42">§</a>Docs</h4>
+<h4 id="docs-43"><a class="doc-anchor" href="#docs-43">§</a>Docs</h4>
<ul>
<li>docs: Add downloads in README (#485)</li>
<li>docs: Update slogan for OpenDAL (#486)</li>
</ul>
-<h3 id="v0113---2022-07-26"><a class="doc-anchor" href="#v0113---2022-07-26">§</a><a href="https://github.com/apache/opendal/compare/v0.11.2...v0.11.3">v0.11.3</a> - 2022-07-26</h3><h4 id="changed-60"><a class="doc-anchor" href="#changed-60">§</a>Changed</h4>
+<h3 id="v0113---2022-07-26"><a class="doc-anchor" href="#v0113---2022-07-26">§</a><a href="https://github.com/apache/opendal/compare/v0.11.2...v0.11.3">v0.11.3</a> - 2022-07-26</h3><h4 id="changed-61"><a class="doc-anchor" href="#changed-61">§</a>Changed</h4>
<ul>
<li>build: Remove not used features (#472)</li>
</ul>
-<h4 id="fixed-65"><a class="doc-anchor" href="#fixed-65">§</a>Fixed</h4>
+<h4 id="fixed-66"><a class="doc-anchor" href="#fixed-66">§</a>Fixed</h4>
<ul>
<li>fix: Disable connection pool as workaround for async runtime hang (#474)</li>
</ul>
@@ -3175,12 +3223,12 @@ version (#2255)</li>
<li>chore(deps): Update metrics requirement from 0.19.0 to 0.20.0 (#462)</li>
<li>chore(deps): Bump tokio from 1.20.0 to 1.20.1 in /oay (#468)</li>
</ul>
-<h3 id="v0112---2022-07-19"><a class="doc-anchor" href="#v0112---2022-07-19">§</a><a href="https://github.com/apache/opendal/compare/v0.11.1...v0.11.2">v0.11.2</a> - 2022-07-19</h3><h4 id="fixed-66"><a class="doc-anchor" href="#fixed-66">§</a>Fixed</h4>
+<h3 id="v0112---2022-07-19"><a class="doc-anchor" href="#v0112---2022-07-19">§</a><a href="https://github.com/apache/opendal/compare/v0.11.1...v0.11.2">v0.11.2</a> - 2022-07-19</h3><h4 id="fixed-67"><a class="doc-anchor" href="#fixed-67">§</a>Fixed</h4>
<ul>
<li>fix: Service HTTP deosn’t handle dir correctly (#455)</li>
<li>fix: Service HTTP inserted with wrong key (#457)</li>
</ul>
-<h3 id="v0111---2022-07-19"><a class="doc-anchor" href="#v0111---2022-07-19">§</a><a href="https://github.com/apache/opendal/compare/v0.11.0...v0.11.1">v0.11.1</a> - 2022-07-19</h3><h4 id="added-76"><a class="doc-anchor" href="#added-76">§</a>Added</h4>
+<h3 id="v0111---2022-07-19"><a class="doc-anchor" href="#v0111---2022-07-19">§</a><a href="https://github.com/apache/opendal/compare/v0.11.0...v0.11.1">v0.11.1</a> - 2022-07-19</h3><h4 id="added-77"><a class="doc-anchor" href="#added-77">§</a>Added</h4>
<ul>
<li>RFC-0438: Multipart (#438)</li>
<li>RFC-0443: Gateway (#443)</li>
@@ -3189,7 +3237,7 @@ version (#2255)</li>
<li>feat(oay): Implement range support (#450)</li>
<li>feat(services-http): Implement write and delete for testing (#451)</li>
</ul>
-<h3 id="v0110---2022-07-11"><a class="doc-anchor" href="#v0110---2022-07-11">§</a><a href="https://github.com/apache/opendal/compare/v0.10.0...v0.11.0">v0.11.0</a> - 2022-07-11</h3><h4 id="added-77"><a class="doc-anchor" href="#added-77">§</a>Added</h4>
+<h3 id="v0110---2022-07-11"><a class="doc-anchor" href="#v0110---2022-07-11">§</a><a href="https://github.com/apache/opendal/compare/v0.10.0...v0.11.0">v0.11.0</a> - 2022-07-11</h3><h4 id="added-78"><a class="doc-anchor" href="#added-78">§</a>Added</h4>
<ul>
<li>feat: derive Deserialize/Serialize for ObjectMetaData (#420)</li>
<li>RFC-0423: Command Line Interface (#423)</li>
@@ -3199,18 +3247,18 @@ version (#2255)</li>
<li>feat: Implement RFC-0429 Init From Iter (#432)</li>
<li>feat(oli): Add cp command layout (#428)</li>
</ul>
-<h4 id="docs-43"><a class="doc-anchor" href="#docs-43">§</a>Docs</h4>
+<h4 id="docs-44"><a class="doc-anchor" href="#docs-44">§</a>Docs</h4>
<ul>
<li>docs: Update description of OpenDAL (#434)</li>
</ul>
-<h3 id="v0100---2022-07-04"><a class="doc-anchor" href="#v0100---2022-07-04">§</a><a href="https://github.com/apache/opendal/compare/v0.9.1...v0.10.0">v0.10.0</a> - 2022-07-04</h3><h4 id="added-78"><a class="doc-anchor" href="#added-78">§</a>Added</h4>
+<h3 id="v0100---2022-07-04"><a class="doc-anchor" href="#v0100---2022-07-04">§</a><a href="https://github.com/apache/opendal/compare/v0.9.1...v0.10.0">v0.10.0</a> - 2022-07-04</h3><h4 id="added-79"><a class="doc-anchor" href="#added-79">§</a>Added</h4>
<ul>
<li>RFC-0409: Accessor Capabilities (#409)</li>
<li>feat: Implement RFC-0409 Accessor Capabilities (#411)</li>
<li>RFC-0413: Presign (#413)</li>
<li>feat: Implement presign support for s3 (#414)</li>
</ul>
-<h4 id="docs-44"><a class="doc-anchor" href="#docs-44">§</a>Docs</h4>
+<h4 id="docs-45"><a class="doc-anchor" href="#docs-45">§</a>Docs</h4>
<ul>
<li>docs: Add new RFCs in list (#415)</li>
</ul>
@@ -3218,12 +3266,12 @@ version (#2255)</li>
<ul>
<li>chore(deps): Update reqsign requirement from 0.1.1 to 0.2.0 (#412)</li>
</ul>
-<h3 id="v091---2022-06-27"><a class="doc-anchor" href="#v091---2022-06-27">§</a><a href="https://github.com/apache/opendal/compare/v0.9.0...v0.9.1">v0.9.1</a> - 2022-06-27</h3><h4 id="added-79"><a class="doc-anchor" href="#added-79">§</a>Added</h4>
+<h3 id="v091---2022-06-27"><a class="doc-anchor" href="#v091---2022-06-27">§</a><a href="https://github.com/apache/opendal/compare/v0.9.0...v0.9.1">v0.9.1</a> - 2022-06-27</h3><h4 id="added-80"><a class="doc-anchor" href="#added-80">§</a>Added</h4>
<ul>
<li>feat(object): Add ETag support (#381)</li>
<li>feat: Convert retryable hyper errors into Interrupted (#396)</li>
</ul>
-<h4 id="changed-61"><a class="doc-anchor" href="#changed-61">§</a>Changed</h4>
+<h4 id="changed-62"><a class="doc-anchor" href="#changed-62">§</a>Changed</h4>
<ul>
<li>build: Exclude docs from publish (#383)</li>
<li>ci: Don’t run CI on not needed push (#395)</li>
@@ -3234,33 +3282,33 @@ version (#2255)</li>
<li>chore(deps): Update size requirement from 0.1.2 to 0.2.0 (#385)</li>
<li>Upgrade dev-dependency <code>size</code> to 0.4 (#392)</li>
</ul>
-<h4 id="fixed-67"><a class="doc-anchor" href="#fixed-67">§</a>Fixed</h4>
+<h4 id="fixed-68"><a class="doc-anchor" href="#fixed-68">§</a>Fixed</h4>
<ul>
<li>fix: Special chars not handled correctly (#398)</li>
</ul>
-<h3 id="v090---2022-06-14"><a class="doc-anchor" href="#v090---2022-06-14">§</a><a href="https://github.com/apache/opendal/compare/v0.8.0...v0.9.0">v0.9.0</a> - 2022-06-14</h3><h4 id="added-80"><a class="doc-anchor" href="#added-80">§</a>Added</h4>
+<h3 id="v090---2022-06-14"><a class="doc-anchor" href="#v090---2022-06-14">§</a><a href="https://github.com/apache/opendal/compare/v0.8.0...v0.9.0">v0.9.0</a> - 2022-06-14</h3><h4 id="added-81"><a class="doc-anchor" href="#added-81">§</a>Added</h4>
<ul>
<li>feat: Implement http service support (#368)</li>
<li>feat: Add http_header to handle HTTP header parse (#369)</li>
<li>feat(services/s3): Add virtual host API style support (#374)</li>
</ul>
-<h4 id="changed-62"><a class="doc-anchor" href="#changed-62">§</a>Changed</h4>
+<h4 id="changed-63"><a class="doc-anchor" href="#changed-63">§</a>Changed</h4>
<ul>
<li>refactor: Use the same http client across project (#364)</li>
<li>refactor(services/{s3,azblob}): Make sure error response parsed correctly and safely (#375)</li>
</ul>
-<h4 id="docs-45"><a class="doc-anchor" href="#docs-45">§</a>Docs</h4>
+<h4 id="docs-46"><a class="doc-anchor" href="#docs-46">§</a>Docs</h4>
<ul>
<li>docs: Add concepts for Accessor, Operator and Object (#354)</li>
<li>docs: Aad docs for batch operations (#363)</li>
</ul>
-<h3 id="v080---2022-06-09"><a class="doc-anchor" href="#v080---2022-06-09">§</a><a href="https://github.com/apache/opendal/compare/v0.7.3...v0.8.0">v0.8.0</a> - 2022-06-09</h3><h4 id="added-81"><a class="doc-anchor" href="#added-81">§</a>Added</h4>
+<h3 id="v080---2022-06-09"><a class="doc-anchor" href="#v080---2022-06-09">§</a><a href="https://github.com/apache/opendal/compare/v0.7.3...v0.8.0">v0.8.0</a> - 2022-06-09</h3><h4 id="added-82"><a class="doc-anchor" href="#added-82">§</a>Added</h4>
<ul>
<li>RFC-0337: Dir Entry (#337)</li>
<li>feat: Implement RFC-0337: Dir Entry (#342)</li>
<li>feat: Add batch operation support (#346)</li>
</ul>
-<h4 id="changed-63"><a class="doc-anchor" href="#changed-63">§</a>Changed</h4>
+<h4 id="changed-64"><a class="doc-anchor" href="#changed-64">§</a>Changed</h4>
<ul>
<li>refactor: Rename Metadata to ObjectMetadata for clarify (#339)</li>
</ul>
@@ -3269,12 +3317,12 @@ version (#2255)</li>
<li>chore(deps): Bump actions/setup-python from 3 to 4 (#343)</li>
<li>chore(deps): Bump amondnet/vercel-action from 20 to 25 (#344)</li>
</ul>
-<h3 id="v073---2022-06-03"><a class="doc-anchor" href="#v073---2022-06-03">§</a><a href="https://github.com/apache/opendal/compare/v0.7.2...v0.7.3">v0.7.3</a> - 2022-06-03</h3><h4 id="fixed-68"><a class="doc-anchor" href="#fixed-68">§</a>Fixed</h4>
+<h3 id="v073---2022-06-03"><a class="doc-anchor" href="#v073---2022-06-03">§</a><a href="https://github.com/apache/opendal/compare/v0.7.2...v0.7.3">v0.7.3</a> - 2022-06-03</h3><h4 id="fixed-69"><a class="doc-anchor" href="#fixed-69">§</a>Fixed</h4>
<ul>
<li>fix(services/s3,hdfs): List empty dir should not return itself (#327)</li>
<li>fix(services/hdfs): Root path not cleaned correctly (#330)</li>
</ul>
-<h3 id="v072---2022-06-01"><a class="doc-anchor" href="#v072---2022-06-01">§</a><a href="https://github.com/apache/opendal/compare/v0.7.1...v0.7.2">v0.7.2</a> - 2022-06-01</h3><h4 id="added-82"><a class="doc-anchor" href="#added-82">§</a>Added</h4>
+<h3 id="v072---2022-06-01"><a class="doc-anchor" href="#v072---2022-06-01">§</a><a href="https://github.com/apache/opendal/compare/v0.7.1...v0.7.2">v0.7.2</a> - 2022-06-01</h3><h4 id="added-83"><a class="doc-anchor" href="#added-83">§</a>Added</h4>
<ul>
<li>feat(io_util): Improve debug logging for compress (#310)</li>
<li>feat(services/s3): Add disable_credential_loader support (#317)</li>
@@ -3283,23 +3331,23 @@ version (#2255)</li>
<li>feat: Add name to object metadata (#304)</li>
<li>fix(io_util/compress): Fix decoder’s buf not all consumed (#323)</li>
</ul>
-<h4 id="changed-64"><a class="doc-anchor" href="#changed-64">§</a>Changed</h4>
+<h4 id="changed-65"><a class="doc-anchor" href="#changed-65">§</a>Changed</h4>
<ul>
<li>chore(deps): Update metrics requirement from 0.18.1 to 0.19.0 (#314)</li>
<li>docs: Update README to reflect current status (#321)</li>
<li>refactor(object): Make Metadata::name() return &str (#322)</li>
</ul>
-<h4 id="fixed-69"><a class="doc-anchor" href="#fixed-69">§</a>Fixed</h4>
+<h4 id="fixed-70"><a class="doc-anchor" href="#fixed-70">§</a>Fixed</h4>
<ul>
<li>docs: Fix typo in examples (#320)</li>
<li>fix(services): Don’t throw error message for stat operation (#324)</li>
</ul>
-<h3 id="v071---2022-05-29"><a class="doc-anchor" href="#v071---2022-05-29">§</a><a href="https://github.com/apache/opendal/compare/v0.7.0...v0.7.1">v0.7.1</a> - 2022-05-29</h3><h4 id="fixed-70"><a class="doc-anchor" href="#fixed-70">§</a>Fixed</h4>
+<h3 id="v071---2022-05-29"><a class="doc-anchor" href="#v071---2022-05-29">§</a><a href="https://github.com/apache/opendal/compare/v0.7.0...v0.7.1">v0.7.1</a> - 2022-05-29</h3><h4 id="fixed-71"><a class="doc-anchor" href="#fixed-71">§</a>Fixed</h4>
<ul>
<li>publish: Fix git version not allowed (#306)</li>
<li>fix(io_util/compress): Decompress read exit too early (#308)</li>
</ul>
-<h3 id="v070---2022-05-29"><a class="doc-anchor" href="#v070---2022-05-29">§</a><a href="https://github.com/apache/opendal/compare/v0.6.3...v0.7.0">v0.7.0</a> - 2022-05-29</h3><h4 id="added-83"><a class="doc-anchor" href="#added-83">§</a>Added</h4>
+<h3 id="v070---2022-05-29"><a class="doc-anchor" href="#v070---2022-05-29">§</a><a href="https://github.com/apache/opendal/compare/v0.6.3...v0.7.0">v0.7.0</a> - 2022-05-29</h3><h4 id="added-84"><a class="doc-anchor" href="#added-84">§</a>Added</h4>
<ul>
<li>feat: Add support for blocking decompress_read (#289)</li>
<li>feat: Add check for operator (#290)</li>
@@ -3308,32 +3356,32 @@ version (#2255)</li>
<li>feat: Implement operator metadata support (#296)</li>
<li>feat: Implement RFC-0293 Object ID (#298)</li>
</ul>
-<h4 id="changed-65"><a class="doc-anchor" href="#changed-65">§</a>Changed</h4>
+<h4 id="changed-66"><a class="doc-anchor" href="#changed-66">§</a>Changed</h4>
<ul>
<li>chore(deps): Update quick-xml requirement from 0.22.0 to 0.23.0 (#286)</li>
<li>feat(io_util): Refactor decompress decoder (#302)</li>
<li>ci: Adopt amondnet/vercel-action (#303)</li>
</ul>
-<h4 id="fixed-71"><a class="doc-anchor" href="#fixed-71">§</a>Fixed</h4>
+<h4 id="fixed-72"><a class="doc-anchor" href="#fixed-72">§</a>Fixed</h4>
<ul>
<li>fix(services/aws): Increase retry times for AWS STS (#299)</li>
</ul>
-<h3 id="v063---2022-05-25"><a class="doc-anchor" href="#v063---2022-05-25">§</a><a href="https://github.com/apache/opendal/compare/v0.6.2...v0.6.3">v0.6.3</a> - 2022-05-25</h3><h4 id="added-84"><a class="doc-anchor" href="#added-84">§</a>Added</h4>
+<h3 id="v063---2022-05-25"><a class="doc-anchor" href="#v063---2022-05-25">§</a><a href="https://github.com/apache/opendal/compare/v0.6.2...v0.6.3">v0.6.3</a> - 2022-05-25</h3><h4 id="added-85"><a class="doc-anchor" href="#added-85">§</a>Added</h4>
<ul>
<li>ci: Add all issues into databend-storage project (#277)</li>
<li>feat(services/s3): Add retry in load_credential (#281)</li>
<li>feat(services): Allow endpoint has trailing slash (#282)</li>
<li>feat(services): Attach more context in error messages (#283)</li>
</ul>
-<h3 id="v062---2022-05-12"><a class="doc-anchor" href="#v062---2022-05-12">§</a><a href="https://github.com/apache/opendal/compare/v0.6.1...v0.6.2">v0.6.2</a> - 2022-05-12</h3><h4 id="fixed-72"><a class="doc-anchor" href="#fixed-72">§</a>Fixed</h4>
+<h3 id="v062---2022-05-12"><a class="doc-anchor" href="#v062---2022-05-12">§</a><a href="https://github.com/apache/opendal/compare/v0.6.1...v0.6.2">v0.6.2</a> - 2022-05-12</h3><h4 id="fixed-73"><a class="doc-anchor" href="#fixed-73">§</a>Fixed</h4>
<ul>
<li>fix(azblob): Request URL not construct correctly (#270)</li>
</ul>
-<h3 id="v061---2022-05-09"><a class="doc-anchor" href="#v061---2022-05-09">§</a><a href="https://github.com/apache/opendal/compare/v0.6.0...v0.6.1">v0.6.1</a> - 2022-05-09</h3><h4 id="added-85"><a class="doc-anchor" href="#added-85">§</a>Added</h4>
+<h3 id="v061---2022-05-09"><a class="doc-anchor" href="#v061---2022-05-09">§</a><a href="https://github.com/apache/opendal/compare/v0.6.0...v0.6.1">v0.6.1</a> - 2022-05-09</h3><h4 id="added-86"><a class="doc-anchor" href="#added-86">§</a>Added</h4>
<ul>
<li>feat: Add hdfs scheme (#266)</li>
</ul>
-<h3 id="v060---2022-05-07"><a class="doc-anchor" href="#v060---2022-05-07">§</a><a href="https://github.com/apache/opendal/compare/v0.5.2...v0.6.0">v0.6.0</a> - 2022-05-07</h3><h4 id="added-86"><a class="doc-anchor" href="#added-86">§</a>Added</h4>
+<h3 id="v060---2022-05-07"><a class="doc-anchor" href="#v060---2022-05-07">§</a><a href="https://github.com/apache/opendal/compare/v0.5.2...v0.6.0">v0.6.0</a> - 2022-05-07</h3><h4 id="added-87"><a class="doc-anchor" href="#added-87">§</a>Added</h4>
<ul>
<li>docs: Improve docs to 100% coverage (#246)</li>
<li>RFC-0247: Retryable Error (#247)</li>
@@ -3342,37 +3390,37 @@ version (#2255)</li>
<li>feat: Implement hdfs service support (#255)</li>
<li>docs: Add docs for hdfs services (#262)</li>
</ul>
-<h4 id="changed-66"><a class="doc-anchor" href="#changed-66">§</a>Changed</h4>
+<h4 id="changed-67"><a class="doc-anchor" href="#changed-67">§</a>Changed</h4>
<ul>
<li>docs: Make sure code examples are formatted (#251)</li>
<li>chore(deps): Update uuid requirement from 0.8.2 to 1.0.0 (#252)</li>
<li>refactor: Remove deprecated modules (#259)</li>
</ul>
-<h4 id="fixed-73"><a class="doc-anchor" href="#fixed-73">§</a>Fixed</h4>
+<h4 id="fixed-74"><a class="doc-anchor" href="#fixed-74">§</a>Fixed</h4>
<ul>
<li>ci: Fix docs build (#260)</li>
<li>fix: HDFS jar not load (#261)</li>
</ul>
-<h3 id="v052---2022-04-08"><a class="doc-anchor" href="#v052---2022-04-08">§</a><a href="https://github.com/apache/opendal/compare/v0.5.1...v0.5.2">v0.5.2</a> - 2022-04-08</h3><h4 id="changed-67"><a class="doc-anchor" href="#changed-67">§</a>Changed</h4>
+<h3 id="v052---2022-04-08"><a class="doc-anchor" href="#v052---2022-04-08">§</a><a href="https://github.com/apache/opendal/compare/v0.5.1...v0.5.2">v0.5.2</a> - 2022-04-08</h3><h4 id="changed-68"><a class="doc-anchor" href="#changed-68">§</a>Changed</h4>
<ul>
<li>chore: Build all features for docs.rs (#238)</li>
<li>ci: Enable auto dependence upgrade (#239)</li>
<li>chore(deps): Bump actions/checkout from 2 to 3 (#240)</li>
<li>docs: Refactor examples (#241)</li>
</ul>
-<h4 id="fixed-74"><a class="doc-anchor" href="#fixed-74">§</a>Fixed</h4>
+<h4 id="fixed-75"><a class="doc-anchor" href="#fixed-75">§</a>Fixed</h4>
<ul>
<li>fix(services/s3): Endpoint without scheme should also supported (#242)</li>
</ul>
-<h3 id="v051---2022-04-08"><a class="doc-anchor" href="#v051---2022-04-08">§</a><a href="https://github.com/apache/opendal/compare/v0.5.0...v0.5.1">v0.5.1</a> - 2022-04-08</h3><h4 id="added-87"><a class="doc-anchor" href="#added-87">§</a>Added</h4>
+<h3 id="v051---2022-04-08"><a class="doc-anchor" href="#v051---2022-04-08">§</a><a href="https://github.com/apache/opendal/compare/v0.5.0...v0.5.1">v0.5.1</a> - 2022-04-08</h3><h4 id="added-88"><a class="doc-anchor" href="#added-88">§</a>Added</h4>
<ul>
<li>docs: Add behavior docs for create operation (#235)</li>
</ul>
-<h4 id="fixed-75"><a class="doc-anchor" href="#fixed-75">§</a>Fixed</h4>
+<h4 id="fixed-76"><a class="doc-anchor" href="#fixed-76">§</a>Fixed</h4>
<ul>
<li>fix(services/fs): Create on existing dir should succeed (#234)</li>
</ul>
-<h3 id="v050---2022-04-07"><a class="doc-anchor" href="#v050---2022-04-07">§</a><a href="https://github.com/apache/opendal/compare/v0.4.2...v0.5.0">v0.5.0</a> - 2022-04-07</h3><h4 id="added-88"><a class="doc-anchor" href="#added-88">§</a>Added</h4>
+<h3 id="v050---2022-04-07"><a class="doc-anchor" href="#v050---2022-04-07">§</a><a href="https://github.com/apache/opendal/compare/v0.4.2...v0.5.0">v0.5.0</a> - 2022-04-07</h3><h4 id="added-89"><a class="doc-anchor" href="#added-89">§</a>Added</h4>
<ul>
<li>feat: Improve error message (#220)</li>
<li>RFC-0221: Create Dir (#221)</li>
@@ -3381,30 +3429,30 @@ version (#2255)</li>
<li>ci: Enable behavior test for azblob (#229)</li>
<li>docs: Add docs for azblob’s public structs (#230)</li>
</ul>
-<h4 id="changed-68"><a class="doc-anchor" href="#changed-68">§</a>Changed</h4>
+<h4 id="changed-69"><a class="doc-anchor" href="#changed-69">§</a>Changed</h4>
<ul>
<li>refactor: Move op.objects() to o.list() (#224)</li>
<li>refactor: Improve behavior_tests so that cargo test works without –all-features (#231)</li>
</ul>
-<h4 id="fixed-76"><a class="doc-anchor" href="#fixed-76">§</a>Fixed</h4>
+<h4 id="fixed-77"><a class="doc-anchor" href="#fixed-77">§</a>Fixed</h4>
<ul>
<li>fix: Azblob should pass all behavior tests now (#228)</li>
</ul>
-<h3 id="v042---2022-04-03"><a class="doc-anchor" href="#v042---2022-04-03">§</a><a href="https://github.com/apache/opendal/compare/v0.4.1...v0.4.2">v0.4.2</a> - 2022-04-03</h3><h4 id="added-89"><a class="doc-anchor" href="#added-89">§</a>Added</h4>
+<h3 id="v042---2022-04-03"><a class="doc-anchor" href="#v042---2022-04-03">§</a><a href="https://github.com/apache/opendal/compare/v0.4.1...v0.4.2">v0.4.2</a> - 2022-04-03</h3><h4 id="added-90"><a class="doc-anchor" href="#added-90">§</a>Added</h4>
<ul>
<li>feat: Add seekable_reader on Object (#215)</li>
</ul>
-<h4 id="fixed-77"><a class="doc-anchor" href="#fixed-77">§</a>Fixed</h4>
+<h4 id="fixed-78"><a class="doc-anchor" href="#fixed-78">§</a>Fixed</h4>
<ul>
<li>fix: Object last_modified should carry timezone (#217)</li>
</ul>
-<h3 id="v041---2022-04-02"><a class="doc-anchor" href="#v041---2022-04-02">§</a><a href="https://github.com/apache/opendal/compare/v0.4.0...v0.4.1">v0.4.1</a> - 2022-04-02</h3><h4 id="added-90"><a class="doc-anchor" href="#added-90">§</a>Added</h4>
+<h3 id="v041---2022-04-02"><a class="doc-anchor" href="#v041---2022-04-02">§</a><a href="https://github.com/apache/opendal/compare/v0.4.0...v0.4.1">v0.4.1</a> - 2022-04-02</h3><h4 id="added-91"><a class="doc-anchor" href="#added-91">§</a>Added</h4>
<ul>
<li>feat: Export SeekableReader (#212)</li>
</ul>
<h3 id="v040---2022-04-02"><a class="doc-anchor" href="#v040---2022-04-02">§</a><a href="https://github.com/apache/opendal/compare/v0.3.0...v0.4.0">v0.4.0</a> - 2022-04-02</h3>
<p><strong>Refer to <a href="./docs/upgrade.md">Upgrade</a> <code>From v0.3 to v0.4</code> section for more upgrade details.</strong></p>
-<h4 id="added-91"><a class="doc-anchor" href="#added-91">§</a>Added</h4>
+<h4 id="added-92"><a class="doc-anchor" href="#added-92">§</a>Added</h4>
<ul>
<li>feat(services/azblob): Implement list support (#193)</li>
<li>feat: Implement io_util like into_sink and into_stream (#197)</li>
@@ -3412,7 +3460,7 @@ version (#2255)</li>
<li>feat(io_util): Implement observer for sink and stream (#198)</li>
<li>docs: Add docs for public types (#206)</li>
</ul>
-<h4 id="changed-69"><a class="doc-anchor" href="#changed-69">§</a>Changed</h4>
+<h4 id="changed-70"><a class="doc-anchor" href="#changed-70">§</a>Changed</h4>
<ul>
<li>refactor: Make read return BytesStream instead (#192)</li>
<li>RFC-0191: Async Streaming IO (#191)</li>
@@ -3421,7 +3469,7 @@ version (#2255)</li>
<li>refactor: Rollback changes around async streaming io (#205)</li>
<li>refactor: Refactor behavior tests with macro_rules (#207)</li>
</ul>
-<h4 id="fixed-78"><a class="doc-anchor" href="#fixed-78">§</a>Fixed</h4>
+<h4 id="fixed-79"><a class="doc-anchor" href="#fixed-79">§</a>Fixed</h4>
<ul>
<li>deps: Bump to reqsign to fix s3 url encode issue (#202)</li>
</ul>
@@ -3429,62 +3477,62 @@ version (#2255)</li>
<ul>
<li>RFC-0203: Remove Credential (#203)</li>
</ul>
-<h3 id="v030---2022-03-25"><a class="doc-anchor" href="#v030---2022-03-25">§</a><a href="https://github.com/apache/opendal/compare/v0.2.5...v0.3.0">v0.3.0</a> - 2022-03-25</h3><h4 id="added-92"><a class="doc-anchor" href="#added-92">§</a>Added</h4>
+<h3 id="v030---2022-03-25"><a class="doc-anchor" href="#v030---2022-03-25">§</a><a href="https://github.com/apache/opendal/compare/v0.2.5...v0.3.0">v0.3.0</a> - 2022-03-25</h3><h4 id="added-93"><a class="doc-anchor" href="#added-93">§</a>Added</h4>
<ul>
<li>feat: Add azure blob support (#165)</li>
<li>feat: Add tracing support via minitrace (#175)</li>
<li>feat(service/s3): Implement server side encryption support (#182)</li>
</ul>
-<h4 id="changed-70"><a class="doc-anchor" href="#changed-70">§</a>Changed</h4>
+<h4 id="changed-71"><a class="doc-anchor" href="#changed-71">§</a>Changed</h4>
<ul>
<li>chore: Level down some log entry to debug (#181)</li>
</ul>
-<h4 id="fixed-79"><a class="doc-anchor" href="#fixed-79">§</a>Fixed</h4>
+<h4 id="fixed-80"><a class="doc-anchor" href="#fixed-80">§</a>Fixed</h4>
<ul>
<li>fix(service/s3): Endpoint template should be applied if region exists (#180)</li>
</ul>
-<h3 id="v025---2022-03-22"><a class="doc-anchor" href="#v025---2022-03-22">§</a><a href="https://github.com/apache/opendal/compare/v0.2.4...v0.2.5">v0.2.5</a> - 2022-03-22</h3><h4 id="added-93"><a class="doc-anchor" href="#added-93">§</a>Added</h4>
+<h3 id="v025---2022-03-22"><a class="doc-anchor" href="#v025---2022-03-22">§</a><a href="https://github.com/apache/opendal/compare/v0.2.4...v0.2.5">v0.2.5</a> - 2022-03-22</h3><h4 id="added-94"><a class="doc-anchor" href="#added-94">§</a>Added</h4>
<ul>
<li>feat: Adopt quick_xml to parse xml (#164)</li>
<li>test: Add behavior test for not exist object (#166)</li>
<li>feat: Allow user input region (#168)</li>
</ul>
-<h4 id="changed-71"><a class="doc-anchor" href="#changed-71">§</a>Changed</h4>
+<h4 id="changed-72"><a class="doc-anchor" href="#changed-72">§</a>Changed</h4>
<ul>
<li>feat: Improve error handle for s3 service (#169)</li>
<li>feat: Read error response for better debugging (#170)</li>
<li>examples: Improve examples for s3 (#171)</li>
</ul>
-<h3 id="v024---2022-03-18"><a class="doc-anchor" href="#v024---2022-03-18">§</a><a href="https://github.com/apache/opendal/compare/v0.2.3...v0.2.4">v0.2.4</a> - 2022-03-18</h3><h4 id="added-94"><a class="doc-anchor" href="#added-94">§</a>Added</h4>
+<h3 id="v024---2022-03-18"><a class="doc-anchor" href="#v024---2022-03-18">§</a><a href="https://github.com/apache/opendal/compare/v0.2.3...v0.2.4">v0.2.4</a> - 2022-03-18</h3><h4 id="added-95"><a class="doc-anchor" href="#added-95">§</a>Added</h4>
<ul>
<li>feat: Add content_md5 and last_modified in metadata (#158)</li>
</ul>
-<h4 id="changed-72"><a class="doc-anchor" href="#changed-72">§</a>Changed</h4>
+<h4 id="changed-73"><a class="doc-anchor" href="#changed-73">§</a>Changed</h4>
<ul>
<li>refactor: Say goodbye to aws-s3-sdk (#152)</li>
</ul>
-<h3 id="v023---2022-03-14"><a class="doc-anchor" href="#v023---2022-03-14">§</a><a href="https://github.com/apache/opendal/compare/v0.2.2...v0.2.3">v0.2.3</a> - 2022-03-14</h3><h4 id="added-95"><a class="doc-anchor" href="#added-95">§</a>Added</h4>
+<h3 id="v023---2022-03-14"><a class="doc-anchor" href="#v023---2022-03-14">§</a><a href="https://github.com/apache/opendal/compare/v0.2.2...v0.2.3">v0.2.3</a> - 2022-03-14</h3><h4 id="added-96"><a class="doc-anchor" href="#added-96">§</a>Added</h4>
<ul>
<li>feat: Export BoxedObjectStream so that users can implement Layer (#147)</li>
</ul>
-<h3 id="v022---2022-03-14"><a class="doc-anchor" href="#v022---2022-03-14">§</a><a href="https://github.com/apache/opendal/compare/v0.2.1...v0.2.2">v0.2.2</a> - 2022-03-14</h3><h4 id="fixed-80"><a class="doc-anchor" href="#fixed-80">§</a>Fixed</h4>
+<h3 id="v022---2022-03-14"><a class="doc-anchor" href="#v022---2022-03-14">§</a><a href="https://github.com/apache/opendal/compare/v0.2.1...v0.2.2">v0.2.2</a> - 2022-03-14</h3><h4 id="fixed-81"><a class="doc-anchor" href="#fixed-81">§</a>Fixed</h4>
<ul>
<li>services/fs: Refactor via tokio::fs (#142)</li>
<li>fix: Stat root should return a dir object (#143)</li>
</ul>
-<h3 id="v021---2022-03-10"><a class="doc-anchor" href="#v021---2022-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.2.0...v0.2.1">v0.2.1</a> - 2022-03-10</h3><h4 id="added-96"><a class="doc-anchor" href="#added-96">§</a>Added</h4>
+<h3 id="v021---2022-03-10"><a class="doc-anchor" href="#v021---2022-03-10">§</a><a href="https://github.com/apache/opendal/compare/v0.2.0...v0.2.1">v0.2.1</a> - 2022-03-10</h3><h4 id="added-97"><a class="doc-anchor" href="#added-97">§</a>Added</h4>
<ul>
<li>*: Implement logging support (#122)</li>
<li>feat(service): Add service memory read support (#121)</li>
<li>services: Add basic metrics (#127)</li>
<li>services: Add full memory support (#134)</li>
</ul>
-<h4 id="changed-73"><a class="doc-anchor" href="#changed-73">§</a>Changed</h4>
+<h4 id="changed-74"><a class="doc-anchor" href="#changed-74">§</a>Changed</h4>
<ul>
<li>benches: Refactor to support more read pattern (#126)</li>
<li>services: Refactor into directories (#131)</li>
</ul>
-<h4 id="docs-46"><a class="doc-anchor" href="#docs-46">§</a>Docs</h4>
+<h4 id="docs-47"><a class="doc-anchor" href="#docs-47">§</a>Docs</h4>
<ul>
<li>docs: Cover all public types and functions (#128)</li>
<li>docs: Update README (#129)</li>
@@ -3492,28 +3540,28 @@ version (#2255)</li>
<li>docs: Enrich README (#133)</li>
<li>Add examples for object (#135)</li>
</ul>
-<h3 id="v020---2022-03-08"><a class="doc-anchor" href="#v020---2022-03-08">§</a><a href="https://github.com/apache/opendal/compare/v0.1.4...v0.2.0">v0.2.0</a> - 2022-03-08</h3><h4 id="added-97"><a class="doc-anchor" href="#added-97">§</a>Added</h4>
+<h3 id="v020---2022-03-08"><a class="doc-anchor" href="#v020---2022-03-08">§</a><a href="https://github.com/apache/opendal/compare/v0.1.4...v0.2.0">v0.2.0</a> - 2022-03-08</h3><h4 id="added-98"><a class="doc-anchor" href="#added-98">§</a>Added</h4>
<ul>
<li>RFC-112: Path Normalization (#112)</li>
<li>examples: Add more examples for services and operations (#113)</li>
</ul>
-<h4 id="changed-74"><a class="doc-anchor" href="#changed-74">§</a>Changed</h4>
+<h4 id="changed-75"><a class="doc-anchor" href="#changed-75">§</a>Changed</h4>
<ul>
<li>benches: Refactor to make code more readable (#104)</li>
<li>object: Refactor ObjectMode into enum (#114)</li>
</ul>
-<h3 id="v014---2022-03-04"><a class="doc-anchor" href="#v014---2022-03-04">§</a><a href="https://github.com/apache/opendal/compare/v0.1.3...v0.1.4">v0.1.4</a> - 2022-03-04</h3><h4 id="added-98"><a class="doc-anchor" href="#added-98">§</a>Added</h4>
+<h3 id="v014---2022-03-04"><a class="doc-anchor" href="#v014---2022-03-04">§</a><a href="https://github.com/apache/opendal/compare/v0.1.3...v0.1.4">v0.1.4</a> - 2022-03-04</h3><h4 id="added-99"><a class="doc-anchor" href="#added-99">§</a>Added</h4>
<ul>
<li>services/s3: Implement anonymous read support (#97)</li>
<li>bench: Add parallel_read bench (#100)</li>
<li>services/s3: Add test for anonymous support (#99)</li>
</ul>
-<h3 id="v013---2022-03-02"><a class="doc-anchor" href="#v013---2022-03-02">§</a><a href="https://github.com/apache/opendal/compare/v0.1.2...v0.1.3">v0.1.3</a> - 2022-03-02</h3><h4 id="added-99"><a class="doc-anchor" href="#added-99">§</a>Added</h4>
+<h3 id="v013---2022-03-02"><a class="doc-anchor" href="#v013---2022-03-02">§</a><a href="https://github.com/apache/opendal/compare/v0.1.2...v0.1.3">v0.1.3</a> - 2022-03-02</h3><h4 id="added-100"><a class="doc-anchor" href="#added-100">§</a>Added</h4>
<ul>
<li>RFC and implementations for limited reader (#90)</li>
<li>readers: Implement observe reader support (#92)</li>
</ul>
-<h4 id="changed-75"><a class="doc-anchor" href="#changed-75">§</a>Changed</h4>
+<h4 id="changed-76"><a class="doc-anchor" href="#changed-76">§</a>Changed</h4>
<ul>
<li>deps: Bump s3 sdk to 0.8 (#87)</li>
<li>bench: Improve logic (#89)</li>
@@ -3522,37 +3570,37 @@ version (#2255)</li>
<ul>
<li><a href="https://github.com/apache/opendal/blob/main/docs/rfcs/0090-limited-reader.md">limited_reader</a></li>
</ul>
-<h3 id="v012---2022-03-01"><a class="doc-anchor" href="#v012---2022-03-01">§</a><a href="https://github.com/apache/opendal/compare/v0.1.1...v0.1.2">v0.1.2</a> - 2022-03-01</h3><h4 id="changed-76"><a class="doc-anchor" href="#changed-76">§</a>Changed</h4>
+<h3 id="v012---2022-03-01"><a class="doc-anchor" href="#v012---2022-03-01">§</a><a href="https://github.com/apache/opendal/compare/v0.1.1...v0.1.2">v0.1.2</a> - 2022-03-01</h3><h4 id="changed-77"><a class="doc-anchor" href="#changed-77">§</a>Changed</h4>
<ul>
<li>object: Polish API for Metadata (#80)</li>
</ul>
-<h3 id="v011---2022-03-01"><a class="doc-anchor" href="#v011---2022-03-01">§</a><a href="https://github.com/apache/opendal/compare/v0.1.0...v0.1.1">v0.1.1</a> - 2022-03-01</h3><h4 id="added-100"><a class="doc-anchor" href="#added-100">§</a>Added</h4>
+<h3 id="v011---2022-03-01"><a class="doc-anchor" href="#v011---2022-03-01">§</a><a href="https://github.com/apache/opendal/compare/v0.1.0...v0.1.1">v0.1.1</a> - 2022-03-01</h3><h4 id="added-101"><a class="doc-anchor" href="#added-101">§</a>Added</h4>
<ul>
<li>RFC and implementation of feature Object Stream (#69)</li>
<li>services/s3: Implement List support (#76)</li>
<li>credential: Add Plain variant to allow more input (#78)</li>
</ul>
-<h4 id="changed-77"><a class="doc-anchor" href="#changed-77">§</a>Changed</h4>
+<h4 id="changed-78"><a class="doc-anchor" href="#changed-78">§</a>Changed</h4>
<ul>
<li>backend/s3: Change from lazy_static to once_cell (#62)</li>
<li>backend/s3: Enable test on AWS S3 (#64)</li>
</ul>
-<h3 id="v010---2022-02-24"><a class="doc-anchor" href="#v010---2022-02-24">§</a><a href="https://github.com/apache/opendal/compare/v0.0.5...v0.1.0">v0.1.0</a> - 2022-02-24</h3><h4 id="added-101"><a class="doc-anchor" href="#added-101">§</a>Added</h4>
+<h3 id="v010---2022-02-24"><a class="doc-anchor" href="#v010---2022-02-24">§</a><a href="https://github.com/apache/opendal/compare/v0.0.5...v0.1.0">v0.1.0</a> - 2022-02-24</h3><h4 id="added-102"><a class="doc-anchor" href="#added-102">§</a>Added</h4>
<ul>
<li>docs: Add README for behavior test and ops benchmarks (#53)</li>
<li>RFC-0057: Auto Region (#57)</li>
<li>backend/s3: Implement RFC-57 Auto Region (#59)</li>
</ul>
-<h4 id="changed-78"><a class="doc-anchor" href="#changed-78">§</a>Changed</h4>
+<h4 id="changed-79"><a class="doc-anchor" href="#changed-79">§</a>Changed</h4>
<ul>
<li>io: Rename BoxedAsyncRead to BoxedAsyncReader (#55)</li>
<li>*: Refactor tests (#60)</li>
</ul>
-<h3 id="v005---2022-02-23"><a class="doc-anchor" href="#v005---2022-02-23">§</a><a href="https://github.com/apache/opendal/compare/v0.0.4...v0.0.5">v0.0.5</a> - 2022-02-23</h3><h4 id="fixed-81"><a class="doc-anchor" href="#fixed-81">§</a>Fixed</h4>
+<h3 id="v005---2022-02-23"><a class="doc-anchor" href="#v005---2022-02-23">§</a><a href="https://github.com/apache/opendal/compare/v0.0.4...v0.0.5">v0.0.5</a> - 2022-02-23</h3><h4 id="fixed-82"><a class="doc-anchor" href="#fixed-82">§</a>Fixed</h4>
<ul>
<li>io: Remove not used debug print (#48)</li>
</ul>
-<h3 id="v004---2022-02-23"><a class="doc-anchor" href="#v004---2022-02-23">§</a><a href="https://github.com/apache/opendal/compare/v0.0.3...v0.0.4">v0.0.4</a> - 2022-02-23</h3><h4 id="added-102"><a class="doc-anchor" href="#added-102">§</a>Added</h4>
+<h3 id="v004---2022-02-23"><a class="doc-anchor" href="#v004---2022-02-23">§</a><a href="https://github.com/apache/opendal/compare/v0.0.3...v0.0.4">v0.0.4</a> - 2022-02-23</h3><h4 id="added-103"><a class="doc-anchor" href="#added-103">§</a>Added</h4>
<ul>
<li>readers: Allow config prefetch size (#31)</li>
<li>RFC-0041: Object Native API (#41)</li>
@@ -3560,29 +3608,29 @@ version (#2255)</li>
<li>RFC-0044: Error Handle (#44)</li>
<li>error: Implement RFC-0044 Error Handle (#43)</li>
</ul>
-<h4 id="changed-79"><a class="doc-anchor" href="#changed-79">§</a>Changed</h4>
+<h4 id="changed-80"><a class="doc-anchor" href="#changed-80">§</a>Changed</h4>
<ul>
<li>services/fs: Use separate dedicated thread pool instead (#42)</li>
</ul>
-<h3 id="v003---2022-02-16"><a class="doc-anchor" href="#v003---2022-02-16">§</a><a href="https://github.com/apache/opendal/compare/v0.0.2...v0.0.3">v0.0.3</a> - 2022-02-16</h3><h4 id="added-103"><a class="doc-anchor" href="#added-103">§</a>Added</h4>
+<h3 id="v003---2022-02-16"><a class="doc-anchor" href="#v003---2022-02-16">§</a><a href="https://github.com/apache/opendal/compare/v0.0.2...v0.0.3">v0.0.3</a> - 2022-02-16</h3><h4 id="added-104"><a class="doc-anchor" href="#added-104">§</a>Added</h4>
<ul>
<li>benches: Implement benches for ops (#26)</li>
</ul>
-<h4 id="changed-80"><a class="doc-anchor" href="#changed-80">§</a>Changed</h4>
+<h4 id="changed-81"><a class="doc-anchor" href="#changed-81">§</a>Changed</h4>
<ul>
<li>services/s3: Don’t load_from_env if users already inputs (#23)</li>
<li>readers: Improve seekable performance (#25)</li>
</ul>
-<h3 id="v002---2022-02-15"><a class="doc-anchor" href="#v002---2022-02-15">§</a><a href="https://github.com/apache/opendal/compare/v0.0.1...v0.0.2">v0.0.2</a> - 2022-02-15</h3><h4 id="added-104"><a class="doc-anchor" href="#added-104">§</a>Added</h4>
+<h3 id="v002---2022-02-15"><a class="doc-anchor" href="#v002---2022-02-15">§</a><a href="https://github.com/apache/opendal/compare/v0.0.1...v0.0.2">v0.0.2</a> - 2022-02-15</h3><h4 id="added-105"><a class="doc-anchor" href="#added-105">§</a>Added</h4>
<ul>
<li>tests: Implement behavior tests (#13)</li>
<li>services/s3: Add support for endpoints without scheme (#15)</li>
<li>tests: Implement integration tests for s3 (#18)</li>
</ul>
-<h4 id="fixed-82"><a class="doc-anchor" href="#fixed-82">§</a>Fixed</h4>
+<h4 id="fixed-83"><a class="doc-anchor" href="#fixed-83">§</a>Fixed</h4>
<ul>
<li>services/s3: Allow set endpoint and region while input value is valid (#17)</li>
</ul>
-<h3 id="v001---2022-02-14"><a class="doc-anchor" href="#v001---2022-02-14">§</a>v0.0.1 - 2022-02-14</h3><h4 id="added-105"><a class="doc-anchor" href="#added-105">§</a>Added</h4>
+<h3 id="v001---2022-02-14"><a class="doc-anchor" href="#v001---2022-02-14">§</a>v0.0.1 - 2022-02-14</h3><h4 id="added-106"><a class="doc-anchor" href="#added-106">§</a>Added</h4>
<p>Hello, OpenDAL!</p>
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/comparisons/index.html b/docs/rust/opendal/docs/comparisons/index.html
index 2088da4d37..17c9d8611c 100644
--- a/docs/rust/opendal/docs/comparisons/index.html
+++ b/docs/rust/opendal/docs/comparisons/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Compare opendal with other projects to find out the differences and areas that opendal can improve."><title>opendal::docs::comparisons - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Compare opendal with other projects to find out the differences and areas that opendal can improve."><title>opendal::docs::comparisons - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 [...]
<p>All documents listed should be treated as highly biased. Because:</p>
<ul>
<li>OpenDAL’s maintainers and contributors write them.</li>
diff --git a/docs/rust/opendal/docs/comparisons/vs_object_store/index.html b/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
index 74f7267f59..e948ad00c1 100644
--- a/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
+++ b/docs/rust/opendal/docs/comparisons/vs_object_store/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpenDAL vs object_store"><title>opendal::docs::comparisons::vs_object_store - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpenDAL vs object_store"><title>opendal::docs::comparisons::vs_object_store - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
<blockquote>
<p>NOTE: This document is written by OpenDAL’s maintainers and not reviewed by
object_store’s maintainers. So it could not be very objective.</p>
diff --git a/docs/rust/opendal/docs/concepts/index.html b/docs/rust/opendal/docs/concepts/index.html
index 23d858f143..56dac386da 100644
--- a/docs/rust/opendal/docs/concepts/index.html
+++ b/docs/rust/opendal/docs/concepts/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The core concepts of OpenDAL’s public API."><title>opendal::docs::concepts - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The core concepts of OpenDAL’s public API."><title>opendal::docs::concepts - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9 [...]
<p>OpenDAL provides a unified abstraction that helps developers access all storage services.</p>
<p>There are two core concepts in OpenDAL:</p>
<ul>
diff --git a/docs/rust/opendal/docs/index.html b/docs/rust/opendal/docs/index.html
index 738dde7fcc..d7a3247978 100644
--- a/docs/rust/opendal/docs/index.html
+++ b/docs/rust/opendal/docs/index.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This module holds documentation for OpenDAL."><title>opendal::docs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This module holds documentation for OpenDAL."><title>opendal::docs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497 [...]
<p>It’s highly recommended that you start by reading <a href="concepts/index.html" title="mod opendal::docs::concepts"><code>concepts</code></a> first.</p>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="changelog/index.html" title="mod opendal::docs::changelog">changelog</a></div><div class="desc docblock-short">Changes log for all OpenDAL released versions.</div></li><li><div class="item-name"><a class="mod" href="comparisons/index.html" title="mod opendal::docs::comparisons">comparisons</a></div><div class="de [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/docs/internals/accessor/index.html b/docs/rust/opendal/docs/internals/accessor/index.html
index aca3dc7c6b..808d37be3d 100644
--- a/docs/rust/opendal/docs/internals/accessor/index.html
+++ b/docs/rust/opendal/docs/internals/accessor/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implementation details of `Access`."><title>opendal::docs::internals::accessor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implementation details of `Access`."><title>opendal::docs::internals::accessor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
<p><a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a> is the core trait of OpenDAL’s raw API. We operate
underlying storage services via APIs provided by <a href="../../../raw/trait.Access.html" title="trait opendal::raw::Access"><code>Access</code></a>.</p>
<h2 id="introduction"><a class="doc-anchor" href="#introduction">§</a>Introduction</h2>
diff --git a/docs/rust/opendal/docs/internals/index.html b/docs/rust/opendal/docs/internals/index.html
index 0dc5d8d16a..5a3c1ac2f0 100644
--- a/docs/rust/opendal/docs/internals/index.html
+++ b/docs/rust/opendal/docs/internals/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implement details of OpenDAL."><title>opendal::docs::internals - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implement details of OpenDAL."><title>opendal::docs::internals - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
<p>OpenDAL has provides unified abstraction via two-level API sets:</p>
<ul>
<li>Public API like <a href="../../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> provides user level API.</li>
diff --git a/docs/rust/opendal/docs/internals/layer/index.html b/docs/rust/opendal/docs/internals/layer/index.html
index 630deb0e17..da12968751 100644
--- a/docs/rust/opendal/docs/internals/layer/index.html
+++ b/docs/rust/opendal/docs/internals/layer/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implementation details of `Layer`."><title>opendal::docs::internals::layer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The internal implementation details of `Layer`."><title>opendal::docs::internals::layer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
<p><a href="../../../raw/trait.Layer.html" title="trait opendal::raw::Layer"><code>Layer</code></a> itself is quite simple:</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">pub trait </span>Layer<A: Access> {
diff --git a/docs/rust/opendal/docs/rfcs/index.html b/docs/rust/opendal/docs/rfcs/index.html
index 7dbc599d49..48ce2299e5 100644
--- a/docs/rust/opendal/docs/rfcs/index.html
+++ b/docs/rust/opendal/docs/rfcs/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RFCs - OpenDAL Active RFC List"><title>opendal::docs::rfcs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RFCs - OpenDAL Active RFC List"><title>opendal::docs::rfcs - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
<p>RFCs power OpenDAL’s development.</p>
<p>The “RFC” (request for comments) process is intended to provide a consistent and controlled path for changes to OpenDAL (such as new features) so that all stakeholders can be confident about the direction of the project.</p>
<p>Many changes, including bug fixes and documentation improvements, can be implemented and reviewed via the normal GitHub pull request workflow.</p>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html b/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html
index 919214dfcc..273b0ebe42 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0000_example/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RFC example"><title>opendal::docs::rfcs::rfc_0000_example - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RFC example"><title>opendal::docs::rfcs::rfc_0000_example - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
<ul>
<li>Proposal Name: (fill me in with a unique ident, <code>my_awesome_feature</code>)</li>
<li>Start Date: (fill me in with today’s date, YYYY-MM-DD)</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html
index 115287c161..9e8f3067b4 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0041_object_native_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object native API"><title>opendal::docs::rfcs::rfc_0041_object_native_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object native API"><title>opendal::docs::rfcs::rfc_0041_object_native_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<ul>
<li>Proposal Name: <code>object_native_api</code></li>
<li>Start Date: 2022-02-18</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html b/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html
index 663a866a30..4196f13b1f 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0044_error_handle/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Error handle"><title>opendal::docs::rfcs::rfc_0044_error_handle - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Error handle"><title>opendal::docs::rfcs::rfc_0044_error_handle - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
<ul>
<li>Proposal Name: <code>error_handle</code></li>
<li>Start Date: 2022-02-23</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html b/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html
index 234161531f..db6f0b3e7e 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0057_auto_region/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Auto region"><title>opendal::docs::rfcs::rfc_0057_auto_region - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Auto region"><title>opendal::docs::rfcs::rfc_0057_auto_region - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<ul>
<li>Proposal Name: <code>auto_region</code></li>
<li>Start Date: 2022-02-24</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html b/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html
index 85190ee9d7..224753e67a 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0069_object_stream/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object stream"><title>opendal::docs::rfcs::rfc_0069_object_stream - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object stream"><title>opendal::docs::rfcs::rfc_0069_object_stream - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
<ul>
<li>Proposal Name: <code>object_stream</code></li>
<li>Start Date: 2022-02-25</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html b/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html
index b0593780c0..f091428c1a 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0090_limited_reader/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Limited reader"><title>opendal::docs::rfcs::rfc_0090_limited_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Limited reader"><title>opendal::docs::rfcs::rfc_0090_limited_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
<ul>
<li>Proposal Name: <code>limited_reader</code></li>
<li>Start Date: 2022-03-02</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html b/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html
index d0171bd2ee..462945d83d 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0112_path_normalization/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Path normalization"><title>opendal::docs::rfcs::rfc_0112_path_normalization - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Path normalization"><title>opendal::docs::rfcs::rfc_0112_path_normalization - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
<ul>
<li>Proposal Name: <code>path-normalization</code></li>
<li>Start Date: 2022-03-08</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html b/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html
index f2041de691..682eb17849 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0191_async_streaming_io/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Async streaming IO"><title>opendal::docs::rfcs::rfc_0191_async_streaming_io - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Async streaming IO"><title>opendal::docs::rfcs::rfc_0191_async_streaming_io - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
<ul>
<li>Proposal Name: <code>async_streaming_io</code></li>
<li>Start Date: 2022-03-28</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html b/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html
index 45a47f4e4e..7e88ff9023 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0203_remove_credential/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Remove credential"><title>opendal::docs::rfcs::rfc_0203_remove_credential - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Remove credential"><title>opendal::docs::rfcs::rfc_0203_remove_credential - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<ul>
<li>Proposal Name: <code>remove_credential</code></li>
<li>Start Date: 2022-04-02</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html b/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html
index e2dde15f92..9a87494c9c 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0221_create_dir/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create dir"><title>opendal::docs::rfcs::rfc_0221_create_dir - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create dir"><title>opendal::docs::rfcs::rfc_0221_create_dir - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
<ul>
<li>Proposal Name: <code>create-dir</code></li>
<li>Start Date: 2022-04-06</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html b/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html
index d9bf2f38d8..4aed2f8c7e 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0247_retryable_error/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Retryable error"><title>opendal::docs::rfcs::rfc_0247_retryable_error - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Retryable error"><title>opendal::docs::rfcs::rfc_0247_retryable_error - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
<ul>
<li>Proposal Name: <code>retryable_error</code></li>
<li>Start Date: 2022-04-12</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html b/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html
index deb3e7c465..b02d97d273 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0293_object_id/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object ID"><title>opendal::docs::rfcs::rfc_0293_object_id - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object ID"><title>opendal::docs::rfcs::rfc_0293_object_id - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
<ul>
<li>Proposal Name: <code>object_id</code></li>
<li>Start Date: 2022-05-27</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html b/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html
index 9e9caf9284..bc331c2219 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0337_dir_entry/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Dir entry"><title>opendal::docs::rfcs::rfc_0337_dir_entry - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Dir entry"><title>opendal::docs::rfcs::rfc_0337_dir_entry - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
<ul>
<li>Proposal Name: <code>dir_entry</code></li>
<li>Start Date: 2022-06-08</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html b/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html
index 79ce2b634b..88bfb0ce4a 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0409_accessor_capabilities/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Accessor capabilities"><title>opendal::docs::rfcs::rfc_0409_accessor_capabilities - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Accessor capabilities"><title>opendal::docs::rfcs::rfc_0409_accessor_capabilities - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
<ul>
<li>Proposal Name: <code>accessor_capabilities</code></li>
<li>Start Date: 2022-06-29</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html b/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html
index 89db769480..7b5dacbae8 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0413_presign/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Presign"><title>opendal::docs::rfcs::rfc_0413_presign - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,S [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Presign"><title>opendal::docs::rfcs::rfc_0413_presign - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,S [...]
<ul>
<li>Proposal Name: <code>presign</code></li>
<li>Start Date: 2022-06-30</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html b/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html
index 0921ca2bf2..1d32f32889 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0423_command_line_interface/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Command line interface"><title>opendal::docs::rfcs::rfc_0423_command_line_interface - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Command line interface"><title>opendal::docs::rfcs::rfc_0423_command_line_interface - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M [...]
<ul>
<li>Proposal Name: <code>command_line_interface</code></li>
<li>Start Date: 2022-07-08</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html b/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html
index d4189ff90d..917f192bad 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0429_init_from_iter/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Init from iter"><title>opendal::docs::rfcs::rfc_0429_init_from_iter - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Init from iter"><title>opendal::docs::rfcs::rfc_0429_init_from_iter - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
<ul>
<li>Proposal Name: <code>init_from_iter</code></li>
<li>Start Date: 2022-07-10</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html b/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html
index 2a3df8f274..993e943120 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0438_multipart/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Multipart"><title>opendal::docs::rfcs::rfc_0438_multipart - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Multipart"><title>opendal::docs::rfcs::rfc_0438_multipart - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
<ul>
<li>Proposal Name: <code>multipart</code></li>
<li>Start Date: 2022-07-11</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html b/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html
index 48430a1e23..2b59fdc607 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0443_gateway/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Gateway"><title>opendal::docs::rfcs::rfc_0443_gateway - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,S [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Gateway"><title>opendal::docs::rfcs::rfc_0443_gateway - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,S [...]
<ul>
<li>Proposal Name: <code>gateway</code></li>
<li>Start Date: 2022-07-18</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html b/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html
index bdf4e63d2f..cb2531dd47 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0501_new_builder/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="New builder"><title>opendal::docs::rfcs::rfc_0501_new_builder - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="New builder"><title>opendal::docs::rfcs::rfc_0501_new_builder - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<ul>
<li>Proposal Name: <code>new_builder</code></li>
<li>Start Date: 2022-08-03</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html b/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html
index 58df50ec10..d131af7a04 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0554_write_refactor/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Write refactor"><title>opendal::docs::rfcs::rfc_0554_write_refactor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Write refactor"><title>opendal::docs::rfcs::rfc_0554_write_refactor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
<ul>
<li>Proposal Name: <code>write_refactor</code></li>
<li>Start Date: 2022-08-22</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html b/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html
index 66e4b1ab4d..caf949116c 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0561_list_metadata_reuse/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List metadata reuse"><title>opendal::docs::rfcs::rfc_0561_list_metadata_reuse - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List metadata reuse"><title>opendal::docs::rfcs::rfc_0561_list_metadata_reuse - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
<ul>
<li>Proposal Name: <code>list_metadata_reuse</code></li>
<li>Start Date: 2022-08-23</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html
index eb86ad164f..5372f42ec9 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0599_blocking_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Blocking API"><title>opendal::docs::rfcs::rfc_0599_blocking_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Blocking API"><title>opendal::docs::rfcs::rfc_0599_blocking_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
<ul>
<li>Proposal Name: <code>blocking_api</code></li>
<li>Start Date: 2022-08-30</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html b/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html
index 9035c8254d..44f7059e35 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0623_redis_service/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redis service"><title>opendal::docs::rfcs::rfc_0623_redis_service - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redis service"><title>opendal::docs::rfcs::rfc_0623_redis_service - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
<ul>
<li>Proposal Name: <code>redis_service</code></li>
<li>Start Date: 2022-08-31</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html b/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html
index f117ea2412..991a2ca06a 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0627_split_capabilities/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Split capabilities"><title>opendal::docs::rfcs::rfc_0627_split_capabilities - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Split capabilities"><title>opendal::docs::rfcs::rfc_0627_split_capabilities - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
<ul>
<li>Proposal Name: <code>split-capabilities</code></li>
<li>Start Date: 2022-09-04</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html b/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html
index 1cd24272ff..9d6b16897e 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0661_path_in_accessor/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Path in accessor"><title>opendal::docs::rfcs::rfc_0661_path_in_accessor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Path in accessor"><title>opendal::docs::rfcs::rfc_0661_path_in_accessor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
<ul>
<li>Proposal Name: <code>path_in_accessor</code></li>
<li>Start Date: 2022-09-12</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html b/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html
index 0a813ad90f..1abf53975d 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0793_generic_kv_services/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Generic KV services"><title>opendal::docs::rfcs::rfc_0793_generic_kv_services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Generic KV services"><title>opendal::docs::rfcs::rfc_0793_generic_kv_services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
<ul>
<li>Proposal Name: <code>generic-kv-services</code></li>
<li>Start Date: 2022-10-03</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html b/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html
index 6cebb5baa4..3ed3723c4b 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0926_object_reader/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object reader"><title>opendal::docs::rfcs::rfc_0926_object_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object reader"><title>opendal::docs::rfcs::rfc_0926_object_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
<ul>
<li>Proposal Name: <code>object_reader</code></li>
<li>Start Date: 2022-11-13</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html b/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html
index 6838486dfc..c9c692d5ad 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_0977_refactor_error/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Refactor error"><title>opendal::docs::rfcs::rfc_0977_refactor_error - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Refactor error"><title>opendal::docs::rfcs::rfc_0977_refactor_error - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
<ul>
<li>Proposal Name: <code>refactor-error</code></li>
<li>Start Date: 2022-11-21</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html b/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html
index 8c7bea124f..5f60fd402e 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1085_object_handler/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object handler"><title>opendal::docs::rfcs::rfc_1085_object_handler - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object handler"><title>opendal::docs::rfcs::rfc_1085_object_handler - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
<ul>
<li>Proposal Name: <code>object_handler</code></li>
<li>Start Date: 2022-12-19</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html b/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html
index 50cb5df021..b21c7a729d 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1391_object_metadataer/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object metadataer"><title>opendal::docs::rfcs::rfc_1391_object_metadataer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object metadataer"><title>opendal::docs::rfcs::rfc_1391_object_metadataer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<ul>
<li>Proposal Name: <code>object_metadataer</code></li>
<li>Start Date: 2023-02-21</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html b/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html
index 090fbae6d7..91f25d1553 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1398_query_based_metadata/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Query based metadata"><title>opendal::docs::rfcs::rfc_1398_query_based_metadata - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Query based metadata"><title>opendal::docs::rfcs::rfc_1398_query_based_metadata - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
<ul>
<li>Proposal Name: <code>query_based_metadata</code></li>
<li>Start Date: 2022-02-22</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html b/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html
index d18d4dc378..ea8bc59db0 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1420_object_writer/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object writer"><title>opendal::docs::rfcs::rfc_1420_object_writer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object writer"><title>opendal::docs::rfcs::rfc_1420_object_writer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
<ul>
<li>Proposal Name: <code>object_writer</code></li>
<li>Start Date: 2023-02-27</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html b/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html
index f5abbcb8af..58d6108740 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1477_remove_object_concept/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Remove object concept"><title>opendal::docs::rfcs::rfc_1477_remove_object_concept - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Remove object concept"><title>opendal::docs::rfcs::rfc_1477_remove_object_concept - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
<ul>
<li>Proposal Name: <code>remove_object_concept</code></li>
<li>Start Date: <code>2023-03-05</code></li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html b/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html
index 5d67d75b21..aa1d39a301 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_1735_operation_extension/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Operation extension"><title>opendal::docs::rfcs::rfc_1735_operation_extension - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Operation extension"><title>opendal::docs::rfcs::rfc_1735_operation_extension - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
<ul>
<li>Proposal Name: <code>operation_extension</code></li>
<li>Start Date: 2023-03-23</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2083_writer_sink_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_2083_writer_sink_api/index.html
index 2c7e043344..982b1d9213 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2083_writer_sink_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2083_writer_sink_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Writer sink API"><title>opendal::docs::rfcs::rfc_2083_writer_sink_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Writer sink API"><title>opendal::docs::rfcs::rfc_2083_writer_sink_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
<ul>
<li>Proposal Name: <code>writer_sink_api</code></li>
<li>Start Date: 2023-04-23</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2133_append_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_2133_append_api/index.html
index 4e172e0968..1ab052c67d 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2133_append_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2133_append_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Append API"><title>opendal::docs::rfcs::rfc_2133_append_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Append API"><title>opendal::docs::rfcs::rfc_2133_append_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
<ul>
<li>Proposal Name: <code>append_api</code></li>
<li>Start Date: 2023-04-26</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2299_chain_based_operator_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_2299_chain_based_operator_api/index.html
index cf43ec1273..6d614b8893 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2299_chain_based_operator_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2299_chain_based_operator_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Chain based operator API"><title>opendal::docs::rfcs::rfc_2299_chain_based_operator_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Chain based operator API"><title>opendal::docs::rfcs::rfc_2299_chain_based_operator_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
<ul>
<li>Proposal Name: <code>chain_based_operator_api</code></li>
<li>Start Date: 2023-05-23</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2602_object_versioning/index.html b/docs/rust/opendal/docs/rfcs/rfc_2602_object_versioning/index.html
index 12e78dc919..25eeec2893 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2602_object_versioning/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2602_object_versioning/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object versioning"><title>opendal::docs::rfcs::rfc_2602_object_versioning - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Object versioning"><title>opendal::docs::rfcs::rfc_2602_object_versioning - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<ul>
<li>Proposal Name: object_versioning</li>
<li>Start Date: 2023-07-06</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2758_merge_append_into_write/index.html b/docs/rust/opendal/docs/rfcs/rfc_2758_merge_append_into_write/index.html
index 57c6d63044..fe7e5ea31e 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2758_merge_append_into_write/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2758_merge_append_into_write/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Merge append into write"><title>opendal::docs::rfcs::rfc_2758_merge_append_into_write - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Merge append into write"><title>opendal::docs::rfcs::rfc_2758_merge_append_into_write - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
<ul>
<li>Proposal Name: <code>merge_append_into_write</code></li>
<li>Start Date: 2023-08-02</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2774_lister_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_2774_lister_api/index.html
index 3dfb9ea225..39b7a0b6a9 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2774_lister_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2774_lister_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Lister API"><title>opendal::docs::rfcs::rfc_2774_lister_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Lister API"><title>opendal::docs::rfcs::rfc_2774_lister_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
<ul>
<li>Proposal Name: <code>lister_api</code></li>
<li>Start Date: 2023-08-04</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2779_list_with_metakey/index.html b/docs/rust/opendal/docs/rfcs/rfc_2779_list_with_metakey/index.html
index ced2f8ecb9..a4e1dbdd9a 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2779_list_with_metakey/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2779_list_with_metakey/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List with metakey"><title>opendal::docs::rfcs::rfc_2779_list_with_metakey - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List with metakey"><title>opendal::docs::rfcs::rfc_2779_list_with_metakey - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<ul>
<li>Proposal Name: <code>list_with_metakey</code></li>
<li>Start Date: 2023-08-04</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_2852_native_capability/index.html b/docs/rust/opendal/docs/rfcs/rfc_2852_native_capability/index.html
index db232b5470..8d868febe1 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_2852_native_capability/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_2852_native_capability/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Native capability"><title>opendal::docs::rfcs::rfc_2852_native_capability - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Native capability"><title>opendal::docs::rfcs::rfc_2852_native_capability - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<ul>
<li>Proposal Name: <code>native_capability</code></li>
<li>Start Date: 2023-08-11</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3017_remove_write_copy_from/index.html b/docs/rust/opendal/docs/rfcs/rfc_3017_remove_write_copy_from/index.html
index 6de864d801..4c7e585ef5 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3017_remove_write_copy_from/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3017_remove_write_copy_from/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Remove write copy from"><title>opendal::docs::rfcs::rfc_3017_remove_write_copy_from - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Remove write copy from"><title>opendal::docs::rfcs::rfc_3017_remove_write_copy_from - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M [...]
<ul>
<li>Proposal Name: <code>remove_write_copy_from</code></li>
<li>Start Date: 2023-09-06</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3197_config/index.html b/docs/rust/opendal/docs/rfcs/rfc_3197_config/index.html
index c4d3e5c9b3..ab40f1b3c6 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3197_config/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3197_config/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config"><title>opendal::docs::rfcs::rfc_3197_config - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Sou [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config"><title>opendal::docs::rfcs::rfc_3197_config - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Sou [...]
<ul>
<li>Proposal Name: <code>config</code></li>
<li>Start Date: 2023-09-27</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3232_align_list_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_3232_align_list_api/index.html
index ebb0c19449..deb07cce9d 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3232_align_list_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3232_align_list_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Align list API"><title>opendal::docs::rfcs::rfc_3232_align_list_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Align list API"><title>opendal::docs::rfcs::rfc_3232_align_list_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
<ul>
<li>Proposal Name: <code>align_list_api</code></li>
<li>Start Date: 2023-10-07</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3243_list_prefix/index.html b/docs/rust/opendal/docs/rfcs/rfc_3243_list_prefix/index.html
index 8865a2de4a..0eb5a057ec 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3243_list_prefix/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3243_list_prefix/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List prefix"><title>opendal::docs::rfcs::rfc_3243_list_prefix - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List prefix"><title>opendal::docs::rfcs::rfc_3243_list_prefix - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<ul>
<li>Proposal Name: <code>list_prefix</code></li>
<li>Start Date: 2023-10-08</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3356_lazy_reader/index.html b/docs/rust/opendal/docs/rfcs/rfc_3356_lazy_reader/index.html
index 2969e8fa04..749a7c044f 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3356_lazy_reader/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3356_lazy_reader/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Lazy reader"><title>opendal::docs::rfcs::rfc_3356_lazy_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Lazy reader"><title>opendal::docs::rfcs::rfc_3356_lazy_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<ul>
<li>Proposal Name: <code>lazy_reader</code></li>
<li>Start Date: 2023-10-22</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3526_list_recursive/index.html b/docs/rust/opendal/docs/rfcs/rfc_3526_list_recursive/index.html
index 273473ab7a..bbe3470c78 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3526_list_recursive/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3526_list_recursive/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List recursive"><title>opendal::docs::rfcs::rfc_3526_list_recursive - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List recursive"><title>opendal::docs::rfcs::rfc_3526_list_recursive - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
<ul>
<li>Proposal Name: <code>list_recursive</code></li>
<li>Start Date: 2023-11-08</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3574_concurrent_stat_in_list/index.html b/docs/rust/opendal/docs/rfcs/rfc_3574_concurrent_stat_in_list/index.html
index 617fea735c..d98c96ec1f 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3574_concurrent_stat_in_list/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3574_concurrent_stat_in_list/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Concurrent stat in list"><title>opendal::docs::rfcs::rfc_3574_concurrent_stat_in_list - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Concurrent stat in list"><title>opendal::docs::rfcs::rfc_3574_concurrent_stat_in_list - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
<ul>
<li>Proposal Name: <code>concurrent_stat_in_list</code></li>
<li>Start Date: 2023-11-13</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3734_buffered_reader/index.html b/docs/rust/opendal/docs/rfcs/rfc_3734_buffered_reader/index.html
index 6f376fc43e..0ca80c290e 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3734_buffered_reader/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3734_buffered_reader/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Buffered Reader"><title>opendal::docs::rfcs::rfc_3734_buffered_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Buffered Reader"><title>opendal::docs::rfcs::rfc_3734_buffered_reader - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
<ul>
<li>Proposal Name: <code>buffered_reader</code></li>
<li>Start Date: 2023-12-10</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3898_concurrent_writer/index.html b/docs/rust/opendal/docs/rfcs/rfc_3898_concurrent_writer/index.html
index 4ae6357ca3..3dc103d334 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3898_concurrent_writer/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3898_concurrent_writer/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Concurrent Writer"><title>opendal::docs::rfcs::rfc_3898_concurrent_writer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Concurrent Writer"><title>opendal::docs::rfcs::rfc_3898_concurrent_writer - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<ul>
<li>Proposal Name: <code>concurrent_writer</code></li>
<li>Start Date: 2024-01-02</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_3911_deleter_api/index.html b/docs/rust/opendal/docs/rfcs/rfc_3911_deleter_api/index.html
index 39817bc833..88f464bcaa 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_3911_deleter_api/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_3911_deleter_api/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Deleter API"><title>opendal::docs::rfcs::rfc_3911_deleter_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Deleter API"><title>opendal::docs::rfcs::rfc_3911_deleter_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<ul>
<li>Proposal Name: <code>deleter_api</code></li>
<li>Start Date: 2024-01-04</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_4382_range_based_read/index.html b/docs/rust/opendal/docs/rfcs/rfc_4382_range_based_read/index.html
index 8e093e1b95..bc62c10b80 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_4382_range_based_read/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_4382_range_based_read/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Range Based Read API"><title>opendal::docs::rfcs::rfc_4382_range_based_read - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Range Based Read API"><title>opendal::docs::rfcs::rfc_4382_range_based_read - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
<ul>
<li>Proposal Name: <code>range_based_read</code></li>
<li>Start Date: 2024-03-20</li>
diff --git a/docs/rust/opendal/docs/rfcs/rfc_4638_executor/index.html b/docs/rust/opendal/docs/rfcs/rfc_4638_executor/index.html
index f41a4a2bae..71413cfea5 100644
--- a/docs/rust/opendal/docs/rfcs/rfc_4638_executor/index.html
+++ b/docs/rust/opendal/docs/rfcs/rfc_4638_executor/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Executor API"><title>opendal::docs::rfcs::rfc_4638_executor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Executor API"><title>opendal::docs::rfcs::rfc_4638_executor - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
<ul>
<li>Proposal Name: <code>executor</code></li>
<li>Start Date: 2024-05-23</li>
diff --git a/docs/rust/opendal/docs/upgrade/index.html b/docs/rust/opendal/docs/upgrade/index.html
index 1c54b4bee6..76f0ab5bf9 100644
--- a/docs/rust/opendal/docs/upgrade/index.html
+++ b/docs/rust/opendal/docs/upgrade/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Upgrade and migrate procedures while OpenDAL meets breaking changes."><title>opendal::docs::upgrade - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Upgrade and migrate procedures while OpenDAL meets breaking changes."><title>opendal::docs::upgrade - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
<h2 id="upgrade-to-v047"><a class="doc-anchor" href="#upgrade-to-v047">§</a>Upgrade to v0.47</h2><h3 id="public-api"><a class="doc-anchor" href="#public-api">§</a>Public API</h3><h4 id="reader-into_xxx-apis"><a class="doc-anchor" href="#reader-into_xxx-apis">§</a>Reader <code>into_xxx</code> APIs</h4>
<p>Since v0.47, <code>Reader</code>’s <code>into_xxx</code> APIs requires <code>async</code> and returns <code>Result</code> instead.</p>
<div class="example-wrap"><pre class="language-diff"><code>- let r = op.reader("test.txt").await?.into_futures_async_read(1024..2048);
diff --git a/docs/rust/opendal/enum.EntryMode.html b/docs/rust/opendal/enum.EntryMode.html
index 536043026e..6a8aaf9ebb 100644
--- a/docs/rust/opendal/enum.EntryMode.html
+++ b/docs/rust/opendal/enum.EntryMode.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="EntryMode represents the mode."><title>EntryMode in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="EntryMode represents the mode."><title>EntryMode in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
FILE,
DIR,
Unknown,
@@ -8,7 +8,7 @@
</div><section id="variant.Unknown" class="variant"><a href="#variant.Unknown" class="anchor">§</a><h3 class="code-header">Unknown</h3></section><div class="docblock"><p>Unknown means we don’t know what we can do on this path.</p>
</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-EntryMode" class="impl"><a class="src rightside" href="../src/opendal/types/mode.rs.html#32-52">source</a><a href="#impl-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.EntryMode.html" title="enum opendal::EntryMode">En [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_dir" class="method"><a class="src rightside" href="../src/opendal/types/mode.rs.html#39-41">source</a><h4 class="code-header">pub fn <a href="#method.is_dir" class="fn">is_dir</a>(self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this mode is DIR.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-EntryMode" class="impl"><a class="src rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Clone-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class=" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-EntryMode" class="impl"><a class="src rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Clone-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class=" [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class= [...]
sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-EntryMode" class="impl"><a class="src rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Copy-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.EntryMode.html" title [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/enum.ErrorKind.html b/docs/rust/opendal/enum.ErrorKind.html
index d37dc5d2d6..78496509d9 100644
--- a/docs/rust/opendal/enum.ErrorKind.html
+++ b/docs/rust/opendal/enum.ErrorKind.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ErrorKind is all kinds of Error of opendal."><title>ErrorKind in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ErrorKind is all kinds of Error of opendal."><title>ErrorKind in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
Unexpected,
Unsupported,
ConfigInvalid,
@@ -35,7 +35,7 @@ So users could to handle this error by themselves.</p>
</div><section id="variant.RangeNotSatisfied" class="variant"><a href="#variant.RangeNotSatisfied" class="anchor">§</a><h3 class="code-header">RangeNotSatisfied</h3></section><div class="docblock"><p>The range of the content is not satisfied.</p>
<p>OpenDAL returns this error to indicate that the range of the read request is not satisfied.</p>
</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ErrorKind" class="impl"><a class="src rightside" href="../src/opendal/types/error.rs.html#91-96">source</a><a href="#impl-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ErrorKind.html" title="enum opendal::ErrorKind">E [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ErrorKind" class="impl"><a class="src rightside" href="../src/opendal/types/error.rs.html#49">source</a><a href="#impl-Clone-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class= [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ErrorKind" class="impl"><a class="src rightside" href="../src/opendal/types/error.rs.html#49">source</a><a href="#impl-Clone-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class= [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class= [...]
sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-ErrorKind" class="impl"><a class="src rightside" href="../src/opendal/types/error.rs.html#49">source</a><a href="#impl-Copy-for-ErrorKind" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.ErrorKind.html" titl [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/enum.Metakey.html b/docs/rust/opendal/enum.Metakey.html
index 4ad10919eb..4dd7fe8375 100644
--- a/docs/rust/opendal/enum.Metakey.html
+++ b/docs/rust/opendal/enum.Metakey.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Metakey describes the metadata keys that can be stored or queried."><title>Metakey in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Metakey describes the metadata keys that can be stored or queried."><title>Metakey in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
Complete,
Mode,
CacheControl,
@@ -31,9 +31,9 @@ already contains all metadata.</p>
</div><section id="variant.Etag" class="variant"><a href="#variant.Etag" class="anchor">§</a><h3 class="code-header">Etag</h3></section><div class="docblock"><p>Key for etag.</p>
</div><section id="variant.LastModified" class="variant"><a href="#variant.LastModified" class="anchor">§</a><h3 class="code-header">LastModified</h3></section><div class="docblock"><p>Key for last modified.</p>
</div><section id="variant.Version" class="variant"><a href="#variant.Version" class="anchor">§</a><h3 class="code-header">Version</h3></section><div class="docblock"><p>Key for version.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-Metakey" class="impl"><a class="src rightside" href="../src/opendal/types/metadata.rs.html#512-552">source</a><a href="#impl-BitAnd%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: <a class= [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-Metakey" class="impl"><a class="src rightside" href="../src/opendal/types/metadata.rs.html#512-552">source</a><a href="#impl-BitAnd%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: <a class= [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class= [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-Metakey" class="impl"><a class="src rightside" href="../src/opendal/types/metadata.rs.html#512-552">source</a><a href="#impl-Rem%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-Metakey" class="impl"><a class="src rightside" href="../src/opendal/types/metadata.rs.html#512-552">source</a><a href="#impl-Rem%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/enum.Scheme.html b/docs/rust/opendal/enum.Scheme.html
index 13f55a4af7..ef326cde4f 100644
--- a/docs/rust/opendal/enum.Scheme.html
+++ b/docs/rust/opendal/enum.Scheme.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Services that OpenDAL supports"><title>Scheme in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Services that OpenDAL supports"><title>Scheme in opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 65 variants</span></summary> AliyunDrive,
Atomicserver,
Azblob,
@@ -152,7 +152,7 @@ This function returns all enabled schemes so users can make decisions based on i
<span class="kw">if </span>!enabled_schemes.contains(<span class="kw-2">&</span>Scheme::Memory) {
<span class="macro">panic!</span>(<span class="string">"s3 support is not enabled"</span>)
}</code></pre></div>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Scheme" class="impl"><a class="src rightside" href="../src/opendal/types/scheme.rs.html#32">source</a><a href="#impl-Clone-for-Scheme" class="anchor">§</a><h3 class="code-header">impl <a class="trai [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Scheme" class="impl"><a class="src rightside" href="../src/opendal/types/scheme.rs.html#32">source</a><a href="#impl-Clone-for-Scheme" class="anchor">§</a><h3 class="code-header">impl <a class="trai [...]
H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class= [...]
diff --git a/docs/rust/opendal/executors/index.html b/docs/rust/opendal/executors/index.html
index f7dea5cf95..96fdf6a891 100644
--- a/docs/rust/opendal/executors/index.html
+++ b/docs/rust/opendal/executors/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="executors module provides implementations for the `Execute` trait for widely used runtimes."><title>opendal::executors - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regula [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="executors module provides implementations for the `Execute` trait for widely used runtimes."><title>opendal::executors - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regula [...]
<p>Every executor will be hide behind the feature like <code>executors-xxx</code>. Users can switch or enable
the executors they want by enabling the corresponding feature. Also, users can provide their
own executor by implementing the <a href="../trait.Execute.html" title="trait opendal::Execute"><code>Execute</code></a> trait directly.</p>
diff --git a/docs/rust/opendal/executors/struct.TokioExecutor.html b/docs/rust/opendal/executors/struct.TokioExecutor.html
index 5c14c8fbe5..ca429e45d3 100644
--- a/docs/rust/opendal/executors/struct.TokioExecutor.html
+++ b/docs/rust/opendal/executors/struct.TokioExecutor.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Executor that uses the `tokio::task::spawn` to execute futures."><title>TokioExecutor in opendal::executors - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Executor that uses the `tokio::task::spawn` to execute futures."><title>TokioExecutor in opendal::executors - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-TokioExecutor" class="impl"><a class="src rightside" href="../../src/opendal/types/execute/executors/tokio_executor.rs.html#22">source</a><a href="#impl-Default-for-TokioExecutor" class="anchor">§</a><h3 class="code-he [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.timeout" class="method trait-impl"><a class="src rightside" href="../../src/opendal/types/execute/api.rs.html#64-66">source</a><a href="#method.timeout" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Execute.html#method.timeout" class="fn">timeout</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Optio [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/index.html b/docs/rust/opendal/index.html
index b46ba86168..d2396fe52a 100644
--- a/docs/rust/opendal/index.html
+++ b/docs/rust/opendal/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Apache OpenDAL™ is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way."><title>opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Apache OpenDAL™ is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way."><title>opendal - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular- [...]
efficiently retrieve data from various storage services in a unified way.</p>
<h2 id="quick-start"><a class="doc-anchor" href="#quick-start">§</a>Quick Start</h2>
<p>OpenDAL’s API entry points are <a href="struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a> and <a href="struct.BlockingOperator.html" title="struct opendal::BlockingOperator"><code>BlockingOperator</code></a>. All
diff --git a/docs/rust/opendal/layers/index.html b/docs/rust/opendal/layers/index.html
index 783b3bdf54..cd997e11d1 100644
--- a/docs/rust/opendal/layers/index.html
+++ b/docs/rust/opendal/layers/index.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`Layer` is the mechanism to intercept operations."><title>opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`Layer` is the mechanism to intercept operations."><title>opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.AsyncBacktraceLayer.html" title="struct opendal::layers::AsyncBacktraceLayer">AsyncBacktraceLayer</a><span class="stab portability" title="Available on crate feature `layers-async-backtrace` only"><code>layers-async-backtrace</code></span></div><div class="desc docblock-short">Add Efficient, logical ‘st [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html b/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html
index 3ea023c81c..07c16b243c 100644
--- a/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html
+++ b/docs/rust/opendal/layers/struct.AsyncBacktraceLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add Efficient, logical ‘stack’ traces of async functions for the underlying services."><title>AsyncBacktraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,F [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add Efficient, logical ‘stack’ traces of async functions for the underlying services."><title>AsyncBacktraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,F [...]
<h2 id="async-backtrace"><a class="doc-anchor" href="#async-backtrace">§</a>Async Backtrace</h2>
<p>async-backtrace allows developers to get a stack trace of the async functions.
Read more about <a href="https://docs.rs/async-backtrace/latest/async_backtrace/">async-backtrace</a></p>
diff --git a/docs/rust/opendal/layers/struct.AwaitTreeLayer.html b/docs/rust/opendal/layers/struct.AwaitTreeLayer.html
index 3d14891e9a..da7e4feacc 100644
--- a/docs/rust/opendal/layers/struct.AwaitTreeLayer.html
+++ b/docs/rust/opendal/layers/struct.AwaitTreeLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add a Instrument await-tree for actor-based applications to the underlying services."><title>AwaitTreeLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add a Instrument await-tree for actor-based applications to the underlying services."><title>AwaitTreeLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSan [...]
<h2 id="awaittree"><a class="doc-anchor" href="#awaittree">§</a>AwaitTree</h2>
<p>await-tree allows developers to dump this execution tree at runtime,
with the span of each Future annotated by instrument_await.
diff --git a/docs/rust/opendal/layers/struct.BlockingLayer.html b/docs/rust/opendal/layers/struct.BlockingLayer.html
index 87f16a44b1..6049bc5d11 100644
--- a/docs/rust/opendal/layers/struct.BlockingLayer.html
+++ b/docs/rust/opendal/layers/struct.BlockingLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add blocking API support for non-blocking services."><title>BlockingLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add blocking API support for non-blocking services."><title>BlockingLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<ul>
<li>Please only enable this layer when the underlying service does not support blocking.</li>
diff --git a/docs/rust/opendal/layers/struct.ChaosLayer.html b/docs/rust/opendal/layers/struct.ChaosLayer.html
index 4fda0f0bb5..627c22ed17 100644
--- a/docs/rust/opendal/layers/struct.ChaosLayer.html
+++ b/docs/rust/opendal/layers/struct.ChaosLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Inject chaos into underlying services for robustness test."><title>ChaosLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Inject chaos into underlying services for robustness test."><title>ChaosLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
<h2 id="chaos"><a class="doc-anchor" href="#chaos">§</a>Chaos</h2>
<p>Chaos tests is a part of stress test. By generating errors at specified
error ratio, we can reproduce underlying services error more reliable.</p>
diff --git a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
index eed2856a19..6f77eb746e 100644
--- a/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
+++ b/docs/rust/opendal/layers/struct.ConcurrentLimitLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add concurrent request limit."><title>ConcurrentLimitLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add concurrent request limit."><title>ConcurrentLimitLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<p>Users can control how many concurrent connections could be established
between OpenDAL and underlying storage services.</p>
diff --git a/docs/rust/opendal/layers/struct.DtraceLayer.html b/docs/rust/opendal/layers/struct.DtraceLayer.html
index 2b362cea42..8621dc900b 100644
--- a/docs/rust/opendal/layers/struct.DtraceLayer.html
+++ b/docs/rust/opendal/layers/struct.DtraceLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Support User Statically-Defined Tracing(aka USDT) on Linux"><title>DtraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Support User Statically-Defined Tracing(aka USDT) on Linux"><title>DtraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
<p>This layer is an experimental feature, it will be enabled by <code>features = ["layers-dtrace"]</code> in Cargo.toml.</p>
<p>For now we have following probes:</p>
<h4 id="for-accessor"><a class="doc-anchor" href="#for-accessor">§</a>For Accessor</h4>
diff --git a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
index 41b44786d0..e24fd730a8 100644
--- a/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
+++ b/docs/rust/opendal/layers/struct.ImmutableIndexLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add an immutable in-memory index for underlying storage services."><title>ImmutableIndexLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add an immutable in-memory index for underlying storage services."><title>ImmutableIndexLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
<p>Especially useful for services without list capability like HTTP.</p>
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::collections::HashMap;
diff --git a/docs/rust/opendal/layers/struct.LoggingLayer.html b/docs/rust/opendal/layers/struct.LoggingLayer.html
index a090e5f81e..e97ca1d1e2 100644
--- a/docs/rust/opendal/layers/struct.LoggingLayer.html
+++ b/docs/rust/opendal/layers/struct.LoggingLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add log for every operations."><title>LoggingLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add log for every operations."><title>LoggingLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
<h2 id="logging"><a class="doc-anchor" href="#logging">§</a>Logging</h2>
<ul>
<li>OpenDAL will log in structural way.</li>
diff --git a/docs/rust/opendal/layers/struct.MadsimLayer.html b/docs/rust/opendal/layers/struct.MadsimLayer.html
index d6b3b3858c..c06b8c4c47 100644
--- a/docs/rust/opendal/layers/struct.MadsimLayer.html
+++ b/docs/rust/opendal/layers/struct.MadsimLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add deterministic simulation for async operations, powered by `madsim`."><title>MadsimLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add deterministic simulation for async operations, powered by `madsim`."><title>MadsimLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
<h2 id="note"><a class="doc-anchor" href="#note">§</a>Note</h2>
<ul>
<li>blocking operations are not supported, as <a href="https://docs.rs/madsim/latest/madsim/"><code>madsim</code></a> is async only.</li>
diff --git a/docs/rust/opendal/layers/struct.MadsimServer.html b/docs/rust/opendal/layers/struct.MadsimServer.html
index 3f15f245e8..e4f9a469ff 100644
--- a/docs/rust/opendal/layers/struct.MadsimServer.html
+++ b/docs/rust/opendal/layers/struct.MadsimServer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A simulated server.This an experimental feature, docs are not ready yet."><title>MadsimServer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A simulated server.This an experimental feature, docs are not ready yet."><title>MadsimServer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MadsimServer" class="impl"><a class="src rightside" href="../../src/opendal/layers/madsim.rs.html#326-360">source</a><a href="#impl-MadsimServer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.MadsimServer.html" title="st [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-MadsimServer" class="impl"><a class="src rightside" href="../../src/opendal/layers/madsim.rs.html#323">source</a><a href="#impl-Clone-for-MadsimServer" class="anchor">§</a><h3 class="code-header">im [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/layers/struct.MetricsLayer.html b/docs/rust/opendal/layers/struct.MetricsLayer.html
index 344446b8e0..912d642e1c 100644
--- a/docs/rust/opendal/layers/struct.MetricsLayer.html
+++ b/docs/rust/opendal/layers/struct.MetricsLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add metrics for every operations."><title>MetricsLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add metrics for every operations."><title>MetricsLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<h2 id="metrics"><a class="doc-anchor" href="#metrics">§</a>Metrics</h2>
<ul>
<li><code>opendal_requests_total</code>: Total request numbers.</li>
diff --git a/docs/rust/opendal/layers/struct.MinitraceLayer.html b/docs/rust/opendal/layers/struct.MinitraceLayer.html
index 318a497f67..fe4e4c369e 100644
--- a/docs/rust/opendal/layers/struct.MinitraceLayer.html
+++ b/docs/rust/opendal/layers/struct.MinitraceLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add minitrace for every operations."><title>MinitraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add minitrace for every operations."><title>MinitraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2><h3 id="basic-setup"><a class="doc-anchor" href="#basic-setup">§</a>Basic Setup</h3><div class="example-wrap"><pre class="language-no_build"><code>use anyhow::Result;
use opendal::layers::MinitraceLayer;
use opendal::services;
diff --git a/docs/rust/opendal/layers/struct.OtelTraceLayer.html b/docs/rust/opendal/layers/struct.OtelTraceLayer.html
index 2459d11b04..a87ce39ba4 100644
--- a/docs/rust/opendal/layers/struct.OtelTraceLayer.html
+++ b/docs/rust/opendal/layers/struct.OtelTraceLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add opentelemetry::trace for every operations."><title>OtelTraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add opentelemetry::trace for every operations."><title>OtelTraceLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
<p>Examples</p>
<h3 id="basic-setup"><a class="doc-anchor" href="#basic-setup">§</a>Basic Setup</h3><div class="example-wrap"><pre class="language-no_build"><code>use anyhow::Result;
use opendal::layers::OtelTraceLayer;
diff --git a/docs/rust/opendal/layers/struct.PrometheusClientLayer.html b/docs/rust/opendal/layers/struct.PrometheusClientLayer.html
index 29e9b4537c..8344d25f57 100644
--- a/docs/rust/opendal/layers/struct.PrometheusClientLayer.html
+++ b/docs/rust/opendal/layers/struct.PrometheusClientLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add prometheus for every operations."><title>PrometheusClientLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add prometheus for every operations."><title>PrometheusClientLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2><div class="example-wrap"><pre class="language-no_build"><code>use log::debug;
use log::info;
use opendal::layers::PrometheusClientLayer;
diff --git a/docs/rust/opendal/layers/struct.PrometheusLayer.html b/docs/rust/opendal/layers/struct.PrometheusLayer.html
index 317e3ac7db..0da33579df 100644
--- a/docs/rust/opendal/layers/struct.PrometheusLayer.html
+++ b/docs/rust/opendal/layers/struct.PrometheusLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add prometheus for every operations."><title>PrometheusLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add prometheus for every operations."><title>PrometheusLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
<h2 id="prometheus-metrics"><a class="doc-anchor" href="#prometheus-metrics">§</a>Prometheus Metrics</h2>
<p>In this section, we will introduce three metrics that are currently being exported by our project. These metrics are essential for understanding the behavior and performance of our applications.</p>
<div><table><thead><tr><th>Metric Name</th><th>Type</th><th>Description</th><th>Labels</th></tr></thead><tbody>
diff --git a/docs/rust/opendal/layers/struct.RetryLayer.html b/docs/rust/opendal/layers/struct.RetryLayer.html
index d33a0db593..7bc6d732e0 100644
--- a/docs/rust/opendal/layers/struct.RetryLayer.html
+++ b/docs/rust/opendal/layers/struct.RetryLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add retry for temporary failed operations."><title>RetryLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add retry for temporary failed operations."><title>RetryLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<p>This layer will retry failed operations when <a href="../struct.Error.html#method.is_temporary" title="method opendal::Error::is_temporary"><code>Error::is_temporary</code></a>
returns true. If operation still failed, this layer will set error to
diff --git a/docs/rust/opendal/layers/struct.ThrottleLayer.html b/docs/rust/opendal/layers/struct.ThrottleLayer.html
index 9db642e792..f5bd45ba91 100644
--- a/docs/rust/opendal/layers/struct.ThrottleLayer.html
+++ b/docs/rust/opendal/layers/struct.ThrottleLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add a bandwidth rate limiter to the underlying services."><title>ThrottleLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add a bandwidth rate limiter to the underlying services."><title>ThrottleLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
<h2 id="throttle"><a class="doc-anchor" href="#throttle">§</a>Throttle</h2>
<p>There are several algorithms when it come to rate limiting techniques.
This throttle layer uses Generic Cell Rate Algorithm (GCRA) provided by
diff --git a/docs/rust/opendal/layers/struct.TimeoutLayer.html b/docs/rust/opendal/layers/struct.TimeoutLayer.html
index 807af10a7e..f051ced9f9 100644
--- a/docs/rust/opendal/layers/struct.TimeoutLayer.html
+++ b/docs/rust/opendal/layers/struct.TimeoutLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add timeout for every operations to avoid slow or unexpected hang operations."><title>TimeoutLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add timeout for every operations to avoid slow or unexpected hang operations."><title>TimeoutLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
<p>For example, a dead connection could hang a databases sql query. TimeoutLayer
will break this connection and returns an error so users can handle it by
retrying or print to users.</p>
diff --git a/docs/rust/opendal/layers/struct.TracingLayer.html b/docs/rust/opendal/layers/struct.TracingLayer.html
index fd070fbd82..153a7a9910 100644
--- a/docs/rust/opendal/layers/struct.TracingLayer.html
+++ b/docs/rust/opendal/layers/struct.TracingLayer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add tracing for every operations."><title>TracingLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add tracing for every operations."><title>TracingLayer in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2><h3 id="basic-setup"><a class="doc-anchor" href="#basic-setup">§</a>Basic Setup</h3><div class="example-wrap"><pre class="language-no_build"><code>use anyhow::Result;
use opendal::layers::TracingLayer;
use opendal::services;
diff --git a/docs/rust/opendal/layers/trait.RetryInterceptor.html b/docs/rust/opendal/layers/trait.RetryInterceptor.html
index 0a1a37e26f..5f934a8298 100644
--- a/docs/rust/opendal/layers/trait.RetryInterceptor.html
+++ b/docs/rust/opendal/layers/trait.RetryInterceptor.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RetryInterceptor is used to intercept while retry happened."><title>RetryInterceptor in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RetryInterceptor is used to intercept while retry happened."><title>RetryInterceptor in opendal::layers - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
// Required method
fn <a href="#tymethod.intercept" class="fn">intercept</a>(&self, err: &<a class="struct" href="../struct.Error.html" title="struct opendal::Error">Error</a>, dur: <a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>);
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>RetryInterceptor is used to intercept while retry happened.</p>
diff --git a/docs/rust/opendal/operator_functions/index.html b/docs/rust/opendal/operator_functions/index.html
index 395def3cf9..b974856f56 100644
--- a/docs/rust/opendal/operator_functions/index.html
+++ b/docs/rust/opendal/operator_functions/index.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Functions provides the functions generated by `BlockingOperator`"><title>opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Functions provides the functions generated by `BlockingOperator`"><title>opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
<p>By using functions, users can add more options for operation.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.FunctionDelete.html" title="struct opendal::operator_functions::FunctionDelete">FunctionDelete</a></div><div class="desc docblock-short">Function that generated by <a href="../struct.BlockingOperator.html#method.delete_with" title="method opendal::BlockingOperator::delete_with"><code>BlockingOperator::d [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionDelete.html b/docs/rust/opendal/operator_functions/struct.FunctionDelete.html
index 5600a90947..3a56c7d5fd 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionDelete.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionDelete.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::delete_with`."><title>FunctionDelete in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::delete_with`."><title>FunctionDelete in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionDelete" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#199-211">source</a><a href="#impl-FunctionDelete" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Func [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.call" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#208-210">source</a><h4 class="code-header">pub fn <a href="#method.call" class="fn">call</a>(self) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>></h4> [...]
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionList.html b/docs/rust/opendal/operator_functions/struct.FunctionList.html
index ab8fe7ae60..b2ed85914f 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionList.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionList.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::list_with`."><title>FunctionList in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::list_with`."><title>FunctionList in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionList" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#218-264">source</a><a href="#impl-FunctionList" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Function [...]
that could return per-request.</p>
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionLister.html b/docs/rust/opendal/operator_functions/struct.FunctionLister.html
index 6b38840e02..da80aeafc7 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionLister.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionLister.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::lister_with`."><title>FunctionLister in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::lister_with`."><title>FunctionLister in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionLister" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#271-317">source</a><a href="#impl-FunctionLister" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Func [...]
that could return per-request.</p>
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionRead.html b/docs/rust/opendal/operator_functions/struct.FunctionRead.html
index 76530e1a08..d7217ed01e 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionRead.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionRead.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::read_with`."><title>FunctionRead in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::read_with`."><title>FunctionRead in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionRead" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#324-336">source</a><a href="#impl-FunctionRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Function [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.call" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#333-335">source</a><h4 class="code-header">pub fn <a href="#method.call" class="fn">call</a>(self) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>></h4></se [...]
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionReader.html b/docs/rust/opendal/operator_functions/struct.FunctionReader.html
index 7cf1726bb5..92ff24c63e 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionReader.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionReader.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::reader_with`."><title>FunctionReader in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::reader_with`."><title>FunctionReader in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionReader" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#343-391">source</a><a href="#impl-FunctionReader" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Func [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#353-358">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, cache_control: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section> [...]
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionStat.html b/docs/rust/opendal/operator_functions/struct.FunctionStat.html
index d256990684..60b9ecadec 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionStat.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionStat.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::stat_with`."><title>FunctionStat in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::stat_with`."><title>FunctionStat in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionStat" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#398-422">source</a><a href="#impl-FunctionStat" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Function [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#406-409">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Set [...]
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionWrite.html b/docs/rust/opendal/operator_functions/struct.FunctionWrite.html
index e01fc734b6..66d7e43253 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionWrite.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::write_with`."><title>FunctionWrite in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c1 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::write_with`."><title>FunctionWrite in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c1 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionWrite" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#77-132">source</a><a href="#impl-FunctionWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Functio [...]
<p>If the append mode is set, the data will be appended to the end of the file.</p>
diff --git a/docs/rust/opendal/operator_functions/struct.FunctionWriter.html b/docs/rust/opendal/operator_functions/struct.FunctionWriter.html
index f2c642bbe5..c580ee070f 100644
--- a/docs/rust/opendal/operator_functions/struct.FunctionWriter.html
+++ b/docs/rust/opendal/operator_functions/struct.FunctionWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::writer_with`."><title>FunctionWriter in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Function that generated by `BlockingOperator::writer_with`."><title>FunctionWriter in opendal::operator_functions - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FunctionWriter" class="impl"><a class="src rightside" href="../../src/opendal/types/operator/operator_functions.rs.html#143-192">source</a><a href="#impl-FunctionWriter" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Func [...]
<p>If the append mode is set, the data will be appended to the end of the file.</p>
diff --git a/docs/rust/opendal/operator_futures/index.html b/docs/rust/opendal/operator_futures/index.html
index e5fdf97d1f..09ccea913e 100644
--- a/docs/rust/opendal/operator_futures/index.html
+++ b/docs/rust/opendal/operator_futures/index.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Futures provides the futures generated by `Operator`"><title>opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Futures provides the futures generated by `Operator`"><title>opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
<p>By using futures, users can add more options for operation.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.OperatorFuture.html" title="struct opendal::operator_futures::OperatorFuture">OperatorFuture</a></div><div class="desc docblock-short">OperatorFuture is the future generated by <a href="../struct.Operator.html" title="struct opendal::Operator"><code>Operator</code></a>.</div></li></ul><h2 id="types" cla [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/operator_futures/struct.OperatorFuture.html b/docs/rust/opendal/operator_futures/struct.OperatorFuture.html
index b575e4eb8f..37a6f8b451 100644
--- a/docs/rust/opendal/operator_futures/struct.OperatorFuture.html
+++ b/docs/rust/opendal/operator_futures/struct.OperatorFuture.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OperatorFuture is the future generated by `Operator`."><title>OperatorFuture in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf08 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OperatorFuture is the future generated by `Operator`."><title>OperatorFuture in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf08 [...]
<p>The future will consume all the input to generate a future.</p>
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>NOTES</h2>
<p>This struct is by design to keep in crate. We don’t want
diff --git a/docs/rust/opendal/operator_futures/type.FutureDelete.html b/docs/rust/opendal/operator_futures/type.FutureDelete.html
index d9247eacef..171053c644 100644
--- a/docs/rust/opendal/operator_futures/type.FutureDelete.html
+++ b/docs/rust/opendal/operator_futures/type.FutureDelete.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::delete_with`."><title>FutureDelete in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::delete_with`."><title>FutureDelete in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FutureDelete<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture%3COp [...]
</div></details></div></details></div><script src="../../type.impl/opendal/operator_futures/struct.OperatorFuture.js" data-self-path="opendal::types::operator::operator_futures::FutureDelete" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/operator_futures/type.FutureList.html b/docs/rust/opendal/operator_futures/type.FutureList.html
index 3ff76bc855..f526976432 100644
--- a/docs/rust/opendal/operator_futures/type.FutureList.html
+++ b/docs/rust/opendal/operator_futures/type.FutureList.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::list_with` or `Operator::lister_with`."><title>FutureList in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Re [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::list_with` or `Operator::lister_with`."><title>FutureList in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Re [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FutureList<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture%3COpLi [...]
that could return per-request.</p>
diff --git a/docs/rust/opendal/operator_futures/type.FutureLister.html b/docs/rust/opendal/operator_futures/type.FutureLister.html
index 196fcd0522..8a2eceb7eb 100644
--- a/docs/rust/opendal/operator_futures/type.FutureLister.html
+++ b/docs/rust/opendal/operator_futures/type.FutureLister.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::list_with` or `Operator::lister_with`."><title>FutureLister in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::list_with` or `Operator::lister_with`."><title>FutureLister in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans- [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FutureLister<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture%3COp [...]
that could return per-request.</p>
diff --git a/docs/rust/opendal/operator_futures/type.FuturePresignRead.html b/docs/rust/opendal/operator_futures/type.FuturePresignRead.html
index 82972c2d37..0180d70422 100644
--- a/docs/rust/opendal/operator_futures/type.FuturePresignRead.html
+++ b/docs/rust/opendal/operator_futures/type.FuturePresignRead.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::presign_read_with`."><title>FuturePresignRead in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::presign_read_with`."><title>FuturePresignRead in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FuturePresignRead<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#157-159">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, v: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div [...]
diff --git a/docs/rust/opendal/operator_futures/type.FuturePresignStat.html b/docs/rust/opendal/operator_futures/type.FuturePresignStat.html
index 774d8703da..8e1b7a7a81 100644
--- a/docs/rust/opendal/operator_futures/type.FuturePresignStat.html
+++ b/docs/rust/opendal/operator_futures/type.FuturePresignStat.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::presign_stat_with`."><title>FuturePresignStat in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::presign_stat_with`."><title>FuturePresignStat in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FuturePresignStat<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#125-127">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, v: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div [...]
diff --git a/docs/rust/opendal/operator_futures/type.FuturePresignWrite.html b/docs/rust/opendal/operator_futures/type.FuturePresignWrite.html
index ed7c63b416..d8805e1c8f 100644
--- a/docs/rust/opendal/operator_futures/type.FuturePresignWrite.html
+++ b/docs/rust/opendal/operator_futures/type.FuturePresignWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::presign_write_with`."><title>FuturePresignWrite in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::presign_write_with`."><title>FuturePresignWrite in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FuturePresignWrite<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFutur [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#189-191">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(self, v: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="d [...]
diff --git a/docs/rust/opendal/operator_futures/type.FutureRead.html b/docs/rust/opendal/operator_futures/type.FutureRead.html
index 8e77949de3..699c7d20e3 100644
--- a/docs/rust/opendal/operator_futures/type.FutureRead.html
+++ b/docs/rust/opendal/operator_futures/type.FutureRead.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::read_with` or `Operator::reader_with`."><title>FutureRead in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Re [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::read_with` or `Operator::reader_with`."><title>FutureRead in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Re [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FutureRead<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture%3C(OpR [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#211-213">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Set th [...]
diff --git a/docs/rust/opendal/operator_futures/type.FutureReader.html b/docs/rust/opendal/operator_futures/type.FutureReader.html
index e0221ea797..ac3b5305af 100644
--- a/docs/rust/opendal/operator_futures/type.FutureReader.html
+++ b/docs/rust/opendal/operator_futures/type.FutureReader.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::read_with` or `Operator::reader_with`."><title>FutureReader in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::read_with` or `Operator::reader_with`."><title>FutureReader in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans- [...]
<p>Users can add more options by public functions provided by this struct.</p>
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<p><code>(OpRead, ())</code> is a trick to make sure <code>FutureReader</code> is different from <code>FutureRead</code></p>
diff --git a/docs/rust/opendal/operator_futures/type.FutureStat.html b/docs/rust/opendal/operator_futures/type.FutureStat.html
index f66025fe5a..bc2b84f6c5 100644
--- a/docs/rust/opendal/operator_futures/type.FutureStat.html
+++ b/docs/rust/opendal/operator_futures/type.FutureStat.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::stat_with`."><title>FutureStat in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::stat_with`."><title>FutureStat in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FutureStat<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture%3COpSt [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="src rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#103-105">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Set th [...]
diff --git a/docs/rust/opendal/operator_futures/type.FutureWrite.html b/docs/rust/opendal/operator_futures/type.FutureWrite.html
index 9095a79cc4..489c9057dc 100644
--- a/docs/rust/opendal/operator_futures/type.FutureWrite.html
+++ b/docs/rust/opendal/operator_futures/type.FutureWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::write_with`."><title>FutureWrite in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::write_with`."><title>FutureWrite in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FutureWrite<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture%3C(Op [...]
<p>If the append mode is set, the data will be appended to the end of the file.</p>
diff --git a/docs/rust/opendal/operator_futures/type.FutureWriter.html b/docs/rust/opendal/operator_futures/type.FutureWriter.html
index ecf1ac26a9..8cf99809a7 100644
--- a/docs/rust/opendal/operator_futures/type.FutureWriter.html
+++ b/docs/rust/opendal/operator_futures/type.FutureWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::writer_with`."><title>FutureWriter in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Future that generated by `Operator::writer_with`."><title>FutureWriter in opendal::operator_futures - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
<p>Users can add more options by public functions provided by this struct.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct FutureWriter<F> { <span class="comment">/* private fields */</span> }</code></pre><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OperatorFuture%3COp [...]
<p>If the append mode is set, the data will be appended to the end of the file.</p>
diff --git a/docs/rust/opendal/raw/adapters/index.html b/docs/rust/opendal/raw/adapters/index.html
index e4308b7869..0db5d7e868 100644
--- a/docs/rust/opendal/raw/adapters/index.html
+++ b/docs/rust/opendal/raw/adapters/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Providing adapters and its implementations."><title>opendal::raw::adapters - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Providing adapters and its implementations."><title>opendal::raw::adapters - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9 [...]
<p>Adapters in OpenDAL means services that shares similar behaviors. We use
adapter to make those services been implemented more easily. For example,
with <a href="kv/trait.Adapter.html" title="trait opendal::raw::adapters::kv::Adapter"><code>kv::Adapter</code></a>, users only need to implement <code>get</code>, <code>set</code> for a service.</p>
diff --git a/docs/rust/opendal/raw/adapters/kv/index.html b/docs/rust/opendal/raw/adapters/kv/index.html
index a23c3576df..43a332ee44 100644
--- a/docs/rust/opendal/raw/adapters/kv/index.html
+++ b/docs/rust/opendal/raw/adapters/kv/index.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Providing Key Value Adapter for OpenDAL."><title>opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Providing Key Value Adapter for OpenDAL."><title>opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
<p>Any services that implement <code>Adapter</code> can be used an OpenDAL Service.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Backend.html" title="struct opendal::raw::adapters::kv::Backend">Backend</a></div><div class="desc docblock-short">Backend of kv service. If the storage service is one k-v-like service, it should implement this kv <a href="struct.Backend.html" title="struct opendal::raw::adapters::kv::Backend"><code>Bac [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/adapters/kv/struct.Backend.html b/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
index 63211d63c4..0f161fc077 100644
--- a/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
+++ b/docs/rust/opendal/raw/adapters/kv/struct.Backend.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Backend of kv service. If the storage service is one k-v-like service, it should implement this kv `Backend` by right."><title>Backend in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Backend of kv service. If the storage service is one k-v-like service, it should implement this kv `Backend` by right."><title>Backend in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regu [...]
<p><code>Backend</code> implements one general logic on how to read, write, scan the data from one kv store efficiently.
And the <a href="trait.Adapter.html" title="trait opendal::raw::adapters::kv::Adapter"><code>Adapter</code></a> held by <code>Backend</code> will handle how to communicate with one k-v-like service really and provides
a series of basic operation for this service.</p>
diff --git a/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html b/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html
index 29e10884e1..202e439801 100644
--- a/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html
+++ b/docs/rust/opendal/raw/adapters/kv/struct.Metadata.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Metadata for this key value accessor."><title>Metadata in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Metadata for this key value accessor."><title>Metadata in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans- [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Metadata" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#139-163">source</a><a href="#impl-Metadata" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Metadata.html" title="st [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.scheme" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#150-152">source</a><h4 class="code-header">pub fn <a href="#method.scheme" class="fn">scheme</a>(&self) -> <a class="enum" href="../../../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a></h4></section></summary><div class="docblock"><p>Get the scheme.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/kv/api.rs.html#155-157">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the name.</p>
diff --git a/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html b/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
index a0c394df82..008bfe903a 100644
--- a/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
+++ b/docs/rust/opendal/raw/adapters/kv/trait.Adapter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="KvAdapter is the adapter to underlying kv services."><title>Adapter in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="KvAdapter is the adapter to underlying kv services."><title>Adapter in opendal::raw::adapters::kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
// Required methods
fn <a href="#tymethod.metadata" class="fn">metadata</a>(&self) -> <a class="struct" href="struct.Metadata.html" title="struct opendal::raw::adapters::kv::Metadata">Metadata</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.get" class="fn">get</a>(
diff --git a/docs/rust/opendal/raw/adapters/typed_kv/index.html b/docs/rust/opendal/raw/adapters/typed_kv/index.html
index cea429622c..3ad6b845aa 100644
--- a/docs/rust/opendal/raw/adapters/typed_kv/index.html
+++ b/docs/rust/opendal/raw/adapters/typed_kv/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Providing Typed Key Value Adapter for OpenDAL."><title>opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Providing Typed Key Value Adapter for OpenDAL."><title>opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
<p>Any services that implement <code>Adapter</code> can be used an OpenDAL Service.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.Backend.html" title="struct opendal::raw::adapters::typed_kv::Backend">Backend</a></div><div class="desc docblock-short">The typed kv backend which implements Accessor for typed kv adapter.</div></li><li><div class="item-name"><a class="struct" href="struct.Capability.html" title="struct opendal::raw::a [...]
by Typed KV Operator.</div></li><li><div class="item-name"><a class="struct" href="struct.Info.html" title="struct opendal::raw::adapters::typed_kv::Info">Info</a></div><div class="desc docblock-short">Info for this key value accessor.</div></li><li><div class="item-name"><a class="struct" href="struct.Value.html" title="struct opendal::raw::adapters::typed_kv::Value">Value</a></div><div class="desc docblock-short">Value is the typed value stored in adapter.</div></li></ul><h2 id="traits [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html b/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html
index 35eda9d9cf..05d0893d53 100644
--- a/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html
+++ b/docs/rust/opendal/raw/adapters/typed_kv/struct.Backend.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The typed kv backend which implements Accessor for typed kv adapter."><title>Backend in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The typed kv backend which implements Accessor for typed kv adapter."><title>Backend in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regu [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Backend%3CS%3E" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#35-52">source</a><a href="#impl-Backend%3CS%3E" class="anchor">§</a><h3 class="code-header">impl<S> <a class="struct" href="st [...]
S: <a class="trait" href="trait.Adapter.html" title="trait opendal::raw::adapters::typed_kv::Adapter">Adapter</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#40-45">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(kv: S) -> Self</h4></section></summary><di [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_root" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/backend.rs.html#48-51">source</a><h4 class="code-header">pub fn <a href="#method.with_root" class="fn">with_root</a>(self, root: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Configure roo [...]
diff --git a/docs/rust/opendal/raw/adapters/typed_kv/struct.Capability.html b/docs/rust/opendal/raw/adapters/typed_kv/struct.Capability.html
index af9bd0fcbd..ec8de279ec 100644
--- a/docs/rust/opendal/raw/adapters/typed_kv/struct.Capability.html
+++ b/docs/rust/opendal/raw/adapters/typed_kv/struct.Capability.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capability is used to describe what operations are supported by Typed KV Operator."><title>Capability in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capability is used to describe what operations are supported by Typed KV Operator."><title>Capability in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.wo [...]
pub get: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
pub set: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
pub delete: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
diff --git a/docs/rust/opendal/raw/adapters/typed_kv/struct.Info.html b/docs/rust/opendal/raw/adapters/typed_kv/struct.Info.html
index b77ad92af0..0c13924f14 100644
--- a/docs/rust/opendal/raw/adapters/typed_kv/struct.Info.html
+++ b/docs/rust/opendal/raw/adapters/typed_kv/struct.Info.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Info for this key value accessor."><title>Info in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Info for this key value accessor."><title>Info in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Info" class="impl"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/api.rs.html#163-187">source</a><a href="#impl-Info" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Info.html" title="struct o [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.scheme" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/api.rs.html#174-176">source</a><h4 class="code-header">pub fn <a href="#method.scheme" class="fn">scheme</a>(&self) -> <a class="enum" href="../../../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a></h4></section></summary><div class="docblock"><p>Get the scheme.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.name" class="method"><a class="src rightside" href="../../../../src/opendal/raw/adapters/typed_kv/api.rs.html#179-181">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get the name.</p>
diff --git a/docs/rust/opendal/raw/adapters/typed_kv/struct.Value.html b/docs/rust/opendal/raw/adapters/typed_kv/struct.Value.html
index a73f0a702c..4771c5b0bc 100644
--- a/docs/rust/opendal/raw/adapters/typed_kv/struct.Value.html
+++ b/docs/rust/opendal/raw/adapters/typed_kv/struct.Value.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Value is the typed value stored in adapter."><title>Value in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Value is the typed value stored in adapter."><title>Value in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
pub metadata: <a class="struct" href="../../../struct.Metadata.html" title="struct opendal::Metadata">Metadata</a>,
pub value: <a class="struct" href="../../../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Value is the typed value stored in adapter.</p>
diff --git a/docs/rust/opendal/raw/adapters/typed_kv/trait.Adapter.html b/docs/rust/opendal/raw/adapters/typed_kv/trait.Adapter.html
index 324815b00f..2502dccc00 100644
--- a/docs/rust/opendal/raw/adapters/typed_kv/trait.Adapter.html
+++ b/docs/rust/opendal/raw/adapters/typed_kv/trait.Adapter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Adapter is the typed adapter to underlying kv services."><title>Adapter in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Adapter is the typed adapter to underlying kv services."><title>Adapter in opendal::raw::adapters::typed_kv - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf [...]
// Required methods
fn <a href="#tymethod.info" class="fn">info</a>(&self) -> <a class="struct" href="struct.Info.html" title="struct opendal::raw::adapters::typed_kv::Info">Info</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.get" class="fn">get</a>(
diff --git a/docs/rust/opendal/raw/constant.VERSION.html b/docs/rust/opendal/raw/constant.VERSION.html
index f6eaceed36..460bf87069 100644
--- a/docs/rust/opendal/raw/constant.VERSION.html
+++ b/docs/rust/opendal/raw/constant.VERSION.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="VERSION is the compiled version of OpenDAL."><title>VERSION in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="VERSION is the compiled version of OpenDAL."><title>VERSION in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.BatchOperation.html b/docs/rust/opendal/raw/enum.BatchOperation.html
index 2c6c34c813..d794d246cb 100644
--- a/docs/rust/opendal/raw/enum.BatchOperation.html
+++ b/docs/rust/opendal/raw/enum.BatchOperation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Batch operation used for batch."><title>BatchOperation in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Batch operation used for batch."><title>BatchOperation in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
Delete(<a class="struct" href="struct.OpDelete.html" title="struct opendal::raw::OpDelete">OpDelete</a>),
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Batch operation used for batch.</p>
</div></details><h2 id="variants" class="variants section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</di [...]
diff --git a/docs/rust/opendal/raw/enum.BatchedReply.html b/docs/rust/opendal/raw/enum.BatchedReply.html
index ae43852d87..01f0376ea0 100644
--- a/docs/rust/opendal/raw/enum.BatchedReply.html
+++ b/docs/rust/opendal/raw/enum.BatchedReply.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Batch results of `batch` operations."><title>BatchedReply in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Batch results of `batch` operations."><title>BatchedReply in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
Delete(<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::RpDelete">RpDelete</a>),
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Batch results of <code>batch</code> operations.</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Delete" class="variant"><a href="#variant.Delete" class="anchor">§</a><h3 class="code-header">Delete(<a class="struct" href="struct.RpDelete.html" title="struct opendal::raw::RpDelete">RpDelete</a>)</h3></section><div class="docblock"><p>results of <code>delete batch</code> operation</p>
diff --git a/docs/rust/opendal/raw/enum.FourWays.html b/docs/rust/opendal/raw/enum.FourWays.html
index 18db62cdae..2b9784c7ed 100644
--- a/docs/rust/opendal/raw/enum.FourWays.html
+++ b/docs/rust/opendal/raw/enum.FourWays.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FourWays is used to implement traits that based on four ways."><title>FourWays in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FourWays is used to implement traits that based on four ways."><title>FourWays in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
One(ONE),
Two(TWO),
Three(THREE),
@@ -13,19 +13,19 @@
ONE: <a class="trait" href="oio/trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,
TWO: <a class="trait" href="oio/trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,
THREE: <a class="trait" href="oio/trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,
- FOUR: <a class="trait" href="oio/trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#229-236">source</a><a href="#method.next" class="anchor">§</a><h4 class="code-header">fn <a href="oio/trait.BlockingList.html#tymethod.n [...]
+ FOUR: <a class="trait" href="oio/trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#229-236">source</a><a href="#method.next-1" class="anchor">§</a><h4 class="code-header">fn <a href="oio/trait.BlockingList.html#tymeth [...]
ONE: <a class="trait" href="oio/trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,
TWO: <a class="trait" href="oio/trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,
THREE: <a class="trait" href="oio/trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,
- FOUR: <a class="trait" href="oio/trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.read-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#195-202">source</a><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">fn <a href="oio/trait.BlockingRead.html#tymeth [...]
+ FOUR: <a class="trait" href="oio/trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.read" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#195-202">source</a><a href="#method.read" class="anchor">§</a><h4 class="code-header">fn <a href="oio/trait.BlockingRead.html#tymethod.r [...]
ONE: <a class="trait" href="oio/trait.List.html" title="trait opendal::raw::oio::List">List</a>,
TWO: <a class="trait" href="oio/trait.List.html" title="trait opendal::raw::oio::List">List</a>,
THREE: <a class="trait" href="oio/trait.List.html" title="trait opendal::raw::oio::List">List</a>,
- FOUR: <a class="trait" href="oio/trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#212-219">source</a><a href="#method.next-1" class="anchor">§</a><h4 class="code-header">async fn <a href="oio/trait.List.html#tymethod.next" class="fn">next</ [...]
+ FOUR: <a class="trait" href="oio/trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#212-219">source</a><a href="#method.next" class="anchor">§</a><h4 class="code-header">async fn <a href="oio/trait.List.html#tymethod.next" class="fn">next</a>(& [...]
ONE: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>,
TWO: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>,
THREE: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>,
- FOUR: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.read" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#178-185">source</a><a href="#method.read" class="anchor">§</a><h4 class="code-header">async fn <a href="oio/trait.Read.html#tymethod.read" class="fn">read</a>(& [...]
+ FOUR: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.read-1" class="method trait-impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#178-185">source</a><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">async fn <a href="oio/trait.Read.html#tymethod.read" class="fn">read</ [...]
ONE: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
TWO: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
THREE: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
diff --git a/docs/rust/opendal/raw/enum.Operation.html b/docs/rust/opendal/raw/enum.Operation.html
index f9a58b7a57..f8b5560053 100644
--- a/docs/rust/opendal/raw/enum.Operation.html
+++ b/docs/rust/opendal/raw/enum.Operation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Operation is the name for APIs in `Accessor`."><title>Operation in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Operation is the name for APIs in `Accessor`."><title>Operation in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 19 variants</span></summary> Info,
CreateDir,
Read,
@@ -39,7 +39,7 @@
</div><section id="variant.BlockingDelete" class="variant"><a href="#variant.BlockingDelete" class="anchor">§</a><h3 class="code-header">BlockingDelete</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_delete" title="method opendal::raw::Access::blocking_delete"><code>crate::raw::Access::blocking_delete</code></a></p>
</div><section id="variant.BlockingList" class="variant"><a href="#variant.BlockingList" class="anchor">§</a><h3 class="code-header">BlockingList</h3></section><div class="docblock"><p>Operation for <a href="trait.Access.html#method.blocking_list" title="method opendal::raw::Access::blocking_list"><code>crate::raw::Access::blocking_list</code></a></p>
</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Operation" class="impl"><a class="src rightside" href="../../src/opendal/raw/operation.rs.html#66-71">source</a><a href="#impl-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Operation.html" title="enum opendal::raw::Op [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Operation" class="impl"><a class="src rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a c [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Operation" class="impl"><a class="src rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a c [...]
H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class= [...]
diff --git a/docs/rust/opendal/raw/enum.PresignOperation.html b/docs/rust/opendal/raw/enum.PresignOperation.html
index de88a18ce5..aed7828ed3 100644
--- a/docs/rust/opendal/raw/enum.PresignOperation.html
+++ b/docs/rust/opendal/raw/enum.PresignOperation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Presign operation used for presign."><title>PresignOperation in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Presign operation used for presign."><title>PresignOperation in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
Stat(<a class="struct" href="struct.OpStat.html" title="struct opendal::raw::OpStat">OpStat</a>),
Read(<a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>),
Write(<a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>),
@@ -6,7 +6,7 @@
</div></details><h2 id="variants" class="variants section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</di [...]
</div><section id="variant.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read(<a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>)</h3></section><div class="docblock"><p>Presign a read operation.</p>
</div><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write(<a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>)</h3></section><div class="docblock"><p>Presign a write operation.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PresignOperation" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#224">source</a><a href="#impl-Clone-for-PresignOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PresignOperation" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#224">source</a><a href="#impl-Clone-for-PresignOperation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/docs/rust/opendal/raw/enum.ThreeWays.html b/docs/rust/opendal/raw/enum.ThreeWays.html
index 2feaf0c537..6e707ab47e 100644
--- a/docs/rust/opendal/raw/enum.ThreeWays.html
+++ b/docs/rust/opendal/raw/enum.ThreeWays.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ThreeWays is used to implement traits that based on three ways."><title>ThreeWays in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ThreeWays is used to implement traits that based on three ways."><title>ThreeWays in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wo [...]
One(ONE),
Two(TWO),
Three(THREE),
@@ -7,7 +7,7 @@
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.One" class="variant"><a href="#variant.One" class="anchor">§</a><h3 class="code-header">One(ONE)</h3></section><div class="docblock"><p>The first type for the <a href="enum.ThreeWays.html" title="enum opendal::raw::ThreeWays"><code>ThreeWays</code></a>.</p>
</div><section id="variant.Two" class="variant"><a href="#variant.Two" class="anchor">§</a><h3 class="code-header">Two(TWO)</h3></section><div class="docblock"><p>The second type for the <a href="enum.ThreeWays.html" title="enum opendal::raw::ThreeWays"><code>ThreeWays</code></a>.</p>
</div><section id="variant.Three" class="variant"><a href="#variant.Three" class="anchor">§</a><h3 class="code-header">Three(THREE)</h3></section><div class="docblock"><p>The third type for the <a href="enum.ThreeWays.html" title="enum opendal::raw::ThreeWays"><code>ThreeWays</code></a>.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#117-127">source</a><a href="#impl-BlockingRead-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§< [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#117-127">source</a><a href="#impl-BlockingRead-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§< [...]
ONE: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
TWO: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
THREE: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="impl"><a href="#impl-RefUnwindSafe-for-ThreeWays%3CONE,+TWO,+THREE%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO, THREE> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" ti [...]
diff --git a/docs/rust/opendal/raw/enum.TwoWays.html b/docs/rust/opendal/raw/enum.TwoWays.html
index 25567445e0..eda85ae773 100644
--- a/docs/rust/opendal/raw/enum.TwoWays.html
+++ b/docs/rust/opendal/raw/enum.TwoWays.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TwoWays is used to implement traits that based on two ways."><title>TwoWays in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TwoWays is used to implement traits that based on two ways."><title>TwoWays in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
One(ONE),
Two(TWO),
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>TwoWays is used to implement traits that based on two ways.</p>
<p>Users can wrap two different trait types together.</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.One" class="variant"><a href="#variant.One" class="anchor">§</a><h3 class="code-header">One(ONE)</h3></section><div class="docblock"><p>The first type for the <a href="enum.TwoWays.html" title="enum opendal::raw::TwoWays"><code>TwoWays</code></a>.</p>
</div><section id="variant.Two" class="variant"><a href="#variant.Two" class="anchor">§</a><h3 class="code-header">Two(TWO)</h3></section><div class="docblock"><p>The second type for the <a href="enum.TwoWays.html" title="enum opendal::raw::TwoWays"><code>TwoWays</code></a>.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#63-70">source</a><a href="#impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-h [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="impl"><a class="src rightside" href="../../src/opendal/raw/enum_utils.rs.html#63-70">source</a><a href="#impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-h [...]
ONE: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,
TWO: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-TwoWays%3CONE,+TWO%3E" class="impl"><a href="#impl-RefUnwindSafe-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE, TWO> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unw [...]
ONE: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,
diff --git a/docs/rust/opendal/raw/fn.build_abs_path.html b/docs/rust/opendal/raw/fn.build_abs_path.html
index a6181790b4..4a4d0b53b3 100644
--- a/docs/rust/opendal/raw/fn.build_abs_path.html
+++ b/docs/rust/opendal/raw/fn.build_abs_path.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="build_abs_path will build an absolute path with root."><title>build_abs_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="build_abs_path will build an absolute path with root."><title>build_abs_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
<h2 id="rules"><a class="doc-anchor" href="#rules">§</a>Rules</h2>
<ul>
<li>Input root MUST be the format like <code>/abc/def/</code></li>
diff --git a/docs/rust/opendal/raw/fn.build_header_value.html b/docs/rust/opendal/raw/fn.build_header_value.html
index 43756e5af6..fe9d6dcc70 100644
--- a/docs/rust/opendal/raw/fn.build_header_value.html
+++ b/docs/rust/opendal/raw/fn.build_header_value.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Build header value from given string."><title>build_header_value in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Build header value from given string."><title>build_header_value in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.build_rel_path.html b/docs/rust/opendal/raw/fn.build_rel_path.html
index 4fe5d9b654..33e7b83638 100644
--- a/docs/rust/opendal/raw/fn.build_rel_path.html
+++ b/docs/rust/opendal/raw/fn.build_rel_path.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="build_rel_path will build a relative path towards root."><title>build_rel_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="build_rel_path will build a relative path towards root."><title>build_rel_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
<h2 id="rules"><a class="doc-anchor" href="#rules">§</a>Rules</h2>
<ul>
<li>Input root MUST be the format like <code>/abc/def/</code></li>
diff --git a/docs/rust/opendal/raw/fn.build_rooted_abs_path.html b/docs/rust/opendal/raw/fn.build_rooted_abs_path.html
index 4148158903..e9b55f528f 100644
--- a/docs/rust/opendal/raw/fn.build_rooted_abs_path.html
+++ b/docs/rust/opendal/raw/fn.build_rooted_abs_path.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="build_rooted_abs_path will build an absolute path with root."><title>build_rooted_abs_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="build_rooted_abs_path will build an absolute path with root."><title>build_rooted_abs_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0 [...]
<h2 id="rules"><a class="doc-anchor" href="#rules">§</a>Rules</h2>
<ul>
<li>Input root MUST be the format like <code>/abc/def/</code></li>
diff --git a/docs/rust/opendal/raw/fn.format_authorization_by_basic.html b/docs/rust/opendal/raw/fn.format_authorization_by_basic.html
index 35dfbb89ec..b061359769 100644
--- a/docs/rust/opendal/raw/fn.format_authorization_by_basic.html
+++ b/docs/rust/opendal/raw/fn.format_authorization_by_basic.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="format authorization header by basic auth."><title>format_authorization_by_basic in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="format authorization header by basic auth."><title>format_authorization_by_basic in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
username: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
password: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>format authorization header by basic auth.</p>
diff --git a/docs/rust/opendal/raw/fn.format_authorization_by_bearer.html b/docs/rust/opendal/raw/fn.format_authorization_by_bearer.html
index d1d354bf49..c4cc7946d2 100644
--- a/docs/rust/opendal/raw/fn.format_authorization_by_bearer.html
+++ b/docs/rust/opendal/raw/fn.format_authorization_by_bearer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="format authorization header by bearer token."><title>format_authorization_by_bearer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="format authorization header by bearer token."><title>format_authorization_by_bearer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
<h2 id="errors"><a class="doc-anchor" href="#errors">§</a>Errors</h2>
<p>If input token is empty, function will return an unexpected error.</p>
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.format_content_md5.html b/docs/rust/opendal/raw/fn.format_content_md5.html
index f9147e23a6..d866b60bc6 100644
--- a/docs/rust/opendal/raw/fn.format_content_md5.html
+++ b/docs/rust/opendal/raw/fn.format_content_md5.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="format content md5 header by given input."><title>format_content_md5 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="format content md5 header by given input."><title>format_content_md5 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans- [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.get_basename.html b/docs/rust/opendal/raw/fn.get_basename.html
index 65668d7810..869808b703 100644
--- a/docs/rust/opendal/raw/fn.get_basename.html
+++ b/docs/rust/opendal/raw/fn.get_basename.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Get basename from path."><title>get_basename in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Get basename from path."><title>get_basename in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.get_parent.html b/docs/rust/opendal/raw/fn.get_parent.html
index eba1c2ca23..351d60987d 100644
--- a/docs/rust/opendal/raw/fn.get_parent.html
+++ b/docs/rust/opendal/raw/fn.get_parent.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Get parent from path."><title>get_parent in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Get parent from path."><title>get_parent in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_json_deserialize_error.html b/docs/rust/opendal/raw/fn.new_json_deserialize_error.html
index 13113bfd4b..dd674cc3a9 100644
--- a/docs/rust/opendal/raw/fn.new_json_deserialize_error.html
+++ b/docs/rust/opendal/raw/fn.new_json_deserialize_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse json deserialize error into opendal::Error."><title>new_json_deserialize_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse json deserialize error into opendal::Error."><title>new_json_deserialize_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_json_serialize_error.html b/docs/rust/opendal/raw/fn.new_json_serialize_error.html
index 87b5a03866..8665a9aebd 100644
--- a/docs/rust/opendal/raw/fn.new_json_serialize_error.html
+++ b/docs/rust/opendal/raw/fn.new_json_serialize_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse json serialize error into opendal::Error."><title>new_json_serialize_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse json serialize error into opendal::Error."><title>new_json_serialize_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.wof [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_request_build_error.html b/docs/rust/opendal/raw/fn.new_request_build_error.html
index 6b60d574ac..ae38f0f6fb 100644
--- a/docs/rust/opendal/raw/fn.new_request_build_error.html
+++ b/docs/rust/opendal/raw/fn.new_request_build_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during building request."><title>new_request_build_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during building request."><title>new_request_build_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_request_credential_error.html b/docs/rust/opendal/raw/fn.new_request_credential_error.html
index ce4be456b3..dfaebeea06 100644
--- a/docs/rust/opendal/raw/fn.new_request_credential_error.html
+++ b/docs/rust/opendal/raw/fn.new_request_credential_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during signing request."><title>new_request_credential_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf084 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during signing request."><title>new_request_credential_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf084 [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_request_sign_error.html b/docs/rust/opendal/raw/fn.new_request_sign_error.html
index e358ef68c3..42c5202515 100644
--- a/docs/rust/opendal/raw/fn.new_request_sign_error.html
+++ b/docs/rust/opendal/raw/fn.new_request_sign_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during signing request."><title>new_request_sign_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during signing request."><title>new_request_sign_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_std_io_error.html b/docs/rust/opendal/raw/fn.new_std_io_error.html
index b5ef17e4bb..e5d3713756 100644
--- a/docs/rust/opendal/raw/fn.new_std_io_error.html
+++ b/docs/rust/opendal/raw/fn.new_std_io_error.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse std io error into opendal::Error."><title>new_std_io_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse std io error into opendal::Error."><title>new_std_io_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
<h2 id="todo"><a class="doc-anchor" href="#todo">§</a>TODO</h2>
<p>Add <code>NotADirectory</code> and <code>IsADirectory</code> once they are stable.</p>
<p>ref: <a href="https://github.com/rust-lang/rust/issues/86442">https://github.com/rust-lang/rust/issues/86442</a></p>
diff --git a/docs/rust/opendal/raw/fn.new_task_join_error.html b/docs/rust/opendal/raw/fn.new_task_join_error.html
index d28a784876..6eaa5935ba 100644
--- a/docs/rust/opendal/raw/fn.new_task_join_error.html
+++ b/docs/rust/opendal/raw/fn.new_task_join_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse tokio error into opendal::Error."><title>new_task_join_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse tokio error into opendal::Error."><title>new_task_join_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html b/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html
index 66c48e55e3..1c6d85bf53 100644
--- a/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html
+++ b/docs/rust/opendal/raw/fn.new_xml_deserialize_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse xml deserialize error into opendal::Error."><title>new_xml_deserialize_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse xml deserialize error into opendal::Error."><title>new_xml_deserialize_error in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.normalize_path.html b/docs/rust/opendal/raw/fn.normalize_path.html
index ca685cffa7..daa8b7bcae 100644
--- a/docs/rust/opendal/raw/fn.normalize_path.html
+++ b/docs/rust/opendal/raw/fn.normalize_path.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Make sure all operation are constructed by normalized path:"><title>normalize_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Make sure all operation are constructed by normalized path:"><title>normalize_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
<ul>
<li>Path endswith <code>/</code> means it’s a dir path.</li>
<li>Otherwise, it’s a file path.</li>
diff --git a/docs/rust/opendal/raw/fn.normalize_root.html b/docs/rust/opendal/raw/fn.normalize_root.html
index 464dff12f7..556512159c 100644
--- a/docs/rust/opendal/raw/fn.normalize_root.html
+++ b/docs/rust/opendal/raw/fn.normalize_root.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Make sure root is normalized to style like `/abc/def/`."><title>normalize_root in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Make sure root is normalized to style like `/abc/def/`."><title>normalize_root in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
<h2 id="normalize-rules"><a class="doc-anchor" href="#normalize-rules">§</a>Normalize Rules</h2>
<ul>
<li>All whitespace will be trimmed: <code>abc/def</code> => <code>abc/def</code></li>
diff --git a/docs/rust/opendal/raw/fn.parse_content_disposition.html b/docs/rust/opendal/raw/fn.parse_content_disposition.html
index 7718fceab5..9a4c427755 100644
--- a/docs/rust/opendal/raw/fn.parse_content_disposition.html
+++ b/docs/rust/opendal/raw/fn.parse_content_disposition.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse Content-Disposition for header map"><title>parse_content_disposition in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fir [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse Content-Disposition for header map"><title>parse_content_disposition in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fir [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_encoding.html b/docs/rust/opendal/raw/fn.parse_content_encoding.html
index bc8f4a56e0..15c4f30d02 100644
--- a/docs/rust/opendal/raw/fn.parse_content_encoding.html
+++ b/docs/rust/opendal/raw/fn.parse_content_encoding.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content encoding from header map."><title>parse_content_encoding in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content encoding from header map."><title>parse_content_encoding in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_length.html b/docs/rust/opendal/raw/fn.parse_content_length.html
index d5defa28b3..359e4cf6fd 100644
--- a/docs/rust/opendal/raw/fn.parse_content_length.html
+++ b/docs/rust/opendal/raw/fn.parse_content_length.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content length from header map."><title>parse_content_length in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content length from header map."><title>parse_content_length in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_md5.html b/docs/rust/opendal/raw/fn.parse_content_md5.html
index 303a7ff07f..6a50872d58 100644
--- a/docs/rust/opendal/raw/fn.parse_content_md5.html
+++ b/docs/rust/opendal/raw/fn.parse_content_md5.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content md5 from header map."><title>parse_content_md5 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content md5 from header map."><title>parse_content_md5 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_range.html b/docs/rust/opendal/raw/fn.parse_content_range.html
index 15b13e17a8..729a777be5 100644
--- a/docs/rust/opendal/raw/fn.parse_content_range.html
+++ b/docs/rust/opendal/raw/fn.parse_content_range.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content range from header map."><title>parse_content_range in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content range from header map."><title>parse_content_range in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
headers: &HeaderMap
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.BytesContentRange.html" title="struct opendal::raw::BytesContentRange">BytesContentRange</a>>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblo [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_content_type.html b/docs/rust/opendal/raw/fn.parse_content_type.html
index 9910d809ec..c4cf0498ba 100644
--- a/docs/rust/opendal/raw/fn.parse_content_type.html
+++ b/docs/rust/opendal/raw/fn.parse_content_type.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content type from header map."><title>parse_content_type in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse content type from header map."><title>parse_content_type in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp.html b/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp.html
index c41ff2f7f7..e233b238e6 100644
--- a/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp.html
+++ b/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="parse datetime from given timestamp"><title>parse_datetime_from_from_timestamp in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="parse datetime from given timestamp"><title>parse_datetime_from_from_timestamp in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp_millis.html b/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp_millis.html
index 4e4b6c24a2..d213771b0b 100644
--- a/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp_millis.html
+++ b/docs/rust/opendal/raw/fn.parse_datetime_from_from_timestamp_millis.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="parse datetime from given timestamp_millis"><title>parse_datetime_from_from_timestamp_millis in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141b [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="parse datetime from given timestamp_millis"><title>parse_datetime_from_from_timestamp_millis in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141b [...]
s: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="https://docs.rs/chrono/latest/chrono/datetime/struct.DateTime.html" title="struct chrono::datetime::DateTime">DateTime</a><<a class="struct" href="https://docs.rs/chrono/latest/chrono/offset/utc/struct.Utc.html" title="struct chrono::offset::utc::Utc">Utc</a>>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_datetime_from_rfc2822.html b/docs/rust/opendal/raw/fn.parse_datetime_from_rfc2822.html
index 876ea7fadf..dfe68e3d56 100644
--- a/docs/rust/opendal/raw/fn.parse_datetime_from_rfc2822.html
+++ b/docs/rust/opendal/raw/fn.parse_datetime_from_rfc2822.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse dateimt from rfc2822."><title>parse_datetime_from_rfc2822 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse dateimt from rfc2822."><title>parse_datetime_from_rfc2822 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
<p>For example: <code>Fri, 28 Nov 2014 21:00:09 +0900</code></p>
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_datetime_from_rfc3339.html b/docs/rust/opendal/raw/fn.parse_datetime_from_rfc3339.html
index 7e436a9c12..bfc0f9ac73 100644
--- a/docs/rust/opendal/raw/fn.parse_datetime_from_rfc3339.html
+++ b/docs/rust/opendal/raw/fn.parse_datetime_from_rfc3339.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse dateimt from rfc3339."><title>parse_datetime_from_rfc3339 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse dateimt from rfc3339."><title>parse_datetime_from_rfc3339 in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
<p>For example: <code>2014-11-28T21:00:09+09:00</code></p>
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_etag.html b/docs/rust/opendal/raw/fn.parse_etag.html
index fa3c001062..57864c8b45 100644
--- a/docs/rust/opendal/raw/fn.parse_etag.html
+++ b/docs/rust/opendal/raw/fn.parse_etag.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse etag from header map."><title>parse_etag in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse etag from header map."><title>parse_etag in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_header_to_str.html b/docs/rust/opendal/raw/fn.parse_header_to_str.html
index d20ce0c61b..3018bbba71 100644
--- a/docs/rust/opendal/raw/fn.parse_header_to_str.html
+++ b/docs/rust/opendal/raw/fn.parse_header_to_str.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse header value to string according to name."><title>parse_header_to_str in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse header value to string according to name."><title>parse_header_to_str in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
headers: &HeaderMap,
name: K
) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>>><div class="where">where
diff --git a/docs/rust/opendal/raw/fn.parse_into_metadata.html b/docs/rust/opendal/raw/fn.parse_into_metadata.html
index 26be8b7709..e15237ec9a 100644
--- a/docs/rust/opendal/raw/fn.parse_into_metadata.html
+++ b/docs/rust/opendal/raw/fn.parse_into_metadata.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="parse_into_metadata will parse standards http headers into Metadata."><title>parse_into_metadata in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="parse_into_metadata will parse standards http headers into Metadata."><title>parse_into_metadata in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<p>parse_into_metadata only handles the standard behavior of http
headers. If services have their own logic, they should update the parsed
diff --git a/docs/rust/opendal/raw/fn.parse_last_modified.html b/docs/rust/opendal/raw/fn.parse_last_modified.html
index ca4db81b9d..bf53ea3dbb 100644
--- a/docs/rust/opendal/raw/fn.parse_last_modified.html
+++ b/docs/rust/opendal/raw/fn.parse_last_modified.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse last modified from header map."><title>parse_last_modified in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse last modified from header map."><title>parse_last_modified in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.parse_location.html b/docs/rust/opendal/raw/fn.parse_location.html
index d797d29f0e..3d9a18c493 100644
--- a/docs/rust/opendal/raw/fn.parse_location.html
+++ b/docs/rust/opendal/raw/fn.parse_location.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse redirect location from header map"><title>parse_location in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Parse redirect location from header map"><title>parse_location in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
<h2 id="note"><a class="doc-anchor" href="#note">§</a>Note</h2>
<p>The returned value maybe a relative path, like <code>/index.html</code>, <code>/robots.txt</code>, etc.</p>
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.percent_decode_path.html b/docs/rust/opendal/raw/fn.percent_decode_path.html
index fec2219fae..a20e6adc00 100644
--- a/docs/rust/opendal/raw/fn.percent_decode_path.html
+++ b/docs/rust/opendal/raw/fn.percent_decode_path.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="percent_decode_path will do percent decoding for http decode path."><title>percent_decode_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="percent_decode_path will do percent decoding for http decode path."><title>percent_decode_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
<p>If the input is not percent encoded or not valid utf8, return the input.</p>
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.percent_encode_path.html b/docs/rust/opendal/raw/fn.percent_encode_path.html
index e73b7496b0..23daff6a99 100644
--- a/docs/rust/opendal/raw/fn.percent_encode_path.html
+++ b/docs/rust/opendal/raw/fn.percent_encode_path.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="percent_encode_path will do percent encoding for http encode path."><title>percent_encode_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="percent_encode_path will do percent encoding for http encode path."><title>percent_encode_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
<p>Follows <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent">encodeURIComponent</a> which will encode all non-ASCII characters except <code>A-Z a-z 0-9 - _ . ! ~ * ' ( )</code></p>
<p>There is a special case for <code>/</code> in path: we will allow <code>/</code> in path as
required by storage services like s3.</p>
diff --git a/docs/rust/opendal/raw/fn.validate_path.html b/docs/rust/opendal/raw/fn.validate_path.html
index c130c97972..a0b22112a7 100644
--- a/docs/rust/opendal/raw/fn.validate_path.html
+++ b/docs/rust/opendal/raw/fn.validate_path.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Validate given path is match with given EntryMode."><title>validate_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Validate given path is match with given EntryMode."><title>validate_path in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/fn.with_error_response_context.html b/docs/rust/opendal/raw/fn.with_error_response_context.html
index 800573f99b..bb34f9f14b 100644
--- a/docs/rust/opendal/raw/fn.with_error_response_context.html
+++ b/docs/rust/opendal/raw/fn.with_error_response_context.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add response context to error."><title>with_error_response_context in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Add response context to error."><title>with_error_response_context in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
<p>This helper function will:</p>
<ul>
<li>remove sensitive or useless headers from parts.</li>
diff --git a/docs/rust/opendal/raw/index.html b/docs/rust/opendal/raw/index.html
index 54efe1397b..e566409e00 100644
--- a/docs/rust/opendal/raw/index.html
+++ b/docs/rust/opendal/raw/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Raw modules provide raw APIs that used by underlying services"><title>opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Raw modules provide raw APIs that used by underlying services"><title>opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
<h3 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h3>
<ul>
<li>Only developers who want to develop new services or layers need to
diff --git a/docs/rust/opendal/raw/oio/enum.ListOperation.html b/docs/rust/opendal/raw/oio/enum.ListOperation.html
index e22ba6e5fe..78f88a4bf9 100644
--- a/docs/rust/opendal/raw/oio/enum.ListOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.ListOperation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageOperation is the name for APIs of lister."><title>ListOperation in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageOperation is the name for APIs of lister."><title>ListOperation in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
Next,
BlockingNext,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PageOperation is the name for APIs of lister.</p>
diff --git a/docs/rust/opendal/raw/oio/enum.ReadOperation.html b/docs/rust/opendal/raw/oio/enum.ReadOperation.html
index 470f63ea0b..bc50ed8056 100644
--- a/docs/rust/opendal/raw/oio/enum.ReadOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.ReadOperation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageOperation is the name for APIs of lister."><title>ReadOperation in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageOperation is the name for APIs of lister."><title>ReadOperation in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraS [...]
Read,
BlockingRead,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>PageOperation is the name for APIs of lister.</p>
diff --git a/docs/rust/opendal/raw/oio/enum.WriteOperation.html b/docs/rust/opendal/raw/oio/enum.WriteOperation.html
index 90f3954fb1..6e477835f1 100644
--- a/docs/rust/opendal/raw/oio/enum.WriteOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.WriteOperation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="WriteOperation is the name for APIs of Writer."><title>WriteOperation in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fir [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="WriteOperation is the name for APIs of Writer."><title>WriteOperation in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fir [...]
Write,
Close,
Abort,
diff --git a/docs/rust/opendal/raw/oio/index.html b/docs/rust/opendal/raw/oio/index.html
index 064b422b7c..c4773f3d6a 100644
--- a/docs/rust/opendal/raw/oio/index.html
+++ b/docs/rust/opendal/raw/oio/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`oio` provides OpenDAL’s raw traits and types that opendal returns as output."><title>opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`oio` provides OpenDAL’s raw traits and types that opendal returns as output."><title>opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
output.</p>
<p>Those types should only be used internally and we don’t want users to
depend on them. So we should also implement trait like <code>AsyncRead</code> for
diff --git a/docs/rust/opendal/raw/oio/struct.AppendWriter.html b/docs/rust/opendal/raw/oio/struct.AppendWriter.html
index fce0b7fc6b..918b2f3c86 100644
--- a/docs/rust/opendal/raw/oio/struct.AppendWriter.html
+++ b/docs/rust/opendal/raw/oio/struct.AppendWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AppendWriter will implements `oio::Write` based on append object."><title>AppendWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AppendWriter will implements `oio::Write` based on append object."><title>AppendWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf [...]
<h3 id="todo"><a class="doc-anchor" href="#todo">§</a>TODO</h3>
<ul>
<li>Allow users to switch to un-buffered mode if users write 16MiB every time.</li>
diff --git a/docs/rust/opendal/raw/oio/struct.BlockWriter.html b/docs/rust/opendal/raw/oio/struct.BlockWriter.html
index aead505baa..52999328c0 100644
--- a/docs/rust/opendal/raw/oio/struct.BlockWriter.html
+++ b/docs/rust/opendal/raw/oio/struct.BlockWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockWriter will implements `oio::Write` based on block uploads."><title>BlockWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf08 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockWriter will implements `oio::Write` based on block uploads."><title>BlockWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf08 [...]
uploads.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/block_write.rs.html#106-159">source</a><a href="#impl-BlockWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W: <a class="trait" href="tra [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Write-for-BlockWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/block_write.rs.html#161-233">source</a><a href="#impl-Write-for-BlockWriter%3CW%3E" class="anchor"> [...]
diff --git a/docs/rust/opendal/raw/oio/struct.ChunkedWriter.html b/docs/rust/opendal/raw/oio/struct.ChunkedWriter.html
index 07b3b99075..f4bffb5899 100644
--- a/docs/rust/opendal/raw/oio/struct.ChunkedWriter.html
+++ b/docs/rust/opendal/raw/oio/struct.ChunkedWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ChunkedWriter is used to implement `oio::Write` based on chunk: flush the underlying storage at the `chunk`` size."><title>ChunkedWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ChunkedWriter is used to implement `oio::Write` based on chunk: flush the underlying storage at the `chunk`` size."><title>ChunkedWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f [...]
flush the underlying storage at the `chunk`` size.</p>
<p>ChunkedWriter makes sure that the size of the data written to the
underlying storage is</p>
diff --git a/docs/rust/opendal/raw/oio/struct.Entry.html b/docs/rust/opendal/raw/oio/struct.Entry.html
index f411ee885a..15897392b5 100644
--- a/docs/rust/opendal/raw/oio/struct.Entry.html
+++ b/docs/rust/opendal/raw/oio/struct.Entry.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Entry is returned by `Page` or `BlockingPage` during list operations."><title>Entry in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf084 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Entry is returned by `Page` or `BlockingPage` during list operations."><title>Entry in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf084 [...]
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<p>Differences between <code>crate::Entry</code> and <code>oio::Entry</code>:</p>
<ul>
diff --git a/docs/rust/opendal/raw/oio/struct.FlatLister.html b/docs/rust/opendal/raw/oio/struct.FlatLister.html
index 94962424d8..91189fffc0 100644
--- a/docs/rust/opendal/raw/oio/struct.FlatLister.html
+++ b/docs/rust/opendal/raw/oio/struct.FlatLister.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FlatLister will walk dir in bottom up way:"><title>FlatLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FlatLister will walk dir in bottom up way:"><title>FlatLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
<ul>
<li>List nested dir first</li>
<li>Go back into parent dirs one by one</li>
@@ -29,11 +29,11 @@ always output directly while listing.</p>
A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#79-86">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(acc: A, path: &<a class="primitive" href="https://doc.rust-lang.org/nig [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingList-for-FlatLister%3CA,+P%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#132-174">source</a><a href="#impl-BlockingList-for-FlatLister%3CA,+P%3E" [...]
A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a><BlockingLister = P>,
- P: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next" class="method trait-impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#137-173">source</a><a href="#method.next" class="anchor">§</a><h4 class="code-header">fn <a href="trait.BlockingList.html#tymethod.n [...]
+ P: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next-1" class="method trait-impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#137-173">source</a><a href="#method.next-1" class="anchor">§</a><h4 class="code-header">fn <a href="trait.BlockingList.html#tymeth [...]
A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a><Lister = L>,
- L: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next-1" class="method trait-impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#94-129">source</a><a href="#method.next-1" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.List.html#tymethod.next" class="fn">next</a [...]
+ L: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.next" class="method trait-impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#94-129">source</a><a href="#method.next" class="anchor">§</a><h4 class="code-header">async fn <a href="trait.List.html#tymethod.next" class="fn">next</a>(&a [...]
<p>wasm32 is a special target that we only have one event-loop for this FlatLister.</p>
-</div><section id="impl-Sync-for-FlatLister%3CA,+L%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#72">source</a><a href="#impl-Sync-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a>, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> [...]
+</div><section id="impl-Sync-for-FlatLister%3CA,+L%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/flat_list.rs.html#72">source</a><a href="#impl-Sync-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A: <a class="trait" href="../trait.Access.html" title="trait opendal::raw::Access">Access</a>, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> [...]
<p>We will only take <code>&mut Self</code> reference for FsLister.</p>
</div></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-FlatLister%3CA,+L%3E" class="impl"><a href="#impl-Freeze-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freez [...]
A: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-FlatLister%3CA,+L%3E" class="impl"><a href="#impl-RefUnwindSafe-for-FlatLister%3CA,+L%3E" class="anchor">§</a><h3 class="code-header">impl<A, L> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe [...]
diff --git a/docs/rust/opendal/raw/oio/struct.FlexBuf.html b/docs/rust/opendal/raw/oio/struct.FlexBuf.html
index 534db2d5ff..84918fef28 100644
--- a/docs/rust/opendal/raw/oio/struct.FlexBuf.html
+++ b/docs/rust/opendal/raw/oio/struct.FlexBuf.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FlexBuf is a buffer that support frozen bytes and reuse existing allocated memory."><title>FlexBuf in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regul [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FlexBuf is a buffer that support frozen bytes and reuse existing allocated memory."><title>FlexBuf in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regul [...]
<p>It’s useful when we want to freeze the buffer and reuse the memory for the next buffer.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FlexBuf" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/buf/flex_buf.rs.html#35-118">source</a><a href="#impl-FlexBuf" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.FlexBuf.html" title="struct o [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.put" class="method"><a class="src rightside" href="../../../src/opendal/raw/oio/buf/flex_buf.rs.html#50-66">source</a><h4 class="code-header">pub fn <a href="#method.put" class="fn">put</a>(&mut self, bs: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usi [...]
diff --git a/docs/rust/opendal/raw/oio/struct.HierarchyLister.html b/docs/rust/opendal/raw/oio/struct.HierarchyLister.html
index aaa70d8b67..e7c7f4741e 100644
--- a/docs/rust/opendal/raw/oio/struct.HierarchyLister.html
+++ b/docs/rust/opendal/raw/oio/struct.HierarchyLister.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ToHierarchyLister will convert a flat list to hierarchy by filter not needed entries."><title>HierarchyLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,Fir [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ToHierarchyLister will convert a flat list to hierarchy by filter not needed entries."><title>HierarchyLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,Fir [...]
not needed entries.</p>
<h2 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h2>
<p>ToHierarchyLister filter entries after fetch entries. So it’s possible
@@ -6,7 +6,7 @@ to return an empty vec. It doesn’t mean the all pages have been
returned.</p>
<p>Please keep calling next until we returned <code>Ok(None)</code></p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HierarchyLister%3CP%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/hierarchy_list.rs.html#40-122">source</a><a href="#impl-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="stru [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingList-for-HierarchyLister%3CP%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/hierarchy_list.rs.html#142-159">source</a><a href="#impl-BlockingList-for-HierarchyLister [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingList-for-HierarchyLister%3CP%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/hierarchy_list.rs.html#142-159">source</a><a href="#impl-BlockingList-for-HierarchyLister [...]
P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a>,</div></h3></section><section id="impl-RefUnwindSafe-for-HierarchyLister%3CP%3E" class="impl"><a href="#impl-RefUnwindSafe-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_saf [...]
P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-HierarchyLister%3CP%3E" class="impl"><a href="#impl-Send-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Sen [...]
P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-HierarchyLister%3CP%3E" class="impl"><a href="#impl-Sync-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Hie [...]
diff --git a/docs/rust/opendal/raw/oio/struct.MultipartPart.html b/docs/rust/opendal/raw/oio/struct.MultipartPart.html
index da481a45cc..599ca49d9b 100644
--- a/docs/rust/opendal/raw/oio/struct.MultipartPart.html
+++ b/docs/rust/opendal/raw/oio/struct.MultipartPart.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The result of `MultipartWrite::write_part`."><title>MultipartPart in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The result of `MultipartWrite::write_part`."><title>MultipartPart in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
pub part_number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
pub etag: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
pub checksum: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/raw/oio/struct.MultipartWriter.html b/docs/rust/opendal/raw/oio/struct.MultipartWriter.html
index cf5408eb99..db62fe1503 100644
--- a/docs/rust/opendal/raw/oio/struct.MultipartWriter.html
+++ b/docs/rust/opendal/raw/oio/struct.MultipartWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MultipartWriter will implements `oio::Write` based on multipart uploads."><title>MultipartWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MultipartWriter will implements `oio::Write` based on multipart uploads."><title>MultipartWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
uploads.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MultipartWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/multipart_write.rs.html#145-200">source</a><a href="#impl-MultipartWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W: <a class="trai [...]
<p>wasm32 is a special target that we only have one event-loop for this state.</p>
diff --git a/docs/rust/opendal/raw/oio/struct.OneShotWriter.html b/docs/rust/opendal/raw/oio/struct.OneShotWriter.html
index 7fb5cb54c8..fa127423c0 100644
--- a/docs/rust/opendal/raw/oio/struct.OneShotWriter.html
+++ b/docs/rust/opendal/raw/oio/struct.OneShotWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotWrite is used to implement `oio::Write` based on one shot."><title>OneShotWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141b [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotWrite is used to implement `oio::Write` based on one shot."><title>OneShotWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141b [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OneShotWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/one_shot_write.rs.html#42-50">source</a><a href="#impl-OneShotWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W: <a class="trait" href [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Write-for-OneShotWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/one_shot_write.rs.html#52-78">source</a><a href="#impl-Write-for-OneShotWriter%3CW%3E" class="anc [...]
W: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-OneShotWriter%3CW%3E" class="impl"><a href="#impl-Send-for-OneShotWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">S [...]
diff --git a/docs/rust/opendal/raw/oio/struct.PageContext.html b/docs/rust/opendal/raw/oio/struct.PageContext.html
index ecf339c456..87e22be353 100644
--- a/docs/rust/opendal/raw/oio/struct.PageContext.html
+++ b/docs/rust/opendal/raw/oio/struct.PageContext.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageContext is the context passing between `PageList`."><title>PageContext in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageContext is the context passing between `PageList`."><title>PageContext in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff [...]
pub done: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
pub token: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
pub entries: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/vec_deque/struct.VecDeque.html" title="struct alloc::collections::vec_deque::VecDeque">VecDeque</a><<a class="struct" href="struct.Entry.html" title="struct opendal::raw::oio::Entry">Entry</a>>,
diff --git a/docs/rust/opendal/raw/oio/struct.PageLister.html b/docs/rust/opendal/raw/oio/struct.PageLister.html
index ff34e90544..3e2c244c36 100644
--- a/docs/rust/opendal/raw/oio/struct.PageLister.html
+++ b/docs/rust/opendal/raw/oio/struct.PageLister.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageLister implements `oio::List` based on `PageList`."><title>PageLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageLister implements `oio::List` based on `PageList`."><title>PageLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-PageLister%3CL%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/page_list.rs.html#71-86">source</a><a href="#impl-PageLister%3CL%3E" class="anchor">§</a><h3 class="code-header">impl<L> <a class="struct" href="struct [...]
L: <a class="trait" href="trait.PageList.html" title="trait opendal::raw::oio::PageList">PageList</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../src/opendal/raw/oio/list/page_list.rs.html#76-85">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(l: L) -> Self</h4></section></summary><div class="docblock"><p>C [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-List-for-PageLister%3CL%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/page_list.rs.html#88-104">source</a><a href="#impl-List-for-PageLister%3CL%3E" class="anchor">§</a><h3 [...]
diff --git a/docs/rust/opendal/raw/oio/struct.PooledBuf.html b/docs/rust/opendal/raw/oio/struct.PooledBuf.html
index cd0b83ebd5..bb542653f6 100644
--- a/docs/rust/opendal/raw/oio/struct.PooledBuf.html
+++ b/docs/rust/opendal/raw/oio/struct.PooledBuf.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PooledBuf is a buffer pool that designed for reusing already allocated bufs."><title>PooledBuf in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-0 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PooledBuf is a buffer pool that designed for reusing already allocated bufs."><title>PooledBuf in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-0 [...]
<p>It works as best-effort that tries to reuse the buffer if possible. It
won’t block the thread if the pool is locked, just returning a new buffer
or dropping existing buffer.</p>
diff --git a/docs/rust/opendal/raw/oio/struct.PrefixLister.html b/docs/rust/opendal/raw/oio/struct.PrefixLister.html
index efa373b24b..76dcecd10c 100644
--- a/docs/rust/opendal/raw/oio/struct.PrefixLister.html
+++ b/docs/rust/opendal/raw/oio/struct.PrefixLister.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PrefixLister is used to filter entries by prefix."><title>PrefixLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PrefixLister is used to filter entries by prefix."><title>PrefixLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
<p>For example, if we have a lister that returns entries:</p>
<div class="example-wrap"><pre class="language-txt"><code>.
├── file_a
diff --git a/docs/rust/opendal/raw/oio/struct.QueueBuf.html b/docs/rust/opendal/raw/oio/struct.QueueBuf.html
index c99f68b228..64fdd03319 100644
--- a/docs/rust/opendal/raw/oio/struct.QueueBuf.html
+++ b/docs/rust/opendal/raw/oio/struct.QueueBuf.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="QueueBuf is a queue of `Buffer`."><title>QueueBuf in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="QueueBuf is a queue of `Buffer`."><title>QueueBuf in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
<p>It’s designed to allow storing multiple buffers without copying underlying bytes and consume them
in order.</p>
<p>QueueBuf mainly provides the following operations:</p>
diff --git a/docs/rust/opendal/raw/oio/struct.RangeWriter.html b/docs/rust/opendal/raw/oio/struct.RangeWriter.html
index 19104a3fc7..d02f84ad75 100644
--- a/docs/rust/opendal/raw/oio/struct.RangeWriter.html
+++ b/docs/rust/opendal/raw/oio/struct.RangeWriter.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RangeWriter will implements `oio::Write` based on range write."><title>RangeWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RangeWriter will implements `oio::Write` based on range write."><title>RangeWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RangeWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/range_write.rs.html#106-155">source</a><a href="#impl-RangeWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W: <a class="trait" href="tra [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Write-for-RangeWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/range_write.rs.html#157-225">source</a><a href="#impl-Write-for-RangeWriter%3CW%3E" class="anchor"> [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/oio/trait.AppendWrite.html b/docs/rust/opendal/raw/oio/trait.AppendWrite.html
index 2ec6d7ee4c..95ee710591 100644
--- a/docs/rust/opendal/raw/oio/trait.AppendWrite.html
+++ b/docs/rust/opendal/raw/oio/trait.AppendWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AppendWrite is used to implement `oio::Write` based on append object. By implementing AppendWrite, services don’t need to care about the details of buffering and uploading parts."><title>AppendWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AppendWrite is used to implement `oio::Write` based on append object. By implementing AppendWrite, services don’t need to care about the details of buffering and uploading parts."><title>AppendWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document [...]
// Required methods
fn <a href="#tymethod.offset" class="fn">offset</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>>> + <a class="trait" href="../trait.MaybeSend.html" title="trait [...]
<span class="item-spacer"></span> fn <a href="#tymethod.append" class="fn">append</a>(
diff --git a/docs/rust/opendal/raw/oio/trait.BlockWrite.html b/docs/rust/opendal/raw/oio/trait.BlockWrite.html
index d78330ec59..33724374ec 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockWrite.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockWrite is used to implement `oio::Write` based on block uploads. By implementing BlockWrite, services don’t need to care about the details of uploading blocks."><title>BlockWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdja [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockWrite is used to implement `oio::Write` based on block uploads. By implementing BlockWrite, services don’t need to care about the details of uploading blocks."><title>BlockWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdja [...]
// Required methods
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
&self,
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingList.html b/docs/rust/opendal/raw/oio/trait.BlockingList.html
index b2b0a6380f..2e456fe24c 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingList.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingList.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingList is the blocking version of `List`."><title>BlockingList in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fira [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingList is the blocking version of `List`."><title>BlockingList in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fira [...]
// Required method
fn <a href="#tymethod.next" class="fn">next</a>(&mut self) -> <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.Entry.html" title="struct opendal::raw::oio::Entry">Entry</a>>>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>BlockingList is the blocking version of <a href="trait.List.html" title="trait opendal::raw::oio::List"><code>List</code></a>.</p>
@@ -12,4 +12,4 @@ to <code>next</code> will always get the same result.</p>
ONE: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,
TWO: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,
THREE: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,
- FOUR: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section><section id="impl-BlockingList-for-HierarchyLister%3CP%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/hierarchy_list.rs.html#142-159">source</a><a href="#impl-BlockingList-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P: <a class="trait" href="trait.BlockingList.html" title="trait [...]
\ No newline at end of file
+ FOUR: <a class="trait" href="trait.BlockingList.html" title="trait opendal::raw::oio::BlockingList">BlockingList</a>,</div></h3></section><section id="impl-BlockingList-for-HierarchyLister%3CP%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/hierarchy_list.rs.html#142-159">source</a><a href="#impl-BlockingList-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P: <a class="trait" href="trait.BlockingList.html" title="trait [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingRead.html b/docs/rust/opendal/raw/oio/trait.BlockingRead.html
index afa7313824..a6dfb542c1 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingRead.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingRead.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Read is the trait that OpenDAL returns to callers."><title>BlockingRead in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Read is the trait that OpenDAL returns to callers."><title>BlockingRead in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
// Required method
fn <a href="#tymethod.read" class="fn">read</a>(&mut self) -> <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Read is the trait that OpenDAL returns to callers.</p>
@@ -9,4 +9,4 @@ To make BlockingReader work as expected, we must add this impl.</p>
ONE: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,
TWO: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,
THREE: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,
- FOUR: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,</div></h3></section><section id="impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/enum_utils.rs.html#63-70">source</a><a href="#impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw:: [...]
\ No newline at end of file
+ FOUR: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,</div></h3></section><section id="impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/enum_utils.rs.html#63-70">source</a><a href="#impl-BlockingRead-for-TwoWays%3CONE,+TWO%3E" class="anchor">§</a><h3 class="code-header">impl<ONE: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw:: [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingWrite.html b/docs/rust/opendal/raw/oio/trait.BlockingWrite.html
index 51ba77360a..316bed9972 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingWrite.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingWrite is the trait that OpenDAL returns to callers."><title>BlockingWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingWrite is the trait that OpenDAL returns to callers."><title>BlockingWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843f [...]
// Required methods
fn <a href="#tymethod.write" class="fn">write</a>(&mut self, bs: <a class="struct" href="../../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>) -> <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>;
<span class="item-spacer"></span> fn <a href="#tymethod.close" class="fn">close</a>(&mut self) -> <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>>;
diff --git a/docs/rust/opendal/raw/oio/trait.List.html b/docs/rust/opendal/raw/oio/trait.List.html
index eabd61f7d5..80c5ec50e9 100644
--- a/docs/rust/opendal/raw/oio/trait.List.html
+++ b/docs/rust/opendal/raw/oio/trait.List.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Page trait is used by `raw::Accessor` to implement `list` operation."><title>List in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Page trait is used by `raw::Accessor` to implement `list` operation."><title>List in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843f [...]
// Required method
fn <a href="#tymethod.next" class="fn">next</a>(
&mut self
@@ -15,4 +15,4 @@ to <code>next</code> will always get the same result.</p>
ONE: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,
TWO: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,
THREE: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,
- FOUR: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section><section id="impl-List-for-HierarchyLister%3CP%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/hierarchy_list.rs.html#124-140">source</a><a href="#impl-List-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>> <a class= [...]
\ No newline at end of file
+ FOUR: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>,</div></h3></section><section id="impl-List-for-HierarchyLister%3CP%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/list/hierarchy_list.rs.html#124-140">source</a><a href="#impl-List-for-HierarchyLister%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P: <a class="trait" href="trait.List.html" title="trait opendal::raw::oio::List">List</a>> <a class= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.MultipartWrite.html b/docs/rust/opendal/raw/oio/trait.MultipartWrite.html
index 7d7cbe5791..7d79a07916 100644
--- a/docs/rust/opendal/raw/oio/trait.MultipartWrite.html
+++ b/docs/rust/opendal/raw/oio/trait.MultipartWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MultipartWrite is used to implement `oio::Write` based on multipart uploads. By implementing MultipartWrite, services don’t need to care about the details of uploading parts."><title>MultipartWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MultipartWrite is used to implement `oio::Write` based on multipart uploads. By implementing MultipartWrite, services don’t need to care about the details of uploading parts."><title>MultipartWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document. [...]
// Required methods
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
&self,
diff --git a/docs/rust/opendal/raw/oio/trait.OneShotWrite.html b/docs/rust/opendal/raw/oio/trait.OneShotWrite.html
index 20e50721bb..d3e6883c42 100644
--- a/docs/rust/opendal/raw/oio/trait.OneShotWrite.html
+++ b/docs/rust/opendal/raw/oio/trait.OneShotWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotWrite is used to implement `oio::Write` based on one shot operation. By implementing OneShotWrite, services don’t need to care about the details."><title>OneShotWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML( [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneShotWrite is used to implement `oio::Write` based on one shot operation. By implementing OneShotWrite, services don’t need to care about the details."><title>OneShotWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML( [...]
// Required method
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
&self,
diff --git a/docs/rust/opendal/raw/oio/trait.PageList.html b/docs/rust/opendal/raw/oio/trait.PageList.html
index 17315c41a0..3a00465b40 100644
--- a/docs/rust/opendal/raw/oio/trait.PageList.html
+++ b/docs/rust/opendal/raw/oio/trait.PageList.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageList is used to implement `oio::List` based on API supporting pagination. By implementing PageList, services don’t need to care about the details of page list."><title>PageList in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjace [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PageList is used to implement `oio::List` based on API supporting pagination. By implementing PageList, services don’t need to care about the details of page list."><title>PageList in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjace [...]
// Required method
fn <a href="#tymethod.next_page" class="fn">next_page</a>(
&self,
diff --git a/docs/rust/opendal/raw/oio/trait.RangeWrite.html b/docs/rust/opendal/raw/oio/trait.RangeWrite.html
index c5f8a4015f..c2582130e2 100644
--- a/docs/rust/opendal/raw/oio/trait.RangeWrite.html
+++ b/docs/rust/opendal/raw/oio/trait.RangeWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RangeWrite is used to implement `oio::Write` based on range write."><title>RangeWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RangeWrite is used to implement `oio::Write` based on range write."><title>RangeWrite in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0 [...]
// Required methods
fn <a href="#tymethod.write_once" class="fn">write_once</a>(
&self,
diff --git a/docs/rust/opendal/raw/oio/trait.Read.html b/docs/rust/opendal/raw/oio/trait.Read.html
index 124f44c0d6..7365e11a8b 100644
--- a/docs/rust/opendal/raw/oio/trait.Read.html
+++ b/docs/rust/opendal/raw/oio/trait.Read.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Read is the internal trait used by OpenDAL to read data from storage."><title>Read in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Read is the internal trait used by OpenDAL to read data from storage."><title>Read in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843 [...]
// Required method
fn <a href="#tymethod.read" class="fn">read</a>(&mut self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>>> + <a class="trait" href="../trait.MaybeSend.html" title="trait o [...]
diff --git a/docs/rust/opendal/raw/oio/trait.ReadDyn.html b/docs/rust/opendal/raw/oio/trait.ReadDyn.html
index f33361ad2a..b6c481cecd 100644
--- a/docs/rust/opendal/raw/oio/trait.ReadDyn.html
+++ b/docs/rust/opendal/raw/oio/trait.ReadDyn.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ReadDyn is the dyn version of `Read` make it possible to use as `Box<dyn ReadDyn>`."><title>ReadDyn in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ReadDyn is the dyn version of `Read` make it possible to use as `Box<dyn ReadDyn>`."><title>ReadDyn in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSan [...]
// Required methods
fn <a href="#tymethod.read_dyn" class="fn">read_dyn</a>(&mut self) -> <a class="type" href="../type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'_, <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>>>;
<span class="item-spacer"></span> fn <a href="#tymethod.read_all_dyn" class="fn">read_all_dyn</a>(&mut self) -> <a class="type" href="../type.BoxedFuture.html" title="type opendal::raw::BoxedFuture">BoxedFuture</a><'_, <a class="type" href="../../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>>>;
diff --git a/docs/rust/opendal/raw/oio/trait.Write.html b/docs/rust/opendal/raw/oio/trait.Write.html
index 4d6c8401be..8f456b000a 100644
--- a/docs/rust/opendal/raw/oio/trait.Write.html
+++ b/docs/rust/opendal/raw/oio/trait.Write.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Write is the trait that OpenDAL returns to callers."><title>Write in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Write is the trait that OpenDAL returns to callers."><title>Write in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
// Required methods
fn <a href="#tymethod.write" class="fn">write</a>(
&mut self,
@@ -23,4 +23,4 @@ repeatedly until all bytes has been written.</p>
</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="im [...]
W: <a class="trait" href="trait.AppendWrite.html" title="trait opendal::raw::oio::AppendWrite">AppendWrite</a>,</div></h3></section><section id="impl-Write-for-BlockWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/block_write.rs.html#161-233">source</a><a href="#impl-Write-for-BlockWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="trait.Write.html" title="trait opendal::raw::oio::Write">Write</ [...]
W: <a class="trait" href="trait.BlockWrite.html" title="trait opendal::raw::oio::BlockWrite">BlockWrite</a>,</div></h3></section><section id="impl-Write-for-MultipartWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/multipart_write.rs.html#202-301">source</a><a href="#impl-Write-for-MultipartWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W> <a class="trait" href="trait.Write.html" title="trait opendal::raw::oio::Write [...]
- W: <a class="trait" href="trait.MultipartWrite.html" title="trait opendal::raw::oio::MultipartWrite">MultipartWrite</a>,</div></h3></section><section id="impl-Write-for-OneShotWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/one_shot_write.rs.html#52-78">source</a><a href="#impl-Write-for-OneShotWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W: <a class="trait" href="trait.OneShotWrite.html" title="trait opendal::raw::o [...]
\ No newline at end of file
+ W: <a class="trait" href="trait.MultipartWrite.html" title="trait opendal::raw::oio::MultipartWrite">MultipartWrite</a>,</div></h3></section><section id="impl-Write-for-OneShotWriter%3CW%3E" class="impl"><a class="src rightside" href="../../../src/opendal/raw/oio/write/one_shot_write.rs.html#52-78">source</a><a href="#impl-Write-for-OneShotWriter%3CW%3E" class="anchor">§</a><h3 class="code-header">impl<W: <a class="trait" href="trait.OneShotWrite.html" title="trait opendal::raw::o [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.BlockingLister.html b/docs/rust/opendal/raw/oio/type.BlockingLister.html
index bc50ee04d1..dee8752747 100644
--- a/docs/rust/opendal/raw/oio/type.BlockingLister.html
+++ b/docs/rust/opendal/raw/oio/type.BlockingLister.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingLister is a boxed `BlockingList`"><title>BlockingLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingLister is a boxed `BlockingList`"><title>BlockingLister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans- [...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct BlockingLister(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="opendal::raw::oio::list::api::BlockingLister" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.BlockingReader.html b/docs/rust/opendal/raw/oio/type.BlockingReader.html
index 77f2bd35cb..501bfc5d15 100644
--- a/docs/rust/opendal/raw/oio/type.BlockingReader.html
+++ b/docs/rust/opendal/raw/oio/type.BlockingReader.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingReader is a arc dyn `BlockingRead`."><title>BlockingReader in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingReader is a arc dyn `BlockingRead`."><title>BlockingReader in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct BlockingReader(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="opendal::raw::oio::read::api::BlockingReader" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.BlockingWriter.html b/docs/rust/opendal/raw/oio/type.BlockingWriter.html
index 8edca00920..b8c8005d88 100644
--- a/docs/rust/opendal/raw/oio/type.BlockingWriter.html
+++ b/docs/rust/opendal/raw/oio/type.BlockingWriter.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingWriter is a type erased `BlockingWrite`"><title>BlockingWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingWriter is a type erased `BlockingWrite`"><title>BlockingWriter in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fi [...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct BlockingWriter(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="opendal::raw::oio::write::api::BlockingWriter" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.Lister.html b/docs/rust/opendal/raw/oio/type.Lister.html
index 8f0abceadd..2ec1448f35 100644
--- a/docs/rust/opendal/raw/oio/type.Lister.html
+++ b/docs/rust/opendal/raw/oio/type.Lister.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The boxed version of `List`"><title>Lister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The boxed version of `List`"><title>Lister in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct Lister(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="opendal::raw::oio::list::api::Lister" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.Reader.html b/docs/rust/opendal/raw/oio/type.Reader.html
index db1badc7c2..0592affbe9 100644
--- a/docs/rust/opendal/raw/oio/type.Reader.html
+++ b/docs/rust/opendal/raw/oio/type.Reader.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reader is a type erased `Read`."><title>Reader in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reader is a type erased `Read`."><title>Reader in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct Reader(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="opendal::raw::oio::read::api::Reader" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/type.Writer.html b/docs/rust/opendal/raw/oio/type.Writer.html
index f4916e9f23..c04f861a34 100644
--- a/docs/rust/opendal/raw/oio/type.Writer.html
+++ b/docs/rust/opendal/raw/oio/type.Writer.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Writer is a type erased `Write`"><title>Writer in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Writer is a type erased `Write`"><title>Writer in opendal::raw::oio - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49 [...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct Writer(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../type.impl/alloc/boxed/struct.Box.js" data-self-path="opendal::raw::oio::write::api::Writer" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.AccessorInfo.html b/docs/rust/opendal/raw/struct.AccessorInfo.html
index dd8990b2bd..f2c46dc450 100644
--- a/docs/rust/opendal/raw/struct.AccessorInfo.html
+++ b/docs/rust/opendal/raw/struct.AccessorInfo.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Metadata for accessor, users can use this metadata to get information of underlying backend."><title>AccessorInfo in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,Fira [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Metadata for accessor, users can use this metadata to get information of underlying backend."><title>AccessorInfo in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,Fira [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AccessorInfo" class="impl"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#845-912">source</a><a href="#impl-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.AccessorInfo.html" title="str [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_scheme" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#852-855">source</a><h4 class="code-header">pub fn <a href="#method.set_scheme" class="fn">set_scheme</a>(&mut self, scheme: <a class="enum" href="../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method"><a class="src rightside" href="../../src/opendal/raw/accessor.rs.html#858-860">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&self) -> &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of backend, will be in format like <code>/path/to/d [...]
diff --git a/docs/rust/opendal/raw/struct.AtomicContentLength.html b/docs/rust/opendal/raw/struct.AtomicContentLength.html
index 34f156c847..e25d50e6a7 100644
--- a/docs/rust/opendal/raw/struct.AtomicContentLength.html
+++ b/docs/rust/opendal/raw/struct.AtomicContentLength.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AtomicContentLength is a wrapper of AtomicU64 that used to store content length."><title>AtomicContentLength in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="AtomicContentLength is a wrapper of AtomicU64 that used to store content length."><title>AtomicContentLength in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans- [...]
<p>It provides a way to store and load content length in atomic way, so caller don’t need to
use <code>Mutex</code> or <code>RwLock</code> to protect the content length.</p>
<p>We use value <code>u64::MAX</code> to represent unknown size, it’s impossible for us to
diff --git a/docs/rust/opendal/raw/struct.BytesContentRange.html b/docs/rust/opendal/raw/struct.BytesContentRange.html
index 0686481d30..c0a6fd3fa7 100644
--- a/docs/rust/opendal/raw/struct.BytesContentRange.html
+++ b/docs/rust/opendal/raw/struct.BytesContentRange.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BytesContentRange is the content range of bytes."><title>BytesContentRange in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fir [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BytesContentRange is the content range of bytes."><title>BytesContentRange in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fir [...]
<p><code><unit></code> should always be <code>bytes</code>.</p>
<div class="example-wrap"><pre class="language-text"><code>Content-Range: bytes <range-start>-<range-end>/<size>
Content-Range: bytes <range-start>-<range-end>/*
diff --git a/docs/rust/opendal/raw/struct.BytesRange.html b/docs/rust/opendal/raw/struct.BytesRange.html
index 5e31c3ad84..0d45d7a80a 100644
--- a/docs/rust/opendal/raw/struct.BytesRange.html
+++ b/docs/rust/opendal/raw/struct.BytesRange.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BytesRange(offset, size) carries a range of content."><title>BytesRange in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BytesRange(offset, size) carries a range of content."><title>BytesRange in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
<p>BytesRange implements <code>ToString</code> which can be used as <code>Range</code> HTTP header directly.</p>
<p><code><unit></code> should always be <code>bytes</code>.</p>
<div class="example-wrap"><pre class="language-text"><code>Range: bytes=<range-start>-
diff --git a/docs/rust/opendal/raw/struct.ConcurrentFutures.html b/docs/rust/opendal/raw/struct.ConcurrentFutures.html
index e789d54bbc..6697f0ac87 100644
--- a/docs/rust/opendal/raw/struct.ConcurrentFutures.html
+++ b/docs/rust/opendal/raw/struct.ConcurrentFutures.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ConcurrentFutures is a stream that can hold a stream of concurrent futures."><title>ConcurrentFutures in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ConcurrentFutures is a stream that can hold a stream of concurrent futures."><title>ConcurrentFutures in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
<ul>
<li>the order of the futures is the same.</li>
<li>the number of concurrent futures is limited by concurrent.</li>
diff --git a/docs/rust/opendal/raw/struct.ConcurrentTasks.html b/docs/rust/opendal/raw/struct.ConcurrentTasks.html
index e7f7095d01..f7dce1f672 100644
--- a/docs/rust/opendal/raw/struct.ConcurrentTasks.html
+++ b/docs/rust/opendal/raw/struct.ConcurrentTasks.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ConcurrentTasks is used to execute tasks concurrently."><title>ConcurrentTasks in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ConcurrentTasks is used to execute tasks concurrently."><title>ConcurrentTasks in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2 [...]
<p>ConcurrentTasks has two generic types:</p>
<ul>
<li><code>I</code> represents the input type of the task.</li>
diff --git a/docs/rust/opendal/raw/struct.ConfigDeserializer.html b/docs/rust/opendal/raw/struct.ConfigDeserializer.html
index 49d5881f3e..5823d81415 100644
--- a/docs/rust/opendal/raw/struct.ConfigDeserializer.html
+++ b/docs/rust/opendal/raw/struct.ConfigDeserializer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ConfigDeserializer is used to deserialize given configs from `HashMap<String, String>`."><title>ConfigDeserializer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ConfigDeserializer is used to deserialize given configs from `HashMap<String, String>`."><title>ConfigDeserializer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.wof [...]
<p>This is only used by our services config.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ConfigDeserializer" class="impl"><a class="src rightside" href="../../src/opendal/raw/serde_util.rs.html#51-57">source</a><a href="#impl-ConfigDeserializer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ConfigDeserialize [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Deserializer%3C'de%3E-for-ConfigDeserializer" class="impl"><a class="src rightside" href="../../src/opendal/raw/serde_util.rs.html#59-82">source</a><a href="#impl-Deserializer%3C'de%3E-for-ConfigDeserializer" [...]
diff --git a/docs/rust/opendal/raw/struct.FormDataPart.html b/docs/rust/opendal/raw/struct.FormDataPart.html
index 75880a5902..b522abc1e3 100644
--- a/docs/rust/opendal/raw/struct.FormDataPart.html
+++ b/docs/rust/opendal/raw/struct.FormDataPart.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FormDataPart is a builder for multipart/form-data part."><title>FormDataPart in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FormDataPart is a builder for multipart/form-data part."><title>FormDataPart in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,F [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-FormDataPart" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/multipart.rs.html#174-205">source</a><a href="#impl-FormDataPart" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.FormDataPart.html" [...]
<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
<p>Input name must be percent encoded.</p>
diff --git a/docs/rust/opendal/raw/struct.HttpBody.html b/docs/rust/opendal/raw/struct.HttpBody.html
index 29d234fc2a..426da1c885 100644
--- a/docs/rust/opendal/raw/struct.HttpBody.html
+++ b/docs/rust/opendal/raw/struct.HttpBody.html
@@ -1,12 +1,12 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HttpBody is the streaming body that opendal’s HttpClient returned."><title>HttpBody in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HttpBody is the streaming body that opendal’s HttpClient returned."><title>HttpBody in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd. [...]
<p>It implements the <code>oio::Read</code> trait, service implementors can return it as
<code>Access::Read</code>.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HttpBody" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/body.rs.html#50-104">source</a><a href="#impl-HttpBody" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.HttpBody.html" title="struct ope [...]
S: Stream<Item = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>>> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href=" [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.to_buffer" class="method"><a class="src rightside" href="../../src/opendal/raw/http_util/body.rs.html#101-103">source</a><h4 class="code-header">pub async fn <a href="#method.to_buffer" class="fn">to_buffer</a>(&mut self) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="../struct.Buffer.html" title="struct opendal::Buffer">Buffer</ [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Read-for-HttpBody" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/body.rs.html#106-119">source</a><a href="#impl-Read-for-HttpBody" class="anchor">§</a><h3 class="code-header">imp [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Read-for-HttpBody" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/body.rs.html#106-119">source</a><a href="#impl-Read-for-HttpBody" class="anchor">§</a><h3 class="code-header">imp [...]
<p>HttpBody is send on non wasm32 targets.</p>
-</div><section id="impl-Sync-for-HttpBody" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/body.rs.html#48">source</a><a href="#impl-Sync-for-HttpBody" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.HttpBody.html" title="struct opendal::raw::HttpBody">HttpBody</a></h3></section><div class="docblock [...]
+</div><section id="impl-Sync-for-HttpBody" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/body.rs.html#48">source</a><a href="#impl-Sync-for-HttpBody" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.HttpBody.html" title="struct opendal::raw::HttpBody">HttpBody</a></h3></section><div class="docblock [...]
<p>HttpBody is sync on non wasm32 targets.</p>
</div></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-HttpBody" class="impl"><a href="#impl-Freeze-for-HttpBody" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/struct.HttpClient.html b/docs/rust/opendal/raw/struct.HttpClient.html
index d9f8bc010d..ee2b508cf7 100644
--- a/docs/rust/opendal/raw/struct.HttpClient.html
+++ b/docs/rust/opendal/raw/struct.HttpClient.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HttpClient that used across opendal."><title>HttpClient in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HttpClient that used across opendal."><title>HttpClient in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HttpClient" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/client.rs.html#47-164">source</a><a href="#impl-HttpClient" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.HttpClient.html" title="st [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with" class="method"><a class="src rightside" href="../../src/opendal/raw/http_util/client.rs.html#54-56">source</a><h4 class="code-header">pub fn <a href="#method.with" class="fn">with</a>(client: Client) -> Self</h4></section></summary><div class="docblock"><p>Construct <code>Self</code> with given [<code>reqwest::Client</code>]</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.build" class="method"><a class="src rightside" href="../../src/opendal/raw/http_util/client.rs.html#59-65">source</a><h4 class="code-header">pub fn <a href="#method.build" class="fn">build</a>(builder: ClientBuilder) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><Self></h4></section></summary><div class="docblock"><p>Build a new http client in async cont [...]
diff --git a/docs/rust/opendal/raw/struct.MixedPart.html b/docs/rust/opendal/raw/struct.MixedPart.html
index d5a6ed0481..8357b2562b 100644
--- a/docs/rust/opendal/raw/struct.MixedPart.html
+++ b/docs/rust/opendal/raw/struct.MixedPart.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MixedPart is a builder for multipart/mixed part."><title>MixedPart in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MixedPart is a builder for multipart/mixed part."><title>MixedPart in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-MixedPart" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/multipart.rs.html#270-365">source</a><a href="#impl-MixedPart" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.MixedPart.html" title="s [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.from_request" class="method"><a class="src rightside" href="../../src/opendal/raw/http_util/multipart.rs.html#294-320">source</a><h4 class="code-header">pub fn <a href="#method.from_request" class="fn">from_request</a>(req: Request<<a class="struct" href="../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>>) -> Self</h4></section></summary><div class="docblock"><p>Build a mixed p [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_response" class="method"><a class="src rightside" href="../../src/opendal/raw/http_util/multipart.rs.html#323-334">source</a><h4 class="code-header">pub fn <a href="#method.into_response" class="fn">into_response</a>(self) -> Response<<a class="struct" href="../struct.Buffer.html" title="struct opendal::Buffer">Buffer</a>></h4></section></summary><div class="docblock"><p>Consume a mixed [...]
diff --git a/docs/rust/opendal/raw/struct.Multipart.html b/docs/rust/opendal/raw/struct.Multipart.html
index 842949a123..ea25d31d39 100644
--- a/docs/rust/opendal/raw/struct.Multipart.html
+++ b/docs/rust/opendal/raw/struct.Multipart.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Multipart is a builder for multipart/form-data."><title>Multipart in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Multipart is a builder for multipart/form-data."><title>Multipart in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Multipart%3CT%3E" class="impl"><a class="src rightside" href="../../src/opendal/raw/http_util/multipart.rs.html#53-151">source</a><a href="#impl-Multipart%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="trait.Part.ht [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_boundary" class="method"><a class="src rightside" href="../../src/opendal/raw/http_util/multipart.rs.html#63-66">source</a><h4 class="code-header">pub fn <a href="#method.with_boundary" class="fn">with_boundary</a>(self, boundary: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Set the b [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.part" class="method"><a class="src rightside" href="../../src/opendal/raw/http_util/multipart.rs.html#69-72">source</a><h4 class="code-header">pub fn <a href="#method.part" class="fn">part</a>(self, part: T) -> Self</h4></section></summary><div class="docblock"><p>Insert a part into multipart.</p>
diff --git a/docs/rust/opendal/raw/struct.OpBatch.html b/docs/rust/opendal/raw/struct.OpBatch.html
index a99cf987ae..13c261c8c9 100644
--- a/docs/rust/opendal/raw/struct.OpBatch.html
+++ b/docs/rust/opendal/raw/struct.OpBatch.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `batch` operation."><title>OpBatch in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `batch` operation."><title>OpBatch in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpBatch" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#259-274">source</a><a href="#impl-OpBatch" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpBatch.html" title="struct opendal::raw::Op [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.operation" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#266-268">source</a><h4 class="code-header">pub fn <a href="#method.operation" class="fn">operation</a>(&self) -> &[(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="enum.BatchOperation.html [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_operation" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#271-273">source</a><h4 class="code-header">pub fn <a href="#method.into_operation" class="fn">into_operation</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="struct" href="https://doc.rust-lang.org/night [...]
diff --git a/docs/rust/opendal/raw/struct.OpCopy.html b/docs/rust/opendal/raw/struct.OpCopy.html
index 1515e69127..b7f6375992 100644
--- a/docs/rust/opendal/raw/struct.OpCopy.html
+++ b/docs/rust/opendal/raw/struct.OpCopy.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `copy` operation."><title>OpCopy in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `copy` operation."><title>OpCopy in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpCopy" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#708-713">source</a><a href="#impl-OpCopy" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpCopy.html" title="struct opendal::raw::OpCop [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-OpCopy" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#705">source</a><a href="#impl-Clone-for-OpCopy" class="anchor">§</a><h3 class="code-header">impl <a class="trait [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/struct.OpCreateDir.html b/docs/rust/opendal/raw/struct.OpCreateDir.html
index 7dcba3f38f..0cb51e2d86 100644
--- a/docs/rust/opendal/raw/struct.OpCreateDir.html
+++ b/docs/rust/opendal/raw/struct.OpCreateDir.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `create` operation."><title>OpCreateDir in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `create` operation."><title>OpCreateDir in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
<p>The path must be normalized.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpCreateDir" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#35-40">source</a><a href="#impl-OpCreateDir" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpCreateDir.html" title="struct openda [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-OpCreateDir" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#32">source</a><a href="#impl-Clone-for-OpCreateDir" class="anchor">§</a><h3 class="code-header">impl <a cla [...]
diff --git a/docs/rust/opendal/raw/struct.OpDelete.html b/docs/rust/opendal/raw/struct.OpDelete.html
index 1811103b06..217149b008 100644
--- a/docs/rust/opendal/raw/struct.OpDelete.html
+++ b/docs/rust/opendal/raw/struct.OpDelete.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `delete` operation."><title>OpDelete in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `delete` operation."><title>OpDelete in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<p>The path must be normalized.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpDelete" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#50-55">source</a><a href="#impl-OpDelete" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpDelete.html" title="struct opendal::raw::O [...]
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-OpDelete-1" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#57-68">source</a><a href="#impl-OpDelete-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpDelete.html" title="struct opendal::raw::OpDelete">OpDelete</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><sec [...]
diff --git a/docs/rust/opendal/raw/struct.OpList.html b/docs/rust/opendal/raw/struct.OpList.html
index 93ee1bf853..c5fae685ac 100644
--- a/docs/rust/opendal/raw/struct.OpList.html
+++ b/docs/rust/opendal/raw/struct.OpList.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `list` operation."><title>OpList in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `list` operation."><title>OpList in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpList" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#117-186">source</a><a href="#impl-OpList" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpList.html" title="struct opendal::raw::OpLis [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_limit" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#124-127">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><div class="docblock"><p>Change the limit of this list operat [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.limit" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#130-132">source</a><h4 class="code-header">pub fn <a href="#method.limit" class="fn">limit</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primit [...]
diff --git a/docs/rust/opendal/raw/struct.OpPresign.html b/docs/rust/opendal/raw/struct.OpPresign.html
index 0247f3d8fb..d4ac3bf4c9 100644
--- a/docs/rust/opendal/raw/struct.OpPresign.html
+++ b/docs/rust/opendal/raw/struct.OpPresign.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `presign` operation."><title>OpPresign in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `presign` operation."><title>OpPresign in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
<p>The path must be normalized.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpPresign" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#198-221">source</a><a href="#impl-OpPresign" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpPresign.html" title="struct opendal::r [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.operation" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#208-210">source</a><h4 class="code-header">pub fn <a href="#method.operation" class="fn">operation</a>(&self) -> &<a class="enum" href="enum.PresignOperation.html" title="enum opendal::raw::PresignOperation">PresignOperation</a></h4></section></summary><div class="docblock"><p>Get operation from op.</p>
diff --git a/docs/rust/opendal/raw/struct.OpRead.html b/docs/rust/opendal/raw/struct.OpRead.html
index 620c8e8f5a..0eb967268e 100644
--- a/docs/rust/opendal/raw/struct.OpRead.html
+++ b/docs/rust/opendal/raw/struct.OpRead.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `read` operation."><title>OpRead in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `read` operation."><title>OpRead in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpRead" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#313-426">source</a><a href="#impl-OpRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRea [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_range" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#320-323">source</a><h4 class="code-header">pub fn <a href="#method.with_range" class="fn">with_range</a>(self, range: <a class="struct" href="struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a>) -> Self</h4></section></summary><div class="docblock"><p>Set the range of the option</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.range" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#326-328">source</a><h4 class="code-header">pub fn <a href="#method.range" class="fn">range</a>(&self) -> <a class="struct" href="struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a></h4></section></summary><div class="docblock"><p>Get range from option</p>
diff --git a/docs/rust/opendal/raw/struct.OpReader.html b/docs/rust/opendal/raw/struct.OpReader.html
index 54ec873c5e..c9fd3a52e9 100644
--- a/docs/rust/opendal/raw/struct.OpReader.html
+++ b/docs/rust/opendal/raw/struct.OpReader.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for reader operation."><title>OpReader in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for reader operation."><title>OpReader in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpReader" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#449-487">source</a><a href="#impl-OpReader" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpReader.html" title="struct opendal::raw: [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_concurrent" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#456-459">source</a><h4 class="code-header">pub fn <a href="#method.with_concurrent" class="fn">with_concurrent</a>(self, concurrent: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> Self</h4></section></summary><div class="docblock"><p>Set the concurre [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.concurrent" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#462-464">source</a><h4 class="code-header">pub fn <a href="#method.concurrent" class="fn">concurrent</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Get concurrent from option</p>
diff --git a/docs/rust/opendal/raw/struct.OpRename.html b/docs/rust/opendal/raw/struct.OpRename.html
index 7558c6a7b5..f2e3cb81f1 100644
--- a/docs/rust/opendal/raw/struct.OpRename.html
+++ b/docs/rust/opendal/raw/struct.OpRename.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `rename` operation."><title>OpRename in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `rename` operation."><title>OpRename in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpRename" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#719-724">source</a><a href="#impl-OpRename" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpRename.html" title="struct opendal::raw: [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-OpRename" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#716">source</a><a href="#impl-Clone-for-OpRename" class="anchor">§</a><h3 class="code-header">impl <a class="t [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/struct.OpStat.html b/docs/rust/opendal/raw/struct.OpStat.html
index 1468e79076..d1565a5317 100644
--- a/docs/rust/opendal/raw/struct.OpStat.html
+++ b/docs/rust/opendal/raw/struct.OpStat.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `stat` operation."><title>OpStat in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `stat` operation."><title>OpStat in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpStat" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#500-572">source</a><a href="#impl-OpStat" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpStat.html" title="struct opendal::raw::OpSta [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_match" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#507-510">source</a><h4 class="code-header">pub fn <a href="#method.with_if_match" class="fn">with_if_match</a>(self, if_match: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> Self</h4></section></summary><div class="docblock"><p>Set the If-Match of the [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#513-515">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="primitive" href="https://doc.rust-lang.org/nigh [...]
diff --git a/docs/rust/opendal/raw/struct.OpWrite.html b/docs/rust/opendal/raw/struct.OpWrite.html
index 42d7d86524..2755decf74 100644
--- a/docs/rust/opendal/raw/struct.OpWrite.html
+++ b/docs/rust/opendal/raw/struct.OpWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `write` operation."><title>OpWrite in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `write` operation."><title>OpWrite in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.w [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpWrite" class="impl"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#586-702">source</a><a href="#impl-OpWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::Op [...]
<p>If input path is not a file path, an error will be returned.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.append" class="method"><a class="src rightside" href="../../src/opendal/raw/ops.rs.html#597-599">source</a><h4 class="code-header">pub fn <a href="#method.append" class="fn">append</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Get the append from op.</p>
diff --git a/docs/rust/opendal/raw/struct.PathCacher.html b/docs/rust/opendal/raw/struct.PathCacher.html
index 484f19adaa..b376e72590 100644
--- a/docs/rust/opendal/raw/struct.PathCacher.html
+++ b/docs/rust/opendal/raw/struct.PathCacher.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PathCacher is a cache for path query."><title>PathCacher in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PathCacher is a cache for path query."><title>PathCacher in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
<p>OpenDAL is designed for path based storage systems, such as S3, HDFS, etc. But there are many
services that are not path based, such as OneDrive, Google Drive, etc. For these services, we
lookup files based on id. The lookup of id is very expensive, so we cache the path to id mapping
diff --git a/docs/rust/opendal/raw/struct.PresignedRequest.html b/docs/rust/opendal/raw/struct.PresignedRequest.html
index f3ba64533d..7945dc30da 100644
--- a/docs/rust/opendal/raw/struct.PresignedRequest.html
+++ b/docs/rust/opendal/raw/struct.PresignedRequest.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PresignedRequest is a presigned request return by `presign`."><title>PresignedRequest in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PresignedRequest is a presigned request return by `presign`."><title>PresignedRequest in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ff [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-PresignedRequest" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#61-85">source</a><a href="#impl-PresignedRequest" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PresignedRequest.html" title [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.method" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#72-74">source</a><h4 class="code-header">pub fn <a href="#method.method" class="fn">method</a>(&self) -> &Method</h4></section></summary><div class="docblock"><p>Return request’s method.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.uri" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#77-79">source</a><h4 class="code-header">pub fn <a href="#method.uri" class="fn">uri</a>(&self) -> &Uri</h4></section></summary><div class="docblock"><p>Return request’s uri.</p>
diff --git a/docs/rust/opendal/raw/struct.RpBatch.html b/docs/rust/opendal/raw/struct.RpBatch.html
index 9214ea243e..0cdafe837d 100644
--- a/docs/rust/opendal/raw/struct.RpBatch.html
+++ b/docs/rust/opendal/raw/struct.RpBatch.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `batch` operation."><title>RpBatch in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `batch` operation."><title>RpBatch in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpBatch" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#161-176">source</a><a href="#impl-RpBatch" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpBatch.html" title="struct opendal::raw::Rp [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.results" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#168-170">source</a><h4 class="code-header">pub fn <a href="#method.results" class="fn">results</a>(&self) -> &[(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="type" href="../type.Result.html" title="ty [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_results" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#173-175">source</a><h4 class="code-header">pub fn <a href="#method.into_results" class="fn">into_results</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(<a class="struct" href="https://doc.rust-lang.org/nightly/all [...]
diff --git a/docs/rust/opendal/raw/struct.RpCopy.html b/docs/rust/opendal/raw/struct.RpCopy.html
index 9345a7d248..21c58f88b8 100644
--- a/docs/rust/opendal/raw/struct.RpCopy.html
+++ b/docs/rust/opendal/raw/struct.RpCopy.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `copy` operation."><title>RpCopy in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `copy` operation."><title>RpCopy in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpCopy" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#229-234">source</a><a href="#impl-RpCopy" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpCopy.html" title="struct opendal::raw::RpCop [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RpCopy" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#226">source</a><a href="#impl-Clone-for-RpCopy" class="anchor">§</a><h3 class="code-header">impl <a class="trait [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/struct.RpCreateDir.html b/docs/rust/opendal/raw/struct.RpCreateDir.html
index 9898230b7d..41b2f7c5ed 100644
--- a/docs/rust/opendal/raw/struct.RpCreateDir.html
+++ b/docs/rust/opendal/raw/struct.RpCreateDir.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `create_dir` operation"><title>RpCreateDir in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `create_dir` operation"><title>RpCreateDir in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RpCreateDir" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#24">source</a><a href="#impl-Clone-for-RpCreateDir" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
diff --git a/docs/rust/opendal/raw/struct.RpDelete.html b/docs/rust/opendal/raw/struct.RpDelete.html
index 57e557914f..35441fdcd2 100644
--- a/docs/rust/opendal/raw/struct.RpDelete.html
+++ b/docs/rust/opendal/raw/struct.RpDelete.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `delete` operation"><title>RpDelete in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `delete` operation"><title>RpDelete in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RpDelete" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#28">source</a><a href="#impl-Clone-for-RpDelete" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
diff --git a/docs/rust/opendal/raw/struct.RpList.html b/docs/rust/opendal/raw/struct.RpList.html
index 3bacd71edb..7af9a3682b 100644
--- a/docs/rust/opendal/raw/struct.RpList.html
+++ b/docs/rust/opendal/raw/struct.RpList.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `list` operation."><title>RpList in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `list` operation."><title>RpList in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RpList" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#32">source</a><a href="#impl-Clone-for-RpList" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rus [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
diff --git a/docs/rust/opendal/raw/struct.RpPresign.html b/docs/rust/opendal/raw/struct.RpPresign.html
index 12c4801685..8c114d86e1 100644
--- a/docs/rust/opendal/raw/struct.RpPresign.html
+++ b/docs/rust/opendal/raw/struct.RpPresign.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `presign` operation."><title>RpPresign in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `presign` operation."><title>RpPresign in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpPresign" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#41-51">source</a><a href="#impl-RpPresign" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpPresign.html" title="struct opendal::raw [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_presigned_request" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#48-50">source</a><h4 class="code-header">pub fn <a href="#method.into_presigned_request" class="fn">into_presigned_request</a>(self) -> <a class="struct" href="struct.PresignedRequest.html" title="struct opendal::raw::PresignedRequest">PresignedRequest</a></h4></section></summary><div class="docb [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RpPresign" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#36">source</a><a href="#impl-Clone-for-RpPresign" class="anchor">§</a><h3 class="code-header">impl <a class=" [...]
diff --git a/docs/rust/opendal/raw/struct.RpRead.html b/docs/rust/opendal/raw/struct.RpRead.html
index 8f5cac2115..e0bf455242 100644
--- a/docs/rust/opendal/raw/struct.RpRead.html
+++ b/docs/rust/opendal/raw/struct.RpRead.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `read` operation."><title>RpRead in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `read` operation."><title>RpRead in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpRead" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#121-154">source</a><a href="#impl-RpRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpRead.html" title="struct opendal::raw::RpRea [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#131-133">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive [...]
<ul>
diff --git a/docs/rust/opendal/raw/struct.RpRename.html b/docs/rust/opendal/raw/struct.RpRename.html
index 44ca973bae..ad7a826510 100644
--- a/docs/rust/opendal/raw/struct.RpRename.html
+++ b/docs/rust/opendal/raw/struct.RpRename.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `rename` operation."><title>RpRename in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `rename` operation."><title>RpRename in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpRename" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#240-245">source</a><a href="#impl-RpRename" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpRename.html" title="struct opendal::raw: [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RpRename" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#237">source</a><a href="#impl-Clone-for-RpRename" class="anchor">§</a><h3 class="code-header">impl <a class="t [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/struct.RpStat.html b/docs/rust/opendal/raw/struct.RpStat.html
index 29af791f10..6e58a57557 100644
--- a/docs/rust/opendal/raw/struct.RpStat.html
+++ b/docs/rust/opendal/raw/struct.RpStat.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `stat` operation."><title>RpStat in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `stat` operation."><title>RpStat in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpStat" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#196-212">source</a><a href="#impl-RpStat" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpStat.html" title="struct opendal::raw::RpSta [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.map_metadata" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#203-206">source</a><h4 class="code-header">pub fn <a href="#method.map_metadata" class="fn">map_metadata</a>(self, f: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="struct" href="../struct.Metada [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.into_metadata" class="method"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#209-211">source</a><h4 class="code-header">pub fn <a href="#method.into_metadata" class="fn">into_metadata</a>(self) -> <a class="struct" href="../struct.Metadata.html" title="struct opendal::Metadata">Metadata</a></h4></section></summary><div class="docblock"><p>Consume RpStat to get the inner metadata.</p>
diff --git a/docs/rust/opendal/raw/struct.RpWrite.html b/docs/rust/opendal/raw/struct.RpWrite.html
index f47406a4d7..e6a34260a2 100644
--- a/docs/rust/opendal/raw/struct.RpWrite.html
+++ b/docs/rust/opendal/raw/struct.RpWrite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `write` operation."><title>RpWrite in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reply for `write` operation."><title>RpWrite in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RpWrite" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#218-223">source</a><a href="#impl-RpWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.RpWrite.html" title="struct opendal::raw::Rp [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RpWrite" class="impl"><a class="src rightside" href="../../src/opendal/raw/rps.rs.html#215">source</a><a href="#impl-Clone-for-RpWrite" class="anchor">§</a><h3 class="code-header">impl <a class="tra [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/raw/tests/enum.ReadAction.html b/docs/rust/opendal/raw/tests/enum.ReadAction.html
index 41065f95e5..0e94a0a96b 100644
--- a/docs/rust/opendal/raw/tests/enum.ReadAction.html
+++ b/docs/rust/opendal/raw/tests/enum.ReadAction.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ReadAction represents a read action."><title>ReadAction in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ReadAction represents a read action."><title>ReadAction in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
Read(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>),
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>tests</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>ReadAction represents a read action.</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h3></section><div class="docblock"><p> [...]
diff --git a/docs/rust/opendal/raw/tests/enum.WriteAction.html b/docs/rust/opendal/raw/tests/enum.WriteAction.html
index 15a073bb1c..59a66b51e5 100644
--- a/docs/rust/opendal/raw/tests/enum.WriteAction.html
+++ b/docs/rust/opendal/raw/tests/enum.WriteAction.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="WriteAction represents a read action."><title>WriteAction in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="WriteAction represents a read action."><title>WriteAction in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
Write(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>),
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>tests</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>WriteAction represents a read action.</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h3></section><div class="docblock"><p>Write represents a write action with given input buf size.</p>
diff --git a/docs/rust/opendal/raw/tests/fn.init_test_service.html b/docs/rust/opendal/raw/tests/fn.init_test_service.html
index d9687f5b71..efb660a6a6 100644
--- a/docs/rust/opendal/raw/tests/fn.init_test_service.html
+++ b/docs/rust/opendal/raw/tests/fn.init_test_service.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Init a service with given scheme."><title>init_test_service in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Init a service with given scheme."><title>init_test_service in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
<ul>
<li>Load scheme from <code>OPENDAL_TEST</code></li>
<li>Construct a new Operator with given root.</li>
diff --git a/docs/rust/opendal/raw/tests/index.html b/docs/rust/opendal/raw/tests/index.html
index 7ec264f6d1..ad3827514f 100644
--- a/docs/rust/opendal/raw/tests/index.html
+++ b/docs/rust/opendal/raw/tests/index.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Utilities for opendal testing."><title>opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Utilities for opendal testing."><title>opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.ReadChecker.html" title="struct opendal::raw::tests::ReadChecker">ReadChecker</a></div><div class="desc docblock-short">ReadChecker is used to check the correctness of the read process.</div></li><li><div class="item-name"><a class="struct" href="struct.WriteChecker.html" title="struct opendal::raw::tes [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/tests/static.TEST_RUNTIME.html b/docs/rust/opendal/raw/tests/static.TEST_RUNTIME.html
index 1ab879b4e8..99a804f9a6 100644
--- a/docs/rust/opendal/raw/tests/static.TEST_RUNTIME.html
+++ b/docs/rust/opendal/raw/tests/static.TEST_RUNTIME.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TEST_RUNTIME is the runtime used for running tests."><title>TEST_RUNTIME in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TEST_RUNTIME is the runtime used for running tests."><title>TEST_RUNTIME in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff [...]
</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/tests/struct.ReadChecker.html b/docs/rust/opendal/raw/tests/struct.ReadChecker.html
index 21484eed4d..bcdcf49f1c 100644
--- a/docs/rust/opendal/raw/tests/struct.ReadChecker.html
+++ b/docs/rust/opendal/raw/tests/struct.ReadChecker.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ReadChecker is used to check the correctness of the read process."><title>ReadChecker in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141b [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="ReadChecker is used to check the correctness of the read process."><title>ReadChecker in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141b [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ReadChecker" class="impl"><a class="src rightside" href="../../../src/opendal/raw/tests/read.rs.html#43-132">source</a><a href="#impl-ReadChecker" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ReadChecker.html" title="st [...]
<p>It’s by design that we use a random generator to generate the raw data. The content of data
is not important, we only care about the correctness of the read process.</p>
diff --git a/docs/rust/opendal/raw/tests/struct.WriteChecker.html b/docs/rust/opendal/raw/tests/struct.WriteChecker.html
index eaafd57ef9..bc73d38192 100644
--- a/docs/rust/opendal/raw/tests/struct.WriteChecker.html
+++ b/docs/rust/opendal/raw/tests/struct.WriteChecker.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="WriteAction is used to check the correctness of the write process."><title>WriteChecker in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="WriteAction is used to check the correctness of the write process."><title>WriteChecker in opendal::raw::tests - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-WriteChecker" class="impl"><a class="src rightside" href="../../../src/opendal/raw/tests/write.rs.html#42-79">source</a><a href="#impl-WriteChecker" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.WriteChecker.html" title= [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.chunks" class="method"><a class="src rightside" href="../../../src/opendal/raw/tests/write.rs.html#67-69">source</a><h4 class="code-header">pub fn <a href="#method.chunks" class="fn">chunks</a>(&self) -> &[Bytes]</h4></section></summary><div class="docblock"><p>Get the check’s chunks.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.check" class="method"><a class="src rightside" href="../../../src/opendal/raw/tests/write.rs.html#72-78">source</a><h4 class="code-header">pub fn <a href="#method.check" class="fn">check</a>(&self, actual: &[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>])</h4></section></summary><div class="docblock"><p>Check the correctness of the write process.</p>
diff --git a/docs/rust/opendal/raw/trait.Access.html b/docs/rust/opendal/raw/trait.Access.html
index 13ba59d271..f0ea3a68f8 100644
--- a/docs/rust/opendal/raw/trait.Access.html
+++ b/docs/rust/opendal/raw/trait.Access.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Underlying trait of all backends for implementers."><title>Access in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Underlying trait of all backends for implementers."><title>Access in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Med [...]
type <a href="#associatedtype.Reader" class="associatedtype">Reader</a>: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>;
type <a href="#associatedtype.Writer" class="associatedtype">Writer</a>: <a class="trait" href="oio/trait.Write.html" title="trait opendal::raw::oio::Write">Write</a>;
type <a href="#associatedtype.Lister" class="associatedtype">Lister</a>: <a class="trait" href="oio/trait.List.html" title="trait opendal::raw::oio::List">List</a>;
@@ -361,4 +361,4 @@ written size if operate successful.</p>
from: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
to: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
args: <a class="struct" href="struct.OpRename.html" title="struct opendal::raw::OpRename">OpRename</a>
-) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-dyn+AccessDyn" class="impl"><a class="src rightside [...]
\ No newline at end of file
+) -> <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="struct.RpRename.html" title="struct opendal::raw::RpRename">RpRename</a>></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Access-for-dyn+AccessDyn" class="impl"><a class="src rightside [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/trait.AccessDyn.html b/docs/rust/opendal/raw/trait.AccessDyn.html
index 83f03be4ca..045457cbcc 100644
--- a/docs/rust/opendal/raw/trait.AccessDyn.html
+++ b/docs/rust/opendal/raw/trait.AccessDyn.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`AccessDyn` is the dyn version of `Access` make it possible to use as `Box<dyn AccessDyn>`."><title>AccessDyn in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,Fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`AccessDyn` is the dyn version of `Access` make it possible to use as `Box<dyn AccessDyn>`."><title>AccessDyn in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,Fi [...]
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 19 methods</span></summary> // Required methods
fn <a href="#tymethod.info_dyn" class="fn">info_dyn</a>(&self) -> <a class="struct" href="struct.AccessorInfo.html" title="struct opendal::raw::AccessorInfo">AccessorInfo</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.create_dir_dyn" class="fn">create_dir_dyn</a><'a>(
diff --git a/docs/rust/opendal/raw/trait.Layer.html b/docs/rust/opendal/raw/trait.Layer.html
index c022065ebb..b04a04dcda 100644
--- a/docs/rust/opendal/raw/trait.Layer.html
+++ b/docs/rust/opendal/raw/trait.Layer.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Layer is used to intercept the operations on the underlying storage."><title>Layer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Layer is used to intercept the operations on the underlying storage."><title>Layer in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
type <a href="#associatedtype.LayeredAccess" class="associatedtype">LayeredAccess</a>: <a class="trait" href="trait.Access.html" title="trait opendal::raw::Access">Access</a>;
// Required method
diff --git a/docs/rust/opendal/raw/trait.LayeredAccess.html b/docs/rust/opendal/raw/trait.LayeredAccess.html
index e5fee69831..95ccad8c84 100644
--- a/docs/rust/opendal/raw/trait.LayeredAccess.html
+++ b/docs/rust/opendal/raw/trait.LayeredAccess.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="LayeredAccess is layered accessor that forward all not implemented method to inner."><title>LayeredAccess in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Reg [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="LayeredAccess is layered accessor that forward all not implemented method to inner."><title>LayeredAccess in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Reg [...]
type <a href="#associatedtype.Inner" class="associatedtype">Inner</a>: <a class="trait" href="trait.Access.html" title="trait opendal::raw::Access">Access</a>;
type <a href="#associatedtype.Reader" class="associatedtype">Reader</a>: <a class="trait" href="oio/trait.Read.html" title="trait opendal::raw::oio::Read">Read</a>;
type <a href="#associatedtype.BlockingReader" class="associatedtype">BlockingReader</a>: <a class="trait" href="oio/trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>;
diff --git a/docs/rust/opendal/raw/trait.MaybeSend.html b/docs/rust/opendal/raw/trait.MaybeSend.html
index e63b1c3e77..3aa3307059 100644
--- a/docs/rust/opendal/raw/trait.MaybeSend.html
+++ b/docs/rust/opendal/raw/trait.MaybeSend.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MaybeSend is a marker to determine whether a type is `Send` or not. We use this trait to wrap the `Send` requirement for wasm32 target."><title>MaybeSend in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="MaybeSend is a marker to determine whether a type is `Send` or not. We use this trait to wrap the `Send` requirement for wasm32 target."><title>MaybeSend in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4 [...]
We use this trait to wrap the <code>Send</code> requirement for wasm32 target.</p>
<h2 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h2>
<p>MaybeSend equivalent to <code>Send</code> on non-wasm32 target. And it’s empty
diff --git a/docs/rust/opendal/raw/trait.Part.html b/docs/rust/opendal/raw/trait.Part.html
index 33b87d1c3f..499664233d 100644
--- a/docs/rust/opendal/raw/trait.Part.html
+++ b/docs/rust/opendal/raw/trait.Part.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Part is a trait for multipart part."><title>Part in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Part is a trait for multipart part."><title>Part in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
const <a href="#associatedconstant.TYPE" class="constant">TYPE</a>: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>;
// Required methods
diff --git a/docs/rust/opendal/raw/trait.PathQuery.html b/docs/rust/opendal/raw/trait.PathQuery.html
index aad4ff1c0a..7f9d72e4d2 100644
--- a/docs/rust/opendal/raw/trait.PathQuery.html
+++ b/docs/rust/opendal/raw/trait.PathQuery.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The trait required for path cacher."><title>PathQuery in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The trait required for path cacher."><title>PathQuery in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
// Required methods
fn <a href="#tymethod.root" class="fn">root</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a><Output = <a class="type" href="../type.Result.html" title="type opendal::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>> + <a class="trait" href= [...]
<span class="item-spacer"></span> fn <a href="#tymethod.query" class="fn">query</a>(
diff --git a/docs/rust/opendal/raw/type.Accessor.html b/docs/rust/opendal/raw/type.Accessor.html
index 49197895b4..caa408351c 100644
--- a/docs/rust/opendal/raw/type.Accessor.html
+++ b/docs/rust/opendal/raw/type.Accessor.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Accessor is the type erased accessor with `Arc<dyn Accessor>`."><title>Accessor in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Accessor is the type erased accessor with `Arc<dyn Accessor>`."><title>Accessor in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ff [...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct Accessor { <span class="comment">/* private fields */</span> }</code></pre><script src="../../type.impl/alloc/sync/struct.Arc.js" data-self-path="opendal::raw::accessor::Accessor" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/type.BoxedFuture.html b/docs/rust/opendal/raw/type.BoxedFuture.html
index b32f69aa31..efc2a59890 100644
--- a/docs/rust/opendal/raw/type.BoxedFuture.html
+++ b/docs/rust/opendal/raw/type.BoxedFuture.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BoxedFuture is the type alias of `futures::future::BoxFuture`."><title>BoxedFuture in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BoxedFuture is the type alias of `futures::future::BoxFuture`."><title>BoxedFuture in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.w [...]
<p>We will switch to [<code>futures::future::LocalBoxFuture</code>] on wasm32 target.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct BoxedFuture<'a, T> { <span class="comment">/* private fields */</span> }</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/type.BoxedStaticFuture.html b/docs/rust/opendal/raw/type.BoxedStaticFuture.html
index 9267fd947e..f16401a4a2 100644
--- a/docs/rust/opendal/raw/type.BoxedStaticFuture.html
+++ b/docs/rust/opendal/raw/type.BoxedStaticFuture.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BoxedStaticFuture is the type alias of `futures::future::BoxFuture`."><title>BoxedStaticFuture in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BoxedStaticFuture is the type alias of `futures::future::BoxFuture`."><title>BoxedStaticFuture in opendal::raw - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c14 [...]
<p>We will switch to [<code>futures::future::LocalBoxFuture</code>] on wasm32 target.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>struct BoxedStaticFuture<T> { <span class="comment">/* private fields */</span> }</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/services/index.html b/docs/rust/opendal/services/index.html
index f0c607364c..19d693b410 100644
--- a/docs/rust/opendal/services/index.html
+++ b/docs/rust/opendal/services/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Services will provide builders to build underlying backends."><title>opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Services will provide builders to build underlying backends."><title>opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
<p>More ongoing services support is tracked at <a href="https://github.com/apache/opendal/issues/5">opendal#5</a>. Please feel free to submit issues if there are services not covered.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.AliyunDrive.html" title="struct opendal::services::AliyunDrive">AliyunDrive</a><span class="stab portability" title="Available on crate feature `services-aliyun-drive` only"><code>services-aliyun-drive</code></span></div><div class="desc docblock-short">Capabilities</div></li><li><div class="item-name"> [...]
Config for Atomicserver services support</div></li><li><div class="item-name"><a class="struct" href="struct.Azblob.html" title="struct opendal::services::Azblob">Azblob</a><span class="stab portability" title="Available on crate feature `services-azblob` only"><code>services-azblob</code></span></div><div class="desc docblock-short">Capabilities</div></li><li><div class="item-name"><a class="struct" href="struct.AzblobConfig.html" title="struct opendal::services::AzblobConfig">AzblobCon [...]
diff --git a/docs/rust/opendal/services/struct.AliyunDrive.html b/docs/rust/opendal/services/struct.AliyunDrive.html
index c2aa21999d..7959a12ea4 100644
--- a/docs/rust/opendal/services/struct.AliyunDrive.html
+++ b/docs/rust/opendal/services/struct.AliyunDrive.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>AliyunDrive in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,S [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>AliyunDrive in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,S [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.AliyunDriveConfig.html b/docs/rust/opendal/services/struct.AliyunDriveConfig.html
index 1a98eba690..de21f60853 100644
--- a/docs/rust/opendal/services/struct.AliyunDriveConfig.html
+++ b/docs/rust/opendal/services/struct.AliyunDriveConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aliyun Drive services support."><title>AliyunDriveConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aliyun Drive services support."><title>AliyunDriveConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub access_token: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub client_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Alluxio.html b/docs/rust/opendal/services/struct.Alluxio.html
index 01af38e6fc..b6c5e76f1c 100644
--- a/docs/rust/opendal/services/struct.Alluxio.html
+++ b/docs/rust/opendal/services/struct.Alluxio.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Alluxio services support."><title>Alluxio in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Alluxio services support."><title>Alluxio in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.AlluxioConfig.html b/docs/rust/opendal/services/struct.AlluxioConfig.html
index ceb6843bdc..25e13e8df1 100644
--- a/docs/rust/opendal/services/struct.AlluxioConfig.html
+++ b/docs/rust/opendal/services/struct.AlluxioConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for alluxio services support."><title>AlluxioConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for alluxio services support."><title>AlluxioConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>services-alluxio</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Config for alluxio services support.</p>
diff --git a/docs/rust/opendal/services/struct.Atomicserver.html b/docs/rust/opendal/services/struct.Atomicserver.html
index 2edf34f1db..b0e495b3d6 100644
--- a/docs/rust/opendal/services/struct.Atomicserver.html
+++ b/docs/rust/opendal/services/struct.Atomicserver.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Atomicserver in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Atomicserver in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.AtomicserverConfig.html b/docs/rust/opendal/services/struct.AtomicserverConfig.html
index 2eb1d8343e..2ee811e092 100644
--- a/docs/rust/opendal/services/struct.AtomicserverConfig.html
+++ b/docs/rust/opendal/services/struct.AtomicserverConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Atomicserver service support. Config for Atomicserver services support"><title>AtomicserverConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regula [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Atomicserver service support. Config for Atomicserver services support"><title>AtomicserverConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regula [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub private_key: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Azblob.html b/docs/rust/opendal/services/struct.Azblob.html
index 1f81858893..8b1007c1a9 100644
--- a/docs/rust/opendal/services/struct.Azblob.html
+++ b/docs/rust/opendal/services/struct.Azblob.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Azblob in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Azblob in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.AzblobConfig.html b/docs/rust/opendal/services/struct.AzblobConfig.html
index a978eab9e3..2c373986e3 100644
--- a/docs/rust/opendal/services/struct.AzblobConfig.html
+++ b/docs/rust/opendal/services/struct.AzblobConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Azure Storage Blob services support."><title>AzblobConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Azure Storage Blob services support."><title>AzblobConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub container: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Azdls.html b/docs/rust/opendal/services/struct.Azdls.html
index a60c937530..fec0fd596a 100644
--- a/docs/rust/opendal/services/struct.Azdls.html
+++ b/docs/rust/opendal/services/struct.Azdls.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Azure Data Lake Storage Gen2 Support. As known as `abfs`, `azdls` or `azdls`."><title>Azdls in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Azure Data Lake Storage Gen2 Support. As known as `abfs`, `azdls` or `azdls`."><title>Azdls in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c [...]
As known as <code>abfs</code>, <code>azdls</code> or <code>azdls</code>.</p>
<p>This service will visit the <a href="https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-abfs-driver">ABFS</a> URI supported by <a href="https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-introduction">Azure Data Lake Storage Gen2</a>.</p>
<h3 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h3>
diff --git a/docs/rust/opendal/services/struct.Azfile.html b/docs/rust/opendal/services/struct.Azfile.html
index 4859377ebd..badb9eff5d 100644
--- a/docs/rust/opendal/services/struct.Azfile.html
+++ b/docs/rust/opendal/services/struct.Azfile.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Azure File services support."><title>Azfile in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Azure File services support."><title>Azfile in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.B2.html b/docs/rust/opendal/services/struct.B2.html
index fbf2a8404a..708aa709ad 100644
--- a/docs/rust/opendal/services/struct.B2.html
+++ b/docs/rust/opendal/services/struct.B2.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="b2 services support."><title>B2 in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,So [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="b2 services support."><title>B2 in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,So [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.B2Config.html b/docs/rust/opendal/services/struct.B2Config.html
index a6db27a52f..992592bca5 100644
--- a/docs/rust/opendal/services/struct.B2Config.html
+++ b/docs/rust/opendal/services/struct.B2Config.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze b2 services support."><title>B2Config in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze b2 services support."><title>B2Config in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub application_key_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub application_key: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Cacache.html b/docs/rust/opendal/services/struct.Cacache.html
index d0a90f6a8e..7185454c94 100644
--- a/docs/rust/opendal/services/struct.Cacache.html
+++ b/docs/rust/opendal/services/struct.Cacache.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="cacache service support."><title>Cacache in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="cacache service support."><title>Cacache in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Chainsafe.html b/docs/rust/opendal/services/struct.Chainsafe.html
index b039a6966e..7a0383d965 100644
--- a/docs/rust/opendal/services/struct.Chainsafe.html
+++ b/docs/rust/opendal/services/struct.Chainsafe.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="chainsafe services support."><title>Chainsafe in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="chainsafe services support."><title>Chainsafe in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.ChainsafeConfig.html b/docs/rust/opendal/services/struct.ChainsafeConfig.html
index 401ad02ecf..b18ac11a41 100644
--- a/docs/rust/opendal/services/struct.ChainsafeConfig.html
+++ b/docs/rust/opendal/services/struct.ChainsafeConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Chainsafe services support."><title>ChainsafeConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Chainsafe services support."><title>ChainsafeConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub api_key: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub bucket_id: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
diff --git a/docs/rust/opendal/services/struct.CloudflareKv.html b/docs/rust/opendal/services/struct.CloudflareKv.html
index 64390cda64..2621f81931 100644
--- a/docs/rust/opendal/services/struct.CloudflareKv.html
+++ b/docs/rust/opendal/services/struct.CloudflareKv.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>CloudflareKv in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>CloudflareKv in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.Compfs.html b/docs/rust/opendal/services/struct.Compfs.html
index 5cf527eac3..91487c8184 100644
--- a/docs/rust/opendal/services/struct.Compfs.html
+++ b/docs/rust/opendal/services/struct.Compfs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`compio`-based file system support."><title>Compfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`compio`-based file system support."><title>Compfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-CompfsBuilder" class="impl"><a class="src rightside" href="../../src/opendal/services/compfs/backend.rs.html#31-42">source</a><a href="#impl-CompfsBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Compfs.html" title [...]
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Builder-for-CompfsBuilder" class="impl"><a class="src rightside" href="../../src/opendal/services/compfs/backend.rs.html#44-59">source</a><a href="#impl-Builder-for-CompfsBuilder" class="anchor">§</a><h3 clas [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/docs/rust/opendal/services/struct.Cos.html b/docs/rust/opendal/services/struct.Cos.html
index 27ca104c7c..49792757e6 100644
--- a/docs/rust/opendal/services/struct.Cos.html
+++ b/docs/rust/opendal/services/struct.Cos.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Tencent-Cloud COS services support."><title>Cos in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Tencent-Cloud COS services support."><title>Cos in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.D1.html b/docs/rust/opendal/services/struct.D1.html
index 87f4b22945..33be10be98 100644
--- a/docs/rust/opendal/services/struct.D1.html
+++ b/docs/rust/opendal/services/struct.D1.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>D1 in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCode [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>D1 in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCode [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.D1Config.html b/docs/rust/opendal/services/struct.D1Config.html
index f14abd1789..7d16aad9db 100644
--- a/docs/rust/opendal/services/struct.D1Config.html
+++ b/docs/rust/opendal/services/struct.D1Config.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Cloudflare D1 backend support."><title>D1Config in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Cloudflare D1 backend support."><title>D1Config in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
pub token: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub account_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub database_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Dashmap.html b/docs/rust/opendal/services/struct.Dashmap.html
index 628693dead..0a98cbad3b 100644
--- a/docs/rust/opendal/services/struct.Dashmap.html
+++ b/docs/rust/opendal/services/struct.Dashmap.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="dashmap backend support."><title>Dashmap in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="dashmap backend support."><title>Dashmap in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Dbfs.html b/docs/rust/opendal/services/struct.Dbfs.html
index a1bf2c9050..567f316020 100644
--- a/docs/rust/opendal/services/struct.Dbfs.html
+++ b/docs/rust/opendal/services/struct.Dbfs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Dbfs’s REST API support. This service will visit the DBFS API supported by Databricks File System."><title>Dbfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,F [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Dbfs’s REST API support. This service will visit the DBFS API supported by Databricks File System."><title>Dbfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,F [...]
This service will visit the <a href="https://docs.databricks.com/api/azure/workspace/dbfs">DBFS API</a> supported by <a href="https://docs.databricks.com/en/dbfs/index.html">Databricks File System</a>.</p>
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
diff --git a/docs/rust/opendal/services/struct.Dropbox.html b/docs/rust/opendal/services/struct.Dropbox.html
index 164db4a432..c74dd2518f 100644
--- a/docs/rust/opendal/services/struct.Dropbox.html
+++ b/docs/rust/opendal/services/struct.Dropbox.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Dropbox backend support."><title>Dropbox in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Dropbox backend support."><title>Dropbox in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.DropboxConfig.html b/docs/rust/opendal/services/struct.DropboxConfig.html
index 49e806fd34..261964ec3b 100644
--- a/docs/rust/opendal/services/struct.DropboxConfig.html
+++ b/docs/rust/opendal/services/struct.DropboxConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Dropbox backend support."><title>DropboxConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Dropbox backend support."><title>DropboxConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub access_token: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub refresh_token: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Etcd.html b/docs/rust/opendal/services/struct.Etcd.html
index 69c1c6dfc8..b2ca6dc298 100644
--- a/docs/rust/opendal/services/struct.Etcd.html
+++ b/docs/rust/opendal/services/struct.Etcd.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Etcd services support."><title>Etcd in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Etcd services support."><title>Etcd in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.EtcdConfig.html b/docs/rust/opendal/services/struct.EtcdConfig.html
index f57e67fd51..fef3e9e9e9 100644
--- a/docs/rust/opendal/services/struct.EtcdConfig.html
+++ b/docs/rust/opendal/services/struct.EtcdConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Etcd services support."><title>EtcdConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Etcd services support."><title>EtcdConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
pub endpoints: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub username: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub password: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.FoundationConfig.html b/docs/rust/opendal/services/struct.FoundationConfig.html
index 795a7168e0..20ffa47882 100644
--- a/docs/rust/opendal/services/struct.FoundationConfig.html
+++ b/docs/rust/opendal/services/struct.FoundationConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="foundationdb service support. Config for FoundationDB."><title>FoundationConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="foundationdb service support. Config for FoundationDB."><title>FoundationConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub config_path: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>services-foundationdb</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><a href="https://www.foundationdb.org/">foundationdb</a> service support.
diff --git a/docs/rust/opendal/services/struct.Foundationdb.html b/docs/rust/opendal/services/struct.Foundationdb.html
index 23cdf70435..f398e7f079 100644
--- a/docs/rust/opendal/services/struct.Foundationdb.html
+++ b/docs/rust/opendal/services/struct.Foundationdb.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Foundationdb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Foundationdb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.Fs.html b/docs/rust/opendal/services/struct.Fs.html
index 1c0cd89f23..323ba8bb85 100644
--- a/docs/rust/opendal/services/struct.Fs.html
+++ b/docs/rust/opendal/services/struct.Fs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="POSIX file system support."><title>Fs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="POSIX file system support."><title>Fs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Ftp.html b/docs/rust/opendal/services/struct.Ftp.html
index c5b872a694..01bd6065a7 100644
--- a/docs/rust/opendal/services/struct.Ftp.html
+++ b/docs/rust/opendal/services/struct.Ftp.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FTP and FTPS services support."><title>Ftp in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FTP and FTPS services support."><title>Ftp in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.FtpConfig.html b/docs/rust/opendal/services/struct.FtpConfig.html
index 300a7a10e9..315879f3e0 100644
--- a/docs/rust/opendal/services/struct.FtpConfig.html
+++ b/docs/rust/opendal/services/struct.FtpConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Ftpservices support."><title>FtpConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Ftpservices support."><title>FtpConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub user: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Gcs.html b/docs/rust/opendal/services/struct.Gcs.html
index 555caa6069..93a59ee225 100644
--- a/docs/rust/opendal/services/struct.Gcs.html
+++ b/docs/rust/opendal/services/struct.Gcs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Google Cloud Storage services support."><title>Gcs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Google Cloud Storage services support."><title>Gcs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.GcsConfig.html b/docs/rust/opendal/services/struct.GcsConfig.html
index 0a98c0a9a0..754e41a300 100644
--- a/docs/rust/opendal/services/struct.GcsConfig.html
+++ b/docs/rust/opendal/services/struct.GcsConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Google Cloud Storage services support."><title>GcsConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Google Cloud Storage services support."><title>GcsConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-GcsConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/gcs/backend.rs.html#71-80">source</a><a href="#impl-Debug-for-GcsConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" [...]
<a class="struct" href="struct.GcsConfig.html" title="struct opendal::services::GcsConfig">GcsConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/gcs/backend.rs.html [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.Gdrive.html b/docs/rust/opendal/services/struct.Gdrive.html
index 6b845c645b..fa45dde343 100644
--- a/docs/rust/opendal/services/struct.Gdrive.html
+++ b/docs/rust/opendal/services/struct.Gdrive.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="GoogleDrive backend support."><title>Gdrive in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="GoogleDrive backend support."><title>Gdrive in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Ghac.html b/docs/rust/opendal/services/struct.Ghac.html
index ae8186a8eb..ed9cb0a99b 100644
--- a/docs/rust/opendal/services/struct.Ghac.html
+++ b/docs/rust/opendal/services/struct.Ghac.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="GitHub Action Cache Services support."><title>Ghac in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="GitHub Action Cache Services support."><title>Ghac in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Github.html b/docs/rust/opendal/services/struct.Github.html
index 3b67fbbeae..1aab4557a7 100644
--- a/docs/rust/opendal/services/struct.Github.html
+++ b/docs/rust/opendal/services/struct.Github.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="github contents services support."><title>Github in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="github contents services support."><title>Github in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.GithubConfig.html b/docs/rust/opendal/services/struct.GithubConfig.html
index 9beb92122d..e9defb6805 100644
--- a/docs/rust/opendal/services/struct.GithubConfig.html
+++ b/docs/rust/opendal/services/struct.GithubConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Github services support."><title>GithubConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Github services support."><title>GithubConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub token: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub owner: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
diff --git a/docs/rust/opendal/services/struct.Gridfs.html b/docs/rust/opendal/services/struct.Gridfs.html
index ccd7d1bca3..3545be1804 100644
--- a/docs/rust/opendal/services/struct.Gridfs.html
+++ b/docs/rust/opendal/services/struct.Gridfs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Gridfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Gridfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.Hdfs.html b/docs/rust/opendal/services/struct.Hdfs.html
index 3afa7573c8..c40d807088 100644
--- a/docs/rust/opendal/services/struct.Hdfs.html
+++ b/docs/rust/opendal/services/struct.Hdfs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A distributed file system that provides high-throughput access to application data."><title>Hdfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A distributed file system that provides high-throughput access to application data."><title>Hdfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.HdfsConfig.html b/docs/rust/opendal/services/struct.HdfsConfig.html
index aa5f6647d3..3ed22df626 100644
--- a/docs/rust/opendal/services/struct.HdfsConfig.html
+++ b/docs/rust/opendal/services/struct.HdfsConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Hadoop Distributed File System (HDFS™) support."><title>HdfsConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Hadoop Distributed File System (HDFS™) support."><title>HdfsConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub name_node: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub kerberos_ticket_cache_path: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.HdfsNative.html b/docs/rust/opendal/services/struct.HdfsNative.html
index e1243ef188..df53b9633d 100644
--- a/docs/rust/opendal/services/struct.HdfsNative.html
+++ b/docs/rust/opendal/services/struct.HdfsNative.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A distributed file system that provides high-throughput access to application data. Using Native Rust HDFS client."><title>HdfsNative in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A distributed file system that provides high-throughput access to application data. Using Native Rust HDFS client."><title>HdfsNative in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e [...]
Using <a href="https://github.com/Kimahriman/hdfs-native">Native Rust HDFS client</a>.</p>
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
diff --git a/docs/rust/opendal/services/struct.HdfsNativeConfig.html b/docs/rust/opendal/services/struct.HdfsNativeConfig.html
index 3da5cd0a7c..6b3cdb1351 100644
--- a/docs/rust/opendal/services/struct.HdfsNativeConfig.html
+++ b/docs/rust/opendal/services/struct.HdfsNativeConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Hadoop Distributed File System (HDFS™) support. Using Native Rust HDFS client. Config for HdfsNative services support."><title>HdfsNativeConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Hadoop Distributed File System (HDFS™) support. Using Native Rust HDFS client. Config for HdfsNative services support."><title>HdfsNativeConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regu [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub url: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub enable_append: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
diff --git a/docs/rust/opendal/services/struct.Http.html b/docs/rust/opendal/services/struct.Http.html
index 9ae79fc925..f2a479ac3d 100644
--- a/docs/rust/opendal/services/struct.Http.html
+++ b/docs/rust/opendal/services/struct.Http.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HTTP Read-only service support like Nginx and Caddy."><title>Http in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HTTP Read-only service support like Nginx and Caddy."><title>Http in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.HttpConfig.html b/docs/rust/opendal/services/struct.HttpConfig.html
index 2addee2ee6..54ef01d184 100644
--- a/docs/rust/opendal/services/struct.HttpConfig.html
+++ b/docs/rust/opendal/services/struct.HttpConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Http service support."><title>HttpConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Http service support."><title>HttpConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub username: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub password: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Huggingface.html b/docs/rust/opendal/services/struct.Huggingface.html
index e6834a0774..872103db73 100644
--- a/docs/rust/opendal/services/struct.Huggingface.html
+++ b/docs/rust/opendal/services/struct.Huggingface.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Huggingface’s API support. This service will visit the Huggingface API to access the Huggingface File System. Currently, we only support the `model` and `dataset` types of repositories, and operations are limited to reading and listing/stating."><title>Huggingface in opendal::services - [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Huggingface’s API support. This service will visit the Huggingface API to access the Huggingface File System. Currently, we only support the `model` and `dataset` types of repositories, and operations are limited to reading and listing/stating."><title>Huggingface in opendal::services - [...]
This service will visit the <a href="https://huggingface.co/docs/huggingface_hub/package_reference/hf_api">Huggingface API</a> to access the Huggingface File System.
Currently, we only support the <code>model</code> and <code>dataset</code> types of repositories, and operations are limited to reading and listing/stating.</p>
<p>Huggingface doesn’t host official HTTP API docs. Detailed HTTP request API information can be found on the <a href="https://github.com/huggingface/huggingface_hub"><code>huggingface_hub</code> Source Code</a>.</p>
diff --git a/docs/rust/opendal/services/struct.HuggingfaceConfig.html b/docs/rust/opendal/services/struct.HuggingfaceConfig.html
index 9f7b127d50..9d1a2e86b1 100644
--- a/docs/rust/opendal/services/struct.HuggingfaceConfig.html
+++ b/docs/rust/opendal/services/struct.HuggingfaceConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Configuration for Huggingface service support."><title>HuggingfaceConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Configuration for Huggingface service support."><title>HuggingfaceConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2, [...]
pub repo_type: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub repo_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub revision: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Icloud.html b/docs/rust/opendal/services/struct.Icloud.html
index 21a5d22a4c..2b9907b38d 100644
--- a/docs/rust/opendal/services/struct.Icloud.html
+++ b/docs/rust/opendal/services/struct.Icloud.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="IcloudDrive service support."><title>Icloud in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="IcloudDrive service support."><title>Icloud in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
pub config: IcloudConfig,
pub http_client: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../raw/struct.HttpClient.html" title="struct opendal::raw::HttpClient">HttpClient</a>>,
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>services-icloud</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><a href="https://www.icloud.com/iclouddrive/">IcloudDrive</a> service support.</p>
diff --git a/docs/rust/opendal/services/struct.Ipfs.html b/docs/rust/opendal/services/struct.Ipfs.html
index c39f48a116..e46926731a 100644
--- a/docs/rust/opendal/services/struct.Ipfs.html
+++ b/docs/rust/opendal/services/struct.Ipfs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="IPFS file system support based on IPFS HTTP Gateway."><title>Ipfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="IPFS file system support based on IPFS HTTP Gateway."><title>Ipfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSan [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Ipmfs.html b/docs/rust/opendal/services/struct.Ipmfs.html
index 27a94a80e8..550b4529db 100644
--- a/docs/rust/opendal/services/struct.Ipmfs.html
+++ b/docs/rust/opendal/services/struct.Ipmfs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="IPFS file system support based on IPFS MFS API."><title>Ipmfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="IPFS file system support based on IPFS MFS API."><title>Ipmfs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
<h2 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h2>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Koofr.html b/docs/rust/opendal/services/struct.Koofr.html
index 0aded06a3f..839fd20cff 100644
--- a/docs/rust/opendal/services/struct.Koofr.html
+++ b/docs/rust/opendal/services/struct.Koofr.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Koofr services support."><title>Koofr in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Koofr services support."><title>Koofr in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.KoofrConfig.html b/docs/rust/opendal/services/struct.KoofrConfig.html
index 32ab1370f8..2c75983dd3 100644
--- a/docs/rust/opendal/services/struct.KoofrConfig.html
+++ b/docs/rust/opendal/services/struct.KoofrConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Koofr services support."><title>KoofrConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Koofr services support."><title>KoofrConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub endpoint: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
pub email: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
diff --git a/docs/rust/opendal/services/struct.Libsql.html b/docs/rust/opendal/services/struct.Libsql.html
index 20916c7059..35bef44a45 100644
--- a/docs/rust/opendal/services/struct.Libsql.html
+++ b/docs/rust/opendal/services/struct.Libsql.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Libsql in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Libsql in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.LibsqlConfig.html b/docs/rust/opendal/services/struct.LibsqlConfig.html
index db3e7bf7f8..97c02d8655 100644
--- a/docs/rust/opendal/services/struct.LibsqlConfig.html
+++ b/docs/rust/opendal/services/struct.LibsqlConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Libsqlservices support."><title>LibsqlConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Libsqlservices support."><title>LibsqlConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-LibsqlConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/libsql/backend.rs.html#60-75">source</a><a href="#impl-Debug-for-LibsqlConfig" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
<a class="struct" href="struct.LibsqlConfig.html" title="struct opendal::services::LibsqlConfig">LibsqlConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/libsql/bac [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.Memcached.html b/docs/rust/opendal/services/struct.Memcached.html
index 8e93cca341..5b1b8b6e05 100644
--- a/docs/rust/opendal/services/struct.Memcached.html
+++ b/docs/rust/opendal/services/struct.Memcached.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Memcached service support."><title>Memcached in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Memcached service support."><title>Memcached in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.MemcachedConfig.html b/docs/rust/opendal/services/struct.MemcachedConfig.html
index 3a374f2fe0..bc77d29bc2 100644
--- a/docs/rust/opendal/services/struct.MemcachedConfig.html
+++ b/docs/rust/opendal/services/struct.MemcachedConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for MemCached services support"><title>MemcachedConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for MemCached services support"><title>MemcachedConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-MemcachedConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/memcached/backend.rs.html#32">source</a><a href="#impl-Clone-for-MemcachedConfig" class="anchor">§</a><h3 class="code-header">impl < [...]
<a class="struct" href="struct.MemcachedConfig.html" title="struct opendal::services::MemcachedConfig">MemcachedConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/m [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.Memory.html b/docs/rust/opendal/services/struct.Memory.html
index e8cd71f5bc..6df0ace214 100644
--- a/docs/rust/opendal/services/struct.Memory.html
+++ b/docs/rust/opendal/services/struct.Memory.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="In memory service support. (BTreeMap Based)"><title>Memory in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="In memory service support. (BTreeMap Based)"><title>Memory in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Mediu [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.MemoryConfig.html b/docs/rust/opendal/services/struct.MemoryConfig.html
index f17ca195e3..649a0b729f 100644
--- a/docs/rust/opendal/services/struct.MemoryConfig.html
+++ b/docs/rust/opendal/services/struct.MemoryConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for memory."><title>MemoryConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for memory."><title>MemoryConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>services-memory</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Config for memory.</p>
</div></details><h2 id="fields" class="fields section-header">Fields (Non-exhaustive)<a href="#fields" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This struct is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional <code>Struct { .. }</code> syntax; cannot be matche [...]
diff --git a/docs/rust/opendal/services/struct.MiniMoka.html b/docs/rust/opendal/services/struct.MiniMoka.html
index d9671f6531..20498e0588 100644
--- a/docs/rust/opendal/services/struct.MiniMoka.html
+++ b/docs/rust/opendal/services/struct.MiniMoka.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="mini-moka backend support."><title>MiniMoka in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="mini-moka backend support."><title>MiniMoka in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Moka.html b/docs/rust/opendal/services/struct.Moka.html
index c1b306d40d..ca24fa4ffd 100644
--- a/docs/rust/opendal/services/struct.Moka.html
+++ b/docs/rust/opendal/services/struct.Moka.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="moka backend support."><title>Moka in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="moka backend support."><title>Moka in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.MokaConfig.html b/docs/rust/opendal/services/struct.MokaConfig.html
index 92e93e8ee2..d53ab0bbef 100644
--- a/docs/rust/opendal/services/struct.MokaConfig.html
+++ b/docs/rust/opendal/services/struct.MokaConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Mokaservices support."><title>MokaConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Mokaservices support."><title>MokaConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
pub name: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub max_capacity: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>>,
pub time_to_live: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>>,
diff --git a/docs/rust/opendal/services/struct.Mongodb.html b/docs/rust/opendal/services/struct.Mongodb.html
index d4c9dfbecb..d0635175fc 100644
--- a/docs/rust/opendal/services/struct.Mongodb.html
+++ b/docs/rust/opendal/services/struct.Mongodb.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Mongodb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Sourc [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Mongodb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Sourc [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.MongodbConfig.html b/docs/rust/opendal/services/struct.MongodbConfig.html
index 7eae21b090..e2d3a4e045 100644
--- a/docs/rust/opendal/services/struct.MongodbConfig.html
+++ b/docs/rust/opendal/services/struct.MongodbConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Mongodb service support."><title>MongodbConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Mongodb service support."><title>MongodbConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium [...]
pub connection_string: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub database: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub collection: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Mysql.html b/docs/rust/opendal/services/struct.Mysql.html
index ed60e45f18..a2ccc8fcb0 100644
--- a/docs/rust/opendal/services/struct.Mysql.html
+++ b/docs/rust/opendal/services/struct.Mysql.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Mysql in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceC [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Mysql in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceC [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.MysqlConfig.html b/docs/rust/opendal/services/struct.MysqlConfig.html
index 45b5c9175e..f603bc86b2 100644
--- a/docs/rust/opendal/services/struct.MysqlConfig.html
+++ b/docs/rust/opendal/services/struct.MysqlConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Mysql services support."><title>MysqlConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Mysql services support."><title>MysqlConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-MysqlConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/mysql/backend.rs.html#43-57">source</a><a href="#impl-Debug-for-MysqlConfig" class="anchor">§</a><h3 class="code-header">impl <a class=" [...]
<a class="struct" href="struct.MysqlConfig.html" title="struct opendal::services::MysqlConfig">MysqlConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/mysql/backend [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.Obs.html b/docs/rust/opendal/services/struct.Obs.html
index c9eb83cdef..2bec1b7052 100644
--- a/docs/rust/opendal/services/struct.Obs.html
+++ b/docs/rust/opendal/services/struct.Obs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Huawei-Cloud Object Storage Service (OBS) support"><title>Obs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Huawei-Cloud Object Storage Service (OBS) support"><title>Obs in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Onedrive.html b/docs/rust/opendal/services/struct.Onedrive.html
index 74c897e6bf..9047e946fc 100644
--- a/docs/rust/opendal/services/struct.Onedrive.html
+++ b/docs/rust/opendal/services/struct.Onedrive.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneDrive backend support."><title>Onedrive in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OneDrive backend support."><title>Onedrive in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d3 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.OnedriveConfig.html b/docs/rust/opendal/services/struct.OnedriveConfig.html
index 1ad2d23da2..171a250b56 100644
--- a/docs/rust/opendal/services/struct.OnedriveConfig.html
+++ b/docs/rust/opendal/services/struct.OnedriveConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for OneDrive backend support."><title>OnedriveConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for OneDrive backend support."><title>OnedriveConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medi [...]
pub access_token: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>services-onedrive</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Config for <a href="https://onedrive.com">OneDrive</a> backend support.</p>
diff --git a/docs/rust/opendal/services/struct.Oss.html b/docs/rust/opendal/services/struct.Oss.html
index aa1dad16c7..eb4f063bb6 100644
--- a/docs/rust/opendal/services/struct.Oss.html
+++ b/docs/rust/opendal/services/struct.Oss.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aliyun Object Storage Service (OSS) support"><title>Oss in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aliyun Object Storage Service (OSS) support"><title>Oss in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8 [...]
<h2 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h2>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Pcloud.html b/docs/rust/opendal/services/struct.Pcloud.html
index 57fb42ad86..51e4801235 100644
--- a/docs/rust/opendal/services/struct.Pcloud.html
+++ b/docs/rust/opendal/services/struct.Pcloud.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="pCloud services support."><title>Pcloud in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="pCloud services support."><title>Pcloud in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388. [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.PcloudConfig.html b/docs/rust/opendal/services/struct.PcloudConfig.html
index 1a2169a49e..de5c512a19 100644
--- a/docs/rust/opendal/services/struct.PcloudConfig.html
+++ b/docs/rust/opendal/services/struct.PcloudConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Pcloud services support."><title>PcloudConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze Pcloud services support."><title>PcloudConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSa [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub endpoint: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
pub username: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Persy.html b/docs/rust/opendal/services/struct.Persy.html
index c864da864c..a17756f996 100644
--- a/docs/rust/opendal/services/struct.Persy.html
+++ b/docs/rust/opendal/services/struct.Persy.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="persy service support."><title>Persy in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="persy service support."><title>Persy in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wof [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Postgresql.html b/docs/rust/opendal/services/struct.Postgresql.html
index 23c40ec9f0..2dd3408f56 100644
--- a/docs/rust/opendal/services/struct.Postgresql.html
+++ b/docs/rust/opendal/services/struct.Postgresql.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PostgreSQL services support."><title>Postgresql in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="PostgreSQL services support."><title>Postgresql in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.PostgresqlConfig.html b/docs/rust/opendal/services/struct.PostgresqlConfig.html
index 16cfcfc185..6acf3b2c00 100644
--- a/docs/rust/opendal/services/struct.PostgresqlConfig.html
+++ b/docs/rust/opendal/services/struct.PostgresqlConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for PostgreSQL services support."><title>PostgresqlConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for PostgreSQL services support."><title>PostgresqlConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
<span class="comment">/* private fields */</span>
}</code></pre><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>services-postgresql</code></strong> only.</div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Config for PostgreSQL services support.</p>
diff --git a/docs/rust/opendal/services/struct.Redb.html b/docs/rust/opendal/services/struct.Redb.html
index 29fc1a1769..f8c6ae0366 100644
--- a/docs/rust/opendal/services/struct.Redb.html
+++ b/docs/rust/opendal/services/struct.Redb.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redb service support."><title>Redb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redb service support."><title>Redb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.Redis.html b/docs/rust/opendal/services/struct.Redis.html
index 0c7b06ffa8..98cdec66ef 100644
--- a/docs/rust/opendal/services/struct.Redis.html
+++ b/docs/rust/opendal/services/struct.Redis.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redis services support."><title>Redis in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redis services support."><title>Redis in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.RedisConfig.html b/docs/rust/opendal/services/struct.RedisConfig.html
index 85ee73f2d4..2b0ba7d178 100644
--- a/docs/rust/opendal/services/struct.RedisConfig.html
+++ b/docs/rust/opendal/services/struct.RedisConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Redis services support."><title>RedisConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Redis services support."><title>RedisConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RedisConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/redis/backend.rs.html#46">source</a><a href="#impl-Clone-for-RedisConfig" class="anchor">§</a><h3 class="code-header">impl <a class="tra [...]
<a class="struct" href="struct.RedisConfig.html" title="struct opendal::services::RedisConfig">RedisConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/redis/backend [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.Rocksdb.html b/docs/rust/opendal/services/struct.Rocksdb.html
index f1e1f8efaa..8eafa4517b 100644
--- a/docs/rust/opendal/services/struct.Rocksdb.html
+++ b/docs/rust/opendal/services/struct.Rocksdb.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RocksDB service support."><title>Rocksdb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="RocksDB service support."><title>Rocksdb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.RocksdbConfig.html b/docs/rust/opendal/services/struct.RocksdbConfig.html
index 44fe96898c..1882e1e047 100644
--- a/docs/rust/opendal/services/struct.RocksdbConfig.html
+++ b/docs/rust/opendal/services/struct.RocksdbConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Rocksdb Service."><title>RocksdbConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Rocksdb Service."><title>RocksdbConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781 [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RocksdbConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/rocksdb/backend.rs.html#32">source</a><a href="#impl-Clone-for-RocksdbConfig" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
<a class="struct" href="struct.RocksdbConfig.html" title="struct opendal::services::RocksdbConfig">RocksdbConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/rocksdb [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.S3.html b/docs/rust/opendal/services/struct.S3.html
index ae5a69f1fd..43a4f6a47e 100644
--- a/docs/rust/opendal/services/struct.S3.html
+++ b/docs/rust/opendal/services/struct.S3.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aws S3 and compatible services (including minio, digitalocean space, Tencent Cloud Object Storage(COS) and so on) support. For more information about s3-compatible services, refer to Compatible Services."><title>S3 in opendal::services - Rust</title><script>if(window.location.protocol!== [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Aws S3 and compatible services (including minio, digitalocean space, Tencent Cloud Object Storage(COS) and so on) support. For more information about s3-compatible services, refer to Compatible Services."><title>S3 in opendal::services - Rust</title><script>if(window.location.protocol!== [...]
For more information about s3-compatible services, refer to <a href="#compatible-services">Compatible Services</a>.</p>
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
diff --git a/docs/rust/opendal/services/struct.S3Config.html b/docs/rust/opendal/services/struct.S3Config.html
index aeb381961d..d189078276 100644
--- a/docs/rust/opendal/services/struct.S3Config.html
+++ b/docs/rust/opendal/services/struct.S3Config.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Aws S3 and compatible services (including minio, digitalocean space, Tencent Cloud Object Storage(COS) and so on) support."><title>S3Config in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSeri [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Aws S3 and compatible services (including minio, digitalocean space, Tencent Cloud Object Storage(COS) and so on) support."><title>S3Config in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSeri [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub bucket: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Seafile.html b/docs/rust/opendal/services/struct.Seafile.html
index 94f384fdef..f1b9f4fb9e 100644
--- a/docs/rust/opendal/services/struct.Seafile.html
+++ b/docs/rust/opendal/services/struct.Seafile.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="seafile services support."><title>Seafile in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="seafile services support."><title>Seafile in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.SeafileConfig.html b/docs/rust/opendal/services/struct.SeafileConfig.html
index 4f479859f0..eecc8973d9 100644
--- a/docs/rust/opendal/services/struct.SeafileConfig.html
+++ b/docs/rust/opendal/services/struct.SeafileConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze seafile services support."><title>SeafileConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fira [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for backblaze seafile services support."><title>SeafileConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,Fira [...]
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub username: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Sftp.html b/docs/rust/opendal/services/struct.Sftp.html
index 1ec67ea657..c8f96f27fe 100644
--- a/docs/rust/opendal/services/struct.Sftp.html
+++ b/docs/rust/opendal/services/struct.Sftp.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="SFTP services support. (only works on unix)"><title>Sftp in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="SFTP services support. (only works on unix)"><title>Sftp in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium- [...]
<p>If you are interested in working on windows, pl ease refer to <a href="https://github.com/apache/opendal/issues/2963">this</a> issue.
Welcome to leave your comments or make contributions.</p>
<p>Warning: Maximum number of file holdings is depending on the remote system configuration.</p>
diff --git a/docs/rust/opendal/services/struct.SftpConfig.html b/docs/rust/opendal/services/struct.SftpConfig.html
index f5c4b97720..32dae17812 100644
--- a/docs/rust/opendal/services/struct.SftpConfig.html
+++ b/docs/rust/opendal/services/struct.SftpConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Sftp Service support."><title>SftpConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Sftp Service support."><title>SftpConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a7 [...]
pub endpoint: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub root: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub user: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Sled.html b/docs/rust/opendal/services/struct.Sled.html
index c040df036f..76944d78bc 100644
--- a/docs/rust/opendal/services/struct.Sled.html
+++ b/docs/rust/opendal/services/struct.Sled.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Sled services support."><title>Sled in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Sled services support."><title>Sled in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
<ul>
diff --git a/docs/rust/opendal/services/struct.SledConfig.html b/docs/rust/opendal/services/struct.SledConfig.html
index 679f70aa8e..c6291a293e 100644
--- a/docs/rust/opendal/services/struct.SledConfig.html
+++ b/docs/rust/opendal/services/struct.SledConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Sled services support."><title>SledConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Sled services support."><title>SledConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-SledConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/sled/backend.rs.html#48-56">source</a><a href="#impl-Debug-for-SledConfig" class="anchor">§</a><h3 class="code-header">impl <a class="tra [...]
<a class="struct" href="struct.SledConfig.html" title="struct opendal::services::SledConfig">SledConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/sled/backend.rs. [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.Sqlite.html b/docs/rust/opendal/services/struct.Sqlite.html
index a4c837c29e..76cb19e50c 100644
--- a/docs/rust/opendal/services/struct.Sqlite.html
+++ b/docs/rust/opendal/services/struct.Sqlite.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Sqlite in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Sqlite in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Source [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.SqliteConfig.html b/docs/rust/opendal/services/struct.SqliteConfig.html
index 0d5ad90ae1..e945e93e3d 100644
--- a/docs/rust/opendal/services/struct.SqliteConfig.html
+++ b/docs/rust/opendal/services/struct.SqliteConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Sqlite support."><title>SqliteConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Sqlite support."><title>SqliteConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4 [...]
pub connection_string: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub table: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
pub key_field: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
diff --git a/docs/rust/opendal/services/struct.Supabase.html b/docs/rust/opendal/services/struct.Supabase.html
index 5f1dd69d0a..a592c8617a 100644
--- a/docs/rust/opendal/services/struct.Supabase.html
+++ b/docs/rust/opendal/services/struct.Supabase.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Supabase service support"><title>Supabase in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Supabase service support"><title>Supabase in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d38 [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.Surrealdb.html b/docs/rust/opendal/services/struct.Surrealdb.html
index ee7667e025..54dc45afb0 100644
--- a/docs/rust/opendal/services/struct.Surrealdb.html
+++ b/docs/rust/opendal/services/struct.Surrealdb.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Surrealdb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Sou [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Capabilities"><title>Surrealdb in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,Sou [...]
<p>This service can be used to:</p>
<ul>
<li><input disabled="" type="checkbox" checked=""/>
diff --git a/docs/rust/opendal/services/struct.SurrealdbConfig.html b/docs/rust/opendal/services/struct.SurrealdbConfig.html
index 951de1b10a..6e691e3b3d 100644
--- a/docs/rust/opendal/services/struct.SurrealdbConfig.html
+++ b/docs/rust/opendal/services/struct.SurrealdbConfig.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Surrealdb services support."><title>SurrealdbConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Config for Surrealdb services support."><title>SurrealdbConfig in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M [...]
</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-SurrealdbConfig" class="impl"><a class="src rightside" href="../../src/opendal/services/surrealdb/backend.rs.html#55-70">source</a><a href="#impl-Debug-for-SurrealdbConfig" class="anchor">§</a><h3 class="code-header">imp [...]
<a class="struct" href="struct.SurrealdbConfig.html" title="struct opendal::services::SurrealdbConfig">SurrealdbConfig</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.deserialize" class="method trait-impl"><a class="src rightside" href="../../src/opendal/services/s [...]
__D: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.203/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implem [...]
diff --git a/docs/rust/opendal/services/struct.Swift.html b/docs/rust/opendal/services/struct.Swift.html
index 73c575535b..f15f77ea75 100644
--- a/docs/rust/opendal/services/struct.Swift.html
+++ b/docs/rust/opendal/services/struct.Swift.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpenStack Swift’s REST API support. For more information about swift-compatible services, refer to Compatible Services."><title>Swift in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="OpenStack Swift’s REST API support. For more information about swift-compatible services, refer to Compatible Services."><title>Swift in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e [...]
For more information about swift-compatible services, refer to <a href="#compatible-services">Compatible Services</a>.</p>
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
diff --git a/docs/rust/opendal/services/struct.Tikv.html b/docs/rust/opendal/services/struct.Tikv.html
index 931c1be12d..88eceaa697 100644
--- a/docs/rust/opendal/services/struct.Tikv.html
+++ b/docs/rust/opendal/services/struct.Tikv.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TiKV backend builder"><title>Tikv in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TiKV backend builder"><title>Tikv in opendal::services - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2, [...]
<h3 id="capabilities"><a class="doc-anchor" href="#capabilities">§</a>Capabilities</h3>
<p>This service can be used to:</p>
... 518 lines suppressed ...