You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2023/03/17 18:59:20 UTC
[incubator-opendal] branch main updated: chore: Move opendal related staffs to core (#1673)
This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
The following commit(s) were added to refs/heads/main by this push:
new 2d04ce35 chore: Move opendal related staffs to core (#1673)
2d04ce35 is described below
commit 2d04ce35d4ccbd6ab6e022fdbe3accc2427f0439
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Sat Mar 18 02:59:14 2023 +0800
chore: Move opendal related staffs to core (#1673)
* chore: Move opendal related staffs to core
Signed-off-by: Xuanwo <gi...@xuanwo.io>
* Fix working dir
Signed-off-by: Xuanwo <gi...@xuanwo.io>
* fix caddy
Signed-off-by: Xuanwo <gi...@xuanwo.io>
* fix webdav
Signed-off-by: Xuanwo <gi...@xuanwo.io>
---------
Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
.github/workflows/publish.yml | 3 +-
.github/workflows/service_test_azblob.yml | 1 +
.github/workflows/service_test_azdfs.yml | 1 +
.github/workflows/service_test_dashmap.yml | 1 +
.github/workflows/service_test_fs.yml | 1 +
.github/workflows/service_test_ftp.yml | 1 +
.github/workflows/service_test_gcs.yml | 1 +
.github/workflows/service_test_ghac.yml | 1 +
.github/workflows/service_test_hdfs.yml | 1 +
.github/workflows/service_test_http.yml | 4 +
.github/workflows/service_test_ipfs.yml | 1 +
.github/workflows/service_test_ipmfs.yml | 1 +
.github/workflows/service_test_memcached.yml | 1 +
.github/workflows/service_test_memory.yml | 1 +
.github/workflows/service_test_moka.yml | 1 +
.github/workflows/service_test_obs.yml | 1 +
.github/workflows/service_test_oss.yml | 1 +
.github/workflows/service_test_redis.yml | 1 +
.github/workflows/service_test_rocksdb.yml | 1 +
.github/workflows/service_test_s3.yml | 5 +
.github/workflows/service_test_sled.yml | 1 +
.github/workflows/service_test_webdav.yml | 5 +
.github/workflows/service_test_webhdfs.yml | 1 +
Cargo.toml | 150 +--------------------
binaries/oli/Cargo.toml | 2 +-
bindings/c/Cargo.toml | 2 +-
bindings/nodejs/Cargo.toml | 2 +-
bindings/object_store/Cargo.toml | 2 +-
bindings/python/Cargo.toml | 2 +-
Cargo.toml => core/Cargo.toml | 15 +--
{benches => core/benches}/README.md | 0
{benches => core/benches}/ops/README.md | 0
{benches => core/benches}/ops/main.rs | 0
{benches => core/benches}/ops/read.rs | 0
{benches => core/benches}/ops/utils.rs | 0
{benches => core/benches}/ops/write.rs | 0
{examples => core/examples}/object.rs | 0
{src => core/src}/docs/comparisons/mod.rs | 0
.../src}/docs/comparisons/vs_object_store.md | 0
{src => core/src}/docs/concepts.rs | 0
{src => core/src}/docs/features.md | 0
{src => core/src}/docs/internals/accessor.rs | 0
{src => core/src}/docs/internals/layer.rs | 0
{src => core/src}/docs/internals/mod.rs | 0
{src => core/src}/docs/mod.rs | 2 +-
{src => core/src}/docs/rfcs/0000_example.md | 0
.../src}/docs/rfcs/0041_object_native_api.md | 0
{src => core/src}/docs/rfcs/0044_error_handle.md | 0
{src => core/src}/docs/rfcs/0057_auto_region.md | 0
{src => core/src}/docs/rfcs/0069_object_stream.md | 0
{src => core/src}/docs/rfcs/0090_limited_reader.md | 0
.../src}/docs/rfcs/0112_path_normalization.md | 0
.../src}/docs/rfcs/0191_async_streaming_io.md | 0
.../src}/docs/rfcs/0203_remove_credential.md | 0
{src => core/src}/docs/rfcs/0221_create_dir.md | 0
.../src}/docs/rfcs/0247_retryable_error.md | 0
{src => core/src}/docs/rfcs/0293_object_id.md | 0
{src => core/src}/docs/rfcs/0337_dir_entry.md | 0
.../src}/docs/rfcs/0409_accessor_capabilities.md | 0
{src => core/src}/docs/rfcs/0413_presign.md | 0
.../src}/docs/rfcs/0423_command_line_interface.md | 0
{src => core/src}/docs/rfcs/0429_init_from_iter.md | 0
{src => core/src}/docs/rfcs/0438_multipart.md | 0
{src => core/src}/docs/rfcs/0443_gateway.md | 0
{src => core/src}/docs/rfcs/0501_new_builder.md | 0
{src => core/src}/docs/rfcs/0554_write_refactor.md | 0
.../src}/docs/rfcs/0561_list_metadata_reuse.md | 0
{src => core/src}/docs/rfcs/0599_blocking_api.md | 0
{src => core/src}/docs/rfcs/0623_redis_service.md | 0
.../src}/docs/rfcs/0627_split_capabilities.md | 0
.../src}/docs/rfcs/0661_path_in_accessor.md | 0
.../src}/docs/rfcs/0793_generic_kv_services.md | 0
{src => core/src}/docs/rfcs/0926_object_reader.md | 0
{src => core/src}/docs/rfcs/0977_refactor_error.md | 0
{src => core/src}/docs/rfcs/1085_object_handler.md | 0
.../src}/docs/rfcs/1391_object_metadataer.md | 0
.../src}/docs/rfcs/1398_query_based_metadata.md | 0
{src => core/src}/docs/rfcs/1420_object_writer.md | 0
.../src}/docs/rfcs/1477_remove_object_concept.md | 0
{src => core/src}/docs/rfcs/mod.rs | 0
{src => core/src}/docs/upgrade.md | 0
{src => core/src}/layers/chaos.rs | 0
{src => core/src}/layers/complete.rs | 0
{src => core/src}/layers/concurrent_limit.rs | 0
{src => core/src}/layers/error_context.rs | 0
{src => core/src}/layers/immutable_index.rs | 0
{src => core/src}/layers/logging.rs | 0
{src => core/src}/layers/metrics.rs | 0
{src => core/src}/layers/mod.rs | 0
{src => core/src}/layers/retry.rs | 0
{src => core/src}/layers/tracing.rs | 0
{src => core/src}/layers/type_eraser.rs | 0
{src => core/src}/lib.rs | 0
{src => core/src}/raw/accessor.rs | 0
{src => core/src}/raw/adapters/kv/api.rs | 0
{src => core/src}/raw/adapters/kv/backend.rs | 0
{src => core/src}/raw/adapters/kv/mod.rs | 0
{src => core/src}/raw/adapters/mod.rs | 0
{src => core/src}/raw/http_util/body.rs | 0
.../src}/raw/http_util/bytes_content_range.rs | 0
{src => core/src}/raw/http_util/bytes_range.rs | 0
{src => core/src}/raw/http_util/client.rs | 0
{src => core/src}/raw/http_util/dns.rs | 0
{src => core/src}/raw/http_util/error.rs | 0
{src => core/src}/raw/http_util/header.rs | 0
{src => core/src}/raw/http_util/mod.rs | 0
{src => core/src}/raw/http_util/uri.rs | 0
{src => core/src}/raw/layer.rs | 0
{src => core/src}/raw/mod.rs | 0
{src => core/src}/raw/oio/cursor.rs | 0
{src => core/src}/raw/oio/entry.rs | 0
.../src}/raw/oio/into_blocking_reader/from_fd.rs | 0
.../src}/raw/oio/into_blocking_reader/mod.rs | 0
{src => core/src}/raw/oio/into_reader/by_range.rs | 0
{src => core/src}/raw/oio/into_reader/from_fd.rs | 0
{src => core/src}/raw/oio/into_reader/mod.rs | 0
{src => core/src}/raw/oio/into_streamable.rs | 0
{src => core/src}/raw/oio/mod.rs | 0
{src => core/src}/raw/oio/page.rs | 0
{src => core/src}/raw/oio/read.rs | 0
{src => core/src}/raw/oio/to_flat_pager.rs | 0
{src => core/src}/raw/oio/to_hierarchy_pager.rs | 0
{src => core/src}/raw/oio/write.rs | 0
{src => core/src}/raw/operation.rs | 0
{src => core/src}/raw/path.rs | 0
{src => core/src}/raw/rps.rs | 0
{src => core/src}/raw/serde_util.rs | 0
{src => core/src}/raw/version.rs | 0
{src => core/src}/services/azblob/backend.rs | 0
{src => core/src}/services/azblob/batch.rs | 0
{src => core/src}/services/azblob/error.rs | 0
{src => core/src}/services/azblob/mod.rs | 0
{src => core/src}/services/azblob/pager.rs | 0
{src => core/src}/services/azblob/writer.rs | 0
{src => core/src}/services/azdfs/backend.rs | 0
{src => core/src}/services/azdfs/error.rs | 0
{src => core/src}/services/azdfs/mod.rs | 0
{src => core/src}/services/azdfs/pager.rs | 0
{src => core/src}/services/azdfs/writer.rs | 0
{src => core/src}/services/dashmap/backend.rs | 0
{src => core/src}/services/dashmap/mod.rs | 0
{src => core/src}/services/fs/backend.rs | 0
{src => core/src}/services/fs/error.rs | 0
{src => core/src}/services/fs/mod.rs | 0
{src => core/src}/services/fs/pager.rs | 0
{src => core/src}/services/fs/writer.rs | 0
{src => core/src}/services/ftp/backend.rs | 0
{src => core/src}/services/ftp/err.rs | 0
{src => core/src}/services/ftp/mod.rs | 0
{src => core/src}/services/ftp/pager.rs | 0
{src => core/src}/services/ftp/util.rs | 0
{src => core/src}/services/ftp/writer.rs | 0
{src => core/src}/services/gcs/backend.rs | 0
{src => core/src}/services/gcs/error.rs | 0
{src => core/src}/services/gcs/mod.rs | 0
{src => core/src}/services/gcs/pager.rs | 0
{src => core/src}/services/gcs/uri.rs | 0
{src => core/src}/services/gcs/writer.rs | 0
{src => core/src}/services/ghac/backend.rs | 0
{src => core/src}/services/ghac/error.rs | 0
{src => core/src}/services/ghac/mod.rs | 0
{src => core/src}/services/ghac/writer.rs | 0
{src => core/src}/services/hdfs/backend.rs | 0
{src => core/src}/services/hdfs/error.rs | 0
{src => core/src}/services/hdfs/mod.rs | 0
{src => core/src}/services/hdfs/pager.rs | 0
{src => core/src}/services/hdfs/writer.rs | 0
{src => core/src}/services/http/backend.rs | 0
{src => core/src}/services/http/error.rs | 0
.../src}/services/http/fixtures/nginx.conf | 0
{src => core/src}/services/http/mod.rs | 0
{src => core/src}/services/ipfs/backend.rs | 0
{src => core/src}/services/ipfs/error.rs | 0
{src => core/src}/services/ipfs/ipld.rs | 0
{src => core/src}/services/ipfs/mod.rs | 0
{src => core/src}/services/ipmfs/backend.rs | 0
{src => core/src}/services/ipmfs/builder.rs | 0
{src => core/src}/services/ipmfs/error.rs | 0
{src => core/src}/services/ipmfs/mod.rs | 0
{src => core/src}/services/ipmfs/pager.rs | 0
{src => core/src}/services/ipmfs/writer.rs | 0
{src => core/src}/services/memcached/MIT-ascii.txt | 0
{src => core/src}/services/memcached/ascii.rs | 0
{src => core/src}/services/memcached/backend.rs | 0
{src => core/src}/services/memcached/mod.rs | 0
{src => core/src}/services/memory/backend.rs | 0
{src => core/src}/services/memory/mod.rs | 0
{src => core/src}/services/mod.rs | 0
{src => core/src}/services/moka/backend.rs | 0
{src => core/src}/services/moka/mod.rs | 0
{src => core/src}/services/obs/backend.rs | 0
{src => core/src}/services/obs/error.rs | 0
{src => core/src}/services/obs/mod.rs | 0
{src => core/src}/services/obs/pager.rs | 0
{src => core/src}/services/obs/writer.rs | 0
{src => core/src}/services/oss/backend.rs | 0
{src => core/src}/services/oss/error.rs | 0
{src => core/src}/services/oss/mod.rs | 0
{src => core/src}/services/oss/pager.rs | 0
{src => core/src}/services/oss/writer.rs | 0
{src => core/src}/services/redis/backend.rs | 0
{src => core/src}/services/redis/mod.rs | 0
{src => core/src}/services/rocksdb/backend.rs | 0
{src => core/src}/services/rocksdb/mod.rs | 0
{src => core/src}/services/s3/backend.rs | 0
.../src}/services/s3/compatible_services.md | 0
{src => core/src}/services/s3/error.rs | 0
{src => core/src}/services/s3/mod.rs | 0
{src => core/src}/services/s3/pager.rs | 0
{src => core/src}/services/s3/writer.rs | 0
{src => core/src}/services/sled/backend.rs | 0
{src => core/src}/services/sled/mod.rs | 0
{src => core/src}/services/webdav/backend.rs | 0
{src => core/src}/services/webdav/error.rs | 0
.../src}/services/webdav/fixtures/htpasswd | 0
.../webdav/fixtures/nginx-with-basic-auth.conf | 0
.../src}/services/webdav/fixtures/nginx.conf | 0
{src => core/src}/services/webdav/list_response.rs | 0
{src => core/src}/services/webdav/mod.rs | 0
{src => core/src}/services/webdav/pager.rs | 0
{src => core/src}/services/webdav/writer.rs | 0
{src => core/src}/services/webhdfs/backend.rs | 0
{src => core/src}/services/webhdfs/error.rs | 0
{src => core/src}/services/webhdfs/message.rs | 0
{src => core/src}/services/webhdfs/mod.rs | 0
{src => core/src}/services/webhdfs/pager.rs | 0
{src => core/src}/services/webhdfs/writer.rs | 0
{src => core/src}/types/builder.rs | 0
{src => core/src}/types/entry.rs | 0
{src => core/src}/types/error.rs | 0
{src => core/src}/types/list.rs | 0
{src => core/src}/types/metadata.rs | 0
{src => core/src}/types/mod.rs | 0
{src => core/src}/types/mode.rs | 0
.../src}/types/operator/blocking_operator.rs | 0
{src => core/src}/types/operator/builder.rs | 0
{src => core/src}/types/operator/metadata.rs | 0
{src => core/src}/types/operator/mod.rs | 0
{src => core/src}/types/operator/operator.rs | 0
{src => core/src}/types/ops.rs | 0
{src => core/src}/types/reader.rs | 0
{src => core/src}/types/scheme.rs | 0
{src => core/src}/types/writer.rs | 0
{tests => core/tests}/behavior/README.md | 0
{tests => core/tests}/behavior/blocking_list.rs | 0
{tests => core/tests}/behavior/blocking_read.rs | 0
{tests => core/tests}/behavior/blocking_write.rs | 0
{tests => core/tests}/behavior/list.rs | 0
{tests => core/tests}/behavior/list_only.rs | 0
{tests => core/tests}/behavior/main.rs | 0
{tests => core/tests}/behavior/presign.rs | 0
{tests => core/tests}/behavior/read_only.rs | 0
{tests => core/tests}/behavior/utils.rs | 0
{tests => core/tests}/behavior/write.rs | 0
{tests => core/tests}/data/normal_dir/.gitkeep | 0
{tests => core/tests}/data/normal_file | Bin
.../data/special_dir !@#$%^&()_+-=;',/.gitkeep | 0
.../tests}/data/special_file !@#$%^&()_+-=;', | Bin
258 files changed, 44 insertions(+), 169 deletions(-)
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 519792dc..e7fb9cd5 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/setup
- name: Publish opendal
+ working-directory: "core"
run: cargo publish --all-features
env:
LD_LIBRARY_PATH: ${{ env.JAVA_HOME }}/lib/server:${{ env.LD_LIBRARY_PATH }}
@@ -51,8 +52,8 @@ jobs:
ROCKSDB_LIB_DIR: /usr/lib
- name: Publish object_store_opendal
- run: cargo publish
working-directory: "bindings/object_store"
+ run: cargo publish
env:
LD_LIBRARY_PATH: ${{ env.JAVA_HOME }}/lib/server:${{ env.LD_LIBRARY_PATH }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
diff --git a/.github/workflows/service_test_azblob.yml b/.github/workflows/service_test_azblob.yml
index b4894ea0..d74cfb2d 100644
--- a/.github/workflows/service_test_azblob.yml
+++ b/.github/workflows/service_test_azblob.yml
@@ -59,6 +59,7 @@ jobs:
- name: Test
shell: bash
+ working-directory: core
run: cargo test azblob -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_azdfs.yml b/.github/workflows/service_test_azdfs.yml
index 176740bf..a6bbf3ea 100644
--- a/.github/workflows/service_test_azdfs.yml
+++ b/.github/workflows/service_test_azdfs.yml
@@ -45,6 +45,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test azdfs -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_dashmap.yml b/.github/workflows/service_test_dashmap.yml
index 9d04546b..70b95777 100644
--- a/.github/workflows/service_test_dashmap.yml
+++ b/.github/workflows/service_test_dashmap.yml
@@ -48,6 +48,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test dashmap --features services-dashmap -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_fs.yml b/.github/workflows/service_test_fs.yml
index f3cbd867..fb347393 100644
--- a/.github/workflows/service_test_fs.yml
+++ b/.github/workflows/service_test_fs.yml
@@ -49,6 +49,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test fs -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_ftp.yml b/.github/workflows/service_test_ftp.yml
index 2762a528..674caa2e 100644
--- a/.github/workflows/service_test_ftp.yml
+++ b/.github/workflows/service_test_ftp.yml
@@ -78,6 +78,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test ftp --features services-ftp -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_gcs.yml b/.github/workflows/service_test_gcs.yml
index 862af6fc..656b23b5 100644
--- a/.github/workflows/service_test_gcs.yml
+++ b/.github/workflows/service_test_gcs.yml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test gcs -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_ghac.yml b/.github/workflows/service_test_ghac.yml
index 949d0f00..51fc4149 100644
--- a/.github/workflows/service_test_ghac.yml
+++ b/.github/workflows/service_test_ghac.yml
@@ -52,6 +52,7 @@ jobs:
- name: Test
shell: bash
+ working-directory: core
run: cargo test ghac -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_hdfs.yml b/.github/workflows/service_test_hdfs.yml
index 0cc1131d..df9f9682 100644
--- a/.github/workflows/service_test_hdfs.yml
+++ b/.github/workflows/service_test_hdfs.yml
@@ -62,6 +62,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
continue-on-error: true
run: cargo test hdfs --features services-hdfs -- --show-output
env:
diff --git a/.github/workflows/service_test_http.yml b/.github/workflows/service_test_http.yml
index c1581827..5cf032ce 100644
--- a/.github/workflows/service_test_http.yml
+++ b/.github/workflows/service_test_http.yml
@@ -47,6 +47,7 @@ jobs:
- name: Start nginx
shell: bash
+ working-directory: core
run: |
mkdir /tmp/static
cp -r tests/data/* /tmp/static
@@ -57,6 +58,7 @@ jobs:
- name: Test
shell: bash
+ working-directory: core
run: cargo test http -- --show-output
env:
RUST_BACKTRACE: full
@@ -77,6 +79,7 @@ jobs:
# Use the latest beta version instead
- name: Start caddy
shell: bash
+ working-directory: core
run: |
VERSION="2.6.0-beta.3"
@@ -91,6 +94,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test http -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_ipfs.yml b/.github/workflows/service_test_ipfs.yml
index de50683a..ee9f76ec 100644
--- a/.github/workflows/service_test_ipfs.yml
+++ b/.github/workflows/service_test_ipfs.yml
@@ -54,6 +54,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test ipfs --features services-ipfs -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_ipmfs.yml b/.github/workflows/service_test_ipmfs.yml
index 2e60de80..4c7814f7 100644
--- a/.github/workflows/service_test_ipmfs.yml
+++ b/.github/workflows/service_test_ipmfs.yml
@@ -49,6 +49,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test ipmfs -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_memcached.yml b/.github/workflows/service_test_memcached.yml
index 91ace58f..1ea0d37c 100644
--- a/.github/workflows/service_test_memcached.yml
+++ b/.github/workflows/service_test_memcached.yml
@@ -58,6 +58,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test memcached --features services-memcached -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_memory.yml b/.github/workflows/service_test_memory.yml
index 875391d4..614570cf 100644
--- a/.github/workflows/service_test_memory.yml
+++ b/.github/workflows/service_test_memory.yml
@@ -48,6 +48,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test memory -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_moka.yml b/.github/workflows/service_test_moka.yml
index 2aad89d4..5b17b2f8 100644
--- a/.github/workflows/service_test_moka.yml
+++ b/.github/workflows/service_test_moka.yml
@@ -48,6 +48,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test moka --features services-moka -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_obs.yml b/.github/workflows/service_test_obs.yml
index f5e40454..d41a0f91 100644
--- a/.github/workflows/service_test_obs.yml
+++ b/.github/workflows/service_test_obs.yml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test obs -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_oss.yml b/.github/workflows/service_test_oss.yml
index 9ca1236a..4f474f4c 100644
--- a/.github/workflows/service_test_oss.yml
+++ b/.github/workflows/service_test_oss.yml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test oss -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_redis.yml b/.github/workflows/service_test_redis.yml
index 0f0ed19f..bbe1cf05 100644
--- a/.github/workflows/service_test_redis.yml
+++ b/.github/workflows/service_test_redis.yml
@@ -49,6 +49,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test redis --features services-redis -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_rocksdb.yml b/.github/workflows/service_test_rocksdb.yml
index 64415463..6a855827 100644
--- a/.github/workflows/service_test_rocksdb.yml
+++ b/.github/workflows/service_test_rocksdb.yml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test rocksdb --features services-rocksdb -- --show-output --test-threads=1
env:
ROCKSDB_LIB_DIR: /usr/lib
diff --git a/.github/workflows/service_test_s3.yml b/.github/workflows/service_test_s3.yml
index 42b2bc1d..d60cbf2c 100644
--- a/.github/workflows/service_test_s3.yml
+++ b/.github/workflows/service_test_s3.yml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test s3 -- --show-output
env:
RUST_BACKTRACE: full
@@ -63,6 +64,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test s3 -- --show-output
env:
RUST_BACKTRACE: full
@@ -83,6 +85,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test s3 -- --show-output
env:
RUST_BACKTRACE: full
@@ -122,6 +125,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test s3 -- --show-output
env:
RUST_BACKTRACE: full
@@ -158,6 +162,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test s3 -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_sled.yml b/.github/workflows/service_test_sled.yml
index 84c447de..6ac54b08 100644
--- a/.github/workflows/service_test_sled.yml
+++ b/.github/workflows/service_test_sled.yml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
run: cargo test sled --features services-sled -- --show-output --test-threads=1
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_webdav.yml b/.github/workflows/service_test_webdav.yml
index 870ab86e..dfb82b78 100644
--- a/.github/workflows/service_test_webdav.yml
+++ b/.github/workflows/service_test_webdav.yml
@@ -52,12 +52,14 @@ jobs:
- name: Start nginx
shell: bash
+ working-directory: core
run: |
mkdir -p /tmp/static
nginx -c `pwd`/src/services/webdav/fixtures/nginx.conf
- name: Test
shell: bash
+ working-directory: core
run: cargo test webdav -- --show-output
env:
RUST_BACKTRACE: full
@@ -81,6 +83,7 @@ jobs:
- name: Start nginx
shell: bash
+ working-directory: core
run: |
mkdir -p /tmp/static
cp `pwd`/src/services/webdav/fixtures/htpasswd /tmp/htpasswd
@@ -88,6 +91,7 @@ jobs:
- name: Test empty password
shell: bash
+ working-directory: core
run: cargo test webdav -- --show-output
env:
RUST_BACKTRACE: full
@@ -98,6 +102,7 @@ jobs:
- name: Test with password
shell: bash
+ working-directory: core
run: cargo test webdav -- --show-output
env:
RUST_BACKTRACE: full
diff --git a/.github/workflows/service_test_webhdfs.yml b/.github/workflows/service_test_webhdfs.yml
index 0b780889..eadd2dab 100644
--- a/.github/workflows/service_test_webhdfs.yml
+++ b/.github/workflows/service_test_webhdfs.yml
@@ -53,6 +53,7 @@ jobs:
uses: ./.github/actions/setup
- name: Test
shell: bash
+ working-directory: core
continue-on-error: true
run: cargo test webhdfs -- --show-output
env:
diff --git a/Cargo.toml b/Cargo.toml
index ac3905ae..00c970c1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -15,28 +15,13 @@
# specific language governing permissions and limitations
# under the License.
-[package]
-authors = ["OpenDAL Contributors <de...@opendal.apache.org>"]
-categories = ["filesystem"]
-description = "OpenDAL: Access data freely, painlessly, and efficiently."
-edition = "2021"
-exclude = [".github/", "binaries/", "bindings/", "profiles/", "tests/"]
-homepage = "https://opendal.apache.org/"
-keywords = ["storage", "fs", "s3", "azblob", "gcs"]
-license = "Apache-2.0"
-name = "opendal"
-repository = "https://github.com/apache/incubator-opendal"
-rust-version = "1.60" # MSRV for this project - please update while bump versions
-version = "0.30.3"
-
-[package.metadata.docs.rs]
-all-features = true
-
[profile.bench]
debug = true
[workspace]
members = [
+ "core",
+
"bindings/c",
"bindings/nodejs",
"bindings/object_store",
@@ -44,134 +29,3 @@ members = [
"binaries/oli",
]
-
-[features]
-default = ["rustls"]
-
-# Build docs or not.
-#
-# This features is used to control whether or not to build opendal's docs.
-# And doesn't have any other effects.
-docs = []
-
-# Enable trust-dns for pure rust dns cache.
-trust-dns = ["reqwest/trust-dns", "dep:trust-dns-resolver"]
-
-# Enable rustls for TLS support
-rustls = ["reqwest/rustls-tls-native-roots", "ureq/tls", "ureq/native-certs"]
-# Enable native-tls for TLS support
-native-tls = ["reqwest/native-tls", "ureq/native-tls"]
-# Enable vendored native-tls for TLS support
-native-tls-vendored = ["reqwest/native-tls-vendored", "ureq/native-tls"]
-
-# Enable all layers.
-layers-all = ["layers-chaos", "layers-metrics", "layers-tracing"]
-# Enable layers chaos support
-layers-chaos = ["dep:rand"]
-# Enable layers metrics support
-layers-metrics = ["dep:metrics"]
-# Enable layers tracing support.
-layers-tracing = ["dep:tracing"]
-
-# Enable services dashmap support
-services-dashmap = ["dep:dashmap"]
-# Enable services ftp support
-services-ftp = ["dep:suppaftp", "dep:lazy-regex", "dep:bb8", "dep:async-tls"]
-# Enable services hdfs support
-services-hdfs = ["dep:hdrs"]
-# Enable services ipfs support
-services-ipfs = ["dep:prost"]
-# Enable services memcached support
-services-memcached = ["dep:bb8"]
-# Enable services moka support
-services-moka = ["dep:moka"]
-# Enable services redis support
-services-redis = ["dep:redis"]
-# Enable services rocksdb support
-services-rocksdb = ["dep:rocksdb", "dep:librocksdb-sys"]
-# Enable services sled support
-services-sled = ["dep:sled"]
-
-[lib]
-bench = false
-
-[[bench]]
-harness = false
-name = "ops"
-
-[dependencies]
-anyhow = { version = "1.0.30", features = ["std"] }
-async-compat = "0.2"
-async-tls = { version = "0.11", optional = true }
-async-trait = "0.1.66"
-backon = "0.4.0"
-base64 = "0.21"
-bb8 = { version = "0.8", optional = true }
-bytes = "1.2"
-dashmap = { version = "5.4", optional = true }
-flagset = "0.4"
-futures = { version = "0.3", features = ["alloc"] }
-hdrs = { version = "0.2", optional = true, features = ["async_file"] }
-http = "0.2.5"
-hyper = "0.14"
-lazy-regex = { version = "2.5.0", optional = true }
-# Notes:
-# pin to 6.11 to allow we can use rocksdb 6.11 which is more widely used.
-librocksdb-sys = { version = "=6.11", optional = true }
-log = "0.4"
-md-5 = "0.10"
-metrics = { version = "0.20", optional = true }
-moka = { version = "0.10", optional = true, features = ["future"] }
-once_cell = "1"
-parking_lot = "0.12"
-percent-encoding = "2"
-pin-project = "1"
-prost = { version = "0.11", optional = true }
-quick-xml = { version = "0.27", features = ["serialize", "overlapped-lists"] }
-rand = { version = "0.8", optional = true }
-redis = { version = "0.22", features = [
- "tokio-comp",
- "connection-manager",
-], optional = true }
-reqsign = "0.8.5"
-reqwest = { version = "0.11.13", features = [
- "multipart",
- "stream",
-], default-features = false }
-# Notes:
-# pin to 0.15 to allow we can use rocksdb 6.x which is more widely used.
-rocksdb = { version = "0.15", default-features = false, optional = true }
-serde = { version = "1", features = ["derive"] }
-serde_json = "1"
-sled = { version = "0.34.7", optional = true }
-suppaftp = { version = "4.5", default-features = false, features = [
- "async-secure",
- "async-rustls",
-], optional = true }
-# time 0.3.18 bump MSRV to 1.62, let's pin to 0.3.17 until we decide
-# to bump ours
-time = { version = ">=0.3.10, <=0.3.17", features = ["serde"] }
-tokio = { version = "1.26", features = ["fs"] }
-tracing = { version = "0.1", optional = true }
-trust-dns-resolver = { version = "0.22", optional = true }
-ureq = { version = "2", default-features = false }
-uuid = { version = "1", features = ["serde", "v4"] }
-
-[dev-dependencies]
-cfg-if = "1"
-criterion = { version = "0.4", features = ["async", "async_tokio"] }
-dotenvy = "0.15"
-env_logger = "0.10"
-opentelemetry = { version = "0.17", default-features = false, features = [
- "trace",
-] }
-opentelemetry-jaeger = "0.16"
-paste = "1"
-pretty_assertions = "1"
-rand = "0.8"
-sha2 = "0.10"
-size = "0.4"
-tokio = { version = "1.26", features = ["fs", "macros", "rt-multi-thread"] }
-tracing-opentelemetry = "0.17"
-tracing-subscriber = { version = "0.3", features = ["env-filter"] }
-wiremock = "0.5"
diff --git a/binaries/oli/Cargo.toml b/binaries/oli/Cargo.toml
index f5afaca3..dadd05bd 100644
--- a/binaries/oli/Cargo.toml
+++ b/binaries/oli/Cargo.toml
@@ -34,7 +34,7 @@ clap = { version = "4", features = ["cargo", "string"] }
env_logger = "0.10"
futures = "0.3"
log = "0.4"
-opendal = { version = "0.30", path = "../../" }
+opendal = { version = "0.30", path = "../../core" }
tokio = { version = "1.26", features = ["fs", "macros", "rt-multi-thread"] }
[dev-dependencies]
diff --git a/bindings/c/Cargo.toml b/bindings/c/Cargo.toml
index 215f6ea7..44285f6e 100644
--- a/bindings/c/Cargo.toml
+++ b/bindings/c/Cargo.toml
@@ -30,4 +30,4 @@ crate-type = ["cdylib"]
name = "opendal"
[dependencies]
-opendal = { version = "0.30", path = "../../" }
+opendal = { version = "0.30", path = "../../core" }
diff --git a/bindings/nodejs/Cargo.toml b/bindings/nodejs/Cargo.toml
index d448df3f..9f523cf1 100644
--- a/bindings/nodejs/Cargo.toml
+++ b/bindings/nodejs/Cargo.toml
@@ -35,7 +35,7 @@ napi = { version = "2.11.3", default-features = false, features = [
"async",
] }
napi-derive = "2.11.1"
-opendal = { version = "0.30", path = "../../" }
+opendal = { version = "0.30", path = "../../core" }
time = { version = "0.3.17", features = ["formatting"] }
[build-dependencies]
diff --git a/bindings/object_store/Cargo.toml b/bindings/object_store/Cargo.toml
index 9d60a1f7..94a74222 100644
--- a/bindings/object_store/Cargo.toml
+++ b/bindings/object_store/Cargo.toml
@@ -32,7 +32,7 @@ bytes = "1"
chrono = "0.4.23"
futures = "0.3"
object_store = "0.5"
-opendal = { version = "0.30", path = "../../" }
+opendal = { version = "0.30", path = "../../core" }
tokio = "1"
[dev-dependencies]
diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml
index 9ba79afe..418afc05 100644
--- a/bindings/python/Cargo.toml
+++ b/bindings/python/Cargo.toml
@@ -32,7 +32,7 @@ name = "opendal"
[dependencies]
chrono = { version = "0.4.24", default-features = false, features = ["std"] }
futures = "0.3.27"
-opendal = { version = "0.30", path = "../../" }
+opendal = { version = "0.30", path = "../../core" }
pyo3 = { version = "0.18", features = ["extension-module", "chrono"] }
pyo3-asyncio = { version = "0.18", features = ["tokio-runtime"] }
tokio = "1"
diff --git a/Cargo.toml b/core/Cargo.toml
similarity index 95%
copy from Cargo.toml
copy to core/Cargo.toml
index ac3905ae..20f1b426 100644
--- a/Cargo.toml
+++ b/core/Cargo.toml
@@ -20,7 +20,7 @@ authors = ["OpenDAL Contributors <de...@opendal.apache.org>"]
categories = ["filesystem"]
description = "OpenDAL: Access data freely, painlessly, and efficiently."
edition = "2021"
-exclude = [".github/", "binaries/", "bindings/", "profiles/", "tests/"]
+exclude = ["tests/"]
homepage = "https://opendal.apache.org/"
keywords = ["storage", "fs", "s3", "azblob", "gcs"]
license = "Apache-2.0"
@@ -32,19 +32,6 @@ version = "0.30.3"
[package.metadata.docs.rs]
all-features = true
-[profile.bench]
-debug = true
-
-[workspace]
-members = [
- "bindings/c",
- "bindings/nodejs",
- "bindings/object_store",
- "bindings/python",
-
- "binaries/oli",
-]
-
[features]
default = ["rustls"]
diff --git a/benches/README.md b/core/benches/README.md
similarity index 100%
rename from benches/README.md
rename to core/benches/README.md
diff --git a/benches/ops/README.md b/core/benches/ops/README.md
similarity index 100%
rename from benches/ops/README.md
rename to core/benches/ops/README.md
diff --git a/benches/ops/main.rs b/core/benches/ops/main.rs
similarity index 100%
rename from benches/ops/main.rs
rename to core/benches/ops/main.rs
diff --git a/benches/ops/read.rs b/core/benches/ops/read.rs
similarity index 100%
rename from benches/ops/read.rs
rename to core/benches/ops/read.rs
diff --git a/benches/ops/utils.rs b/core/benches/ops/utils.rs
similarity index 100%
rename from benches/ops/utils.rs
rename to core/benches/ops/utils.rs
diff --git a/benches/ops/write.rs b/core/benches/ops/write.rs
similarity index 100%
rename from benches/ops/write.rs
rename to core/benches/ops/write.rs
diff --git a/examples/object.rs b/core/examples/object.rs
similarity index 100%
rename from examples/object.rs
rename to core/examples/object.rs
diff --git a/src/docs/comparisons/mod.rs b/core/src/docs/comparisons/mod.rs
similarity index 100%
rename from src/docs/comparisons/mod.rs
rename to core/src/docs/comparisons/mod.rs
diff --git a/src/docs/comparisons/vs_object_store.md b/core/src/docs/comparisons/vs_object_store.md
similarity index 100%
rename from src/docs/comparisons/vs_object_store.md
rename to core/src/docs/comparisons/vs_object_store.md
diff --git a/src/docs/concepts.rs b/core/src/docs/concepts.rs
similarity index 100%
rename from src/docs/concepts.rs
rename to core/src/docs/concepts.rs
diff --git a/src/docs/features.md b/core/src/docs/features.md
similarity index 100%
rename from src/docs/features.md
rename to core/src/docs/features.md
diff --git a/src/docs/internals/accessor.rs b/core/src/docs/internals/accessor.rs
similarity index 100%
rename from src/docs/internals/accessor.rs
rename to core/src/docs/internals/accessor.rs
diff --git a/src/docs/internals/layer.rs b/core/src/docs/internals/layer.rs
similarity index 100%
rename from src/docs/internals/layer.rs
rename to core/src/docs/internals/layer.rs
diff --git a/src/docs/internals/mod.rs b/core/src/docs/internals/mod.rs
similarity index 100%
rename from src/docs/internals/mod.rs
rename to core/src/docs/internals/mod.rs
diff --git a/src/docs/mod.rs b/core/src/docs/mod.rs
similarity index 96%
rename from src/docs/mod.rs
rename to core/src/docs/mod.rs
index bb11b085..64d66f50 100644
--- a/src/docs/mod.rs
+++ b/core/src/docs/mod.rs
@@ -26,7 +26,7 @@ pub mod concepts;
pub mod internals;
/// Changes log for all OpenDAL released versions.
-#[doc = include_str!("../../CHANGELOG.md")]
+#[doc = include_str!("../../../CHANGELOG.md")]
pub mod changelog {}
/// All features that provided by OpenDAL.
diff --git a/src/docs/rfcs/0000_example.md b/core/src/docs/rfcs/0000_example.md
similarity index 100%
rename from src/docs/rfcs/0000_example.md
rename to core/src/docs/rfcs/0000_example.md
diff --git a/src/docs/rfcs/0041_object_native_api.md b/core/src/docs/rfcs/0041_object_native_api.md
similarity index 100%
rename from src/docs/rfcs/0041_object_native_api.md
rename to core/src/docs/rfcs/0041_object_native_api.md
diff --git a/src/docs/rfcs/0044_error_handle.md b/core/src/docs/rfcs/0044_error_handle.md
similarity index 100%
rename from src/docs/rfcs/0044_error_handle.md
rename to core/src/docs/rfcs/0044_error_handle.md
diff --git a/src/docs/rfcs/0057_auto_region.md b/core/src/docs/rfcs/0057_auto_region.md
similarity index 100%
rename from src/docs/rfcs/0057_auto_region.md
rename to core/src/docs/rfcs/0057_auto_region.md
diff --git a/src/docs/rfcs/0069_object_stream.md b/core/src/docs/rfcs/0069_object_stream.md
similarity index 100%
rename from src/docs/rfcs/0069_object_stream.md
rename to core/src/docs/rfcs/0069_object_stream.md
diff --git a/src/docs/rfcs/0090_limited_reader.md b/core/src/docs/rfcs/0090_limited_reader.md
similarity index 100%
rename from src/docs/rfcs/0090_limited_reader.md
rename to core/src/docs/rfcs/0090_limited_reader.md
diff --git a/src/docs/rfcs/0112_path_normalization.md b/core/src/docs/rfcs/0112_path_normalization.md
similarity index 100%
rename from src/docs/rfcs/0112_path_normalization.md
rename to core/src/docs/rfcs/0112_path_normalization.md
diff --git a/src/docs/rfcs/0191_async_streaming_io.md b/core/src/docs/rfcs/0191_async_streaming_io.md
similarity index 100%
rename from src/docs/rfcs/0191_async_streaming_io.md
rename to core/src/docs/rfcs/0191_async_streaming_io.md
diff --git a/src/docs/rfcs/0203_remove_credential.md b/core/src/docs/rfcs/0203_remove_credential.md
similarity index 100%
rename from src/docs/rfcs/0203_remove_credential.md
rename to core/src/docs/rfcs/0203_remove_credential.md
diff --git a/src/docs/rfcs/0221_create_dir.md b/core/src/docs/rfcs/0221_create_dir.md
similarity index 100%
rename from src/docs/rfcs/0221_create_dir.md
rename to core/src/docs/rfcs/0221_create_dir.md
diff --git a/src/docs/rfcs/0247_retryable_error.md b/core/src/docs/rfcs/0247_retryable_error.md
similarity index 100%
rename from src/docs/rfcs/0247_retryable_error.md
rename to core/src/docs/rfcs/0247_retryable_error.md
diff --git a/src/docs/rfcs/0293_object_id.md b/core/src/docs/rfcs/0293_object_id.md
similarity index 100%
rename from src/docs/rfcs/0293_object_id.md
rename to core/src/docs/rfcs/0293_object_id.md
diff --git a/src/docs/rfcs/0337_dir_entry.md b/core/src/docs/rfcs/0337_dir_entry.md
similarity index 100%
rename from src/docs/rfcs/0337_dir_entry.md
rename to core/src/docs/rfcs/0337_dir_entry.md
diff --git a/src/docs/rfcs/0409_accessor_capabilities.md b/core/src/docs/rfcs/0409_accessor_capabilities.md
similarity index 100%
rename from src/docs/rfcs/0409_accessor_capabilities.md
rename to core/src/docs/rfcs/0409_accessor_capabilities.md
diff --git a/src/docs/rfcs/0413_presign.md b/core/src/docs/rfcs/0413_presign.md
similarity index 100%
rename from src/docs/rfcs/0413_presign.md
rename to core/src/docs/rfcs/0413_presign.md
diff --git a/src/docs/rfcs/0423_command_line_interface.md b/core/src/docs/rfcs/0423_command_line_interface.md
similarity index 100%
rename from src/docs/rfcs/0423_command_line_interface.md
rename to core/src/docs/rfcs/0423_command_line_interface.md
diff --git a/src/docs/rfcs/0429_init_from_iter.md b/core/src/docs/rfcs/0429_init_from_iter.md
similarity index 100%
rename from src/docs/rfcs/0429_init_from_iter.md
rename to core/src/docs/rfcs/0429_init_from_iter.md
diff --git a/src/docs/rfcs/0438_multipart.md b/core/src/docs/rfcs/0438_multipart.md
similarity index 100%
rename from src/docs/rfcs/0438_multipart.md
rename to core/src/docs/rfcs/0438_multipart.md
diff --git a/src/docs/rfcs/0443_gateway.md b/core/src/docs/rfcs/0443_gateway.md
similarity index 100%
rename from src/docs/rfcs/0443_gateway.md
rename to core/src/docs/rfcs/0443_gateway.md
diff --git a/src/docs/rfcs/0501_new_builder.md b/core/src/docs/rfcs/0501_new_builder.md
similarity index 100%
rename from src/docs/rfcs/0501_new_builder.md
rename to core/src/docs/rfcs/0501_new_builder.md
diff --git a/src/docs/rfcs/0554_write_refactor.md b/core/src/docs/rfcs/0554_write_refactor.md
similarity index 100%
rename from src/docs/rfcs/0554_write_refactor.md
rename to core/src/docs/rfcs/0554_write_refactor.md
diff --git a/src/docs/rfcs/0561_list_metadata_reuse.md b/core/src/docs/rfcs/0561_list_metadata_reuse.md
similarity index 100%
rename from src/docs/rfcs/0561_list_metadata_reuse.md
rename to core/src/docs/rfcs/0561_list_metadata_reuse.md
diff --git a/src/docs/rfcs/0599_blocking_api.md b/core/src/docs/rfcs/0599_blocking_api.md
similarity index 100%
rename from src/docs/rfcs/0599_blocking_api.md
rename to core/src/docs/rfcs/0599_blocking_api.md
diff --git a/src/docs/rfcs/0623_redis_service.md b/core/src/docs/rfcs/0623_redis_service.md
similarity index 100%
rename from src/docs/rfcs/0623_redis_service.md
rename to core/src/docs/rfcs/0623_redis_service.md
diff --git a/src/docs/rfcs/0627_split_capabilities.md b/core/src/docs/rfcs/0627_split_capabilities.md
similarity index 100%
rename from src/docs/rfcs/0627_split_capabilities.md
rename to core/src/docs/rfcs/0627_split_capabilities.md
diff --git a/src/docs/rfcs/0661_path_in_accessor.md b/core/src/docs/rfcs/0661_path_in_accessor.md
similarity index 100%
rename from src/docs/rfcs/0661_path_in_accessor.md
rename to core/src/docs/rfcs/0661_path_in_accessor.md
diff --git a/src/docs/rfcs/0793_generic_kv_services.md b/core/src/docs/rfcs/0793_generic_kv_services.md
similarity index 100%
rename from src/docs/rfcs/0793_generic_kv_services.md
rename to core/src/docs/rfcs/0793_generic_kv_services.md
diff --git a/src/docs/rfcs/0926_object_reader.md b/core/src/docs/rfcs/0926_object_reader.md
similarity index 100%
rename from src/docs/rfcs/0926_object_reader.md
rename to core/src/docs/rfcs/0926_object_reader.md
diff --git a/src/docs/rfcs/0977_refactor_error.md b/core/src/docs/rfcs/0977_refactor_error.md
similarity index 100%
rename from src/docs/rfcs/0977_refactor_error.md
rename to core/src/docs/rfcs/0977_refactor_error.md
diff --git a/src/docs/rfcs/1085_object_handler.md b/core/src/docs/rfcs/1085_object_handler.md
similarity index 100%
rename from src/docs/rfcs/1085_object_handler.md
rename to core/src/docs/rfcs/1085_object_handler.md
diff --git a/src/docs/rfcs/1391_object_metadataer.md b/core/src/docs/rfcs/1391_object_metadataer.md
similarity index 100%
rename from src/docs/rfcs/1391_object_metadataer.md
rename to core/src/docs/rfcs/1391_object_metadataer.md
diff --git a/src/docs/rfcs/1398_query_based_metadata.md b/core/src/docs/rfcs/1398_query_based_metadata.md
similarity index 100%
rename from src/docs/rfcs/1398_query_based_metadata.md
rename to core/src/docs/rfcs/1398_query_based_metadata.md
diff --git a/src/docs/rfcs/1420_object_writer.md b/core/src/docs/rfcs/1420_object_writer.md
similarity index 100%
rename from src/docs/rfcs/1420_object_writer.md
rename to core/src/docs/rfcs/1420_object_writer.md
diff --git a/src/docs/rfcs/1477_remove_object_concept.md b/core/src/docs/rfcs/1477_remove_object_concept.md
similarity index 100%
rename from src/docs/rfcs/1477_remove_object_concept.md
rename to core/src/docs/rfcs/1477_remove_object_concept.md
diff --git a/src/docs/rfcs/mod.rs b/core/src/docs/rfcs/mod.rs
similarity index 100%
rename from src/docs/rfcs/mod.rs
rename to core/src/docs/rfcs/mod.rs
diff --git a/src/docs/upgrade.md b/core/src/docs/upgrade.md
similarity index 100%
rename from src/docs/upgrade.md
rename to core/src/docs/upgrade.md
diff --git a/src/layers/chaos.rs b/core/src/layers/chaos.rs
similarity index 100%
rename from src/layers/chaos.rs
rename to core/src/layers/chaos.rs
diff --git a/src/layers/complete.rs b/core/src/layers/complete.rs
similarity index 100%
rename from src/layers/complete.rs
rename to core/src/layers/complete.rs
diff --git a/src/layers/concurrent_limit.rs b/core/src/layers/concurrent_limit.rs
similarity index 100%
rename from src/layers/concurrent_limit.rs
rename to core/src/layers/concurrent_limit.rs
diff --git a/src/layers/error_context.rs b/core/src/layers/error_context.rs
similarity index 100%
rename from src/layers/error_context.rs
rename to core/src/layers/error_context.rs
diff --git a/src/layers/immutable_index.rs b/core/src/layers/immutable_index.rs
similarity index 100%
rename from src/layers/immutable_index.rs
rename to core/src/layers/immutable_index.rs
diff --git a/src/layers/logging.rs b/core/src/layers/logging.rs
similarity index 100%
rename from src/layers/logging.rs
rename to core/src/layers/logging.rs
diff --git a/src/layers/metrics.rs b/core/src/layers/metrics.rs
similarity index 100%
rename from src/layers/metrics.rs
rename to core/src/layers/metrics.rs
diff --git a/src/layers/mod.rs b/core/src/layers/mod.rs
similarity index 100%
rename from src/layers/mod.rs
rename to core/src/layers/mod.rs
diff --git a/src/layers/retry.rs b/core/src/layers/retry.rs
similarity index 100%
rename from src/layers/retry.rs
rename to core/src/layers/retry.rs
diff --git a/src/layers/tracing.rs b/core/src/layers/tracing.rs
similarity index 100%
rename from src/layers/tracing.rs
rename to core/src/layers/tracing.rs
diff --git a/src/layers/type_eraser.rs b/core/src/layers/type_eraser.rs
similarity index 100%
rename from src/layers/type_eraser.rs
rename to core/src/layers/type_eraser.rs
diff --git a/src/lib.rs b/core/src/lib.rs
similarity index 100%
rename from src/lib.rs
rename to core/src/lib.rs
diff --git a/src/raw/accessor.rs b/core/src/raw/accessor.rs
similarity index 100%
rename from src/raw/accessor.rs
rename to core/src/raw/accessor.rs
diff --git a/src/raw/adapters/kv/api.rs b/core/src/raw/adapters/kv/api.rs
similarity index 100%
rename from src/raw/adapters/kv/api.rs
rename to core/src/raw/adapters/kv/api.rs
diff --git a/src/raw/adapters/kv/backend.rs b/core/src/raw/adapters/kv/backend.rs
similarity index 100%
rename from src/raw/adapters/kv/backend.rs
rename to core/src/raw/adapters/kv/backend.rs
diff --git a/src/raw/adapters/kv/mod.rs b/core/src/raw/adapters/kv/mod.rs
similarity index 100%
rename from src/raw/adapters/kv/mod.rs
rename to core/src/raw/adapters/kv/mod.rs
diff --git a/src/raw/adapters/mod.rs b/core/src/raw/adapters/mod.rs
similarity index 100%
rename from src/raw/adapters/mod.rs
rename to core/src/raw/adapters/mod.rs
diff --git a/src/raw/http_util/body.rs b/core/src/raw/http_util/body.rs
similarity index 100%
rename from src/raw/http_util/body.rs
rename to core/src/raw/http_util/body.rs
diff --git a/src/raw/http_util/bytes_content_range.rs b/core/src/raw/http_util/bytes_content_range.rs
similarity index 100%
rename from src/raw/http_util/bytes_content_range.rs
rename to core/src/raw/http_util/bytes_content_range.rs
diff --git a/src/raw/http_util/bytes_range.rs b/core/src/raw/http_util/bytes_range.rs
similarity index 100%
rename from src/raw/http_util/bytes_range.rs
rename to core/src/raw/http_util/bytes_range.rs
diff --git a/src/raw/http_util/client.rs b/core/src/raw/http_util/client.rs
similarity index 100%
rename from src/raw/http_util/client.rs
rename to core/src/raw/http_util/client.rs
diff --git a/src/raw/http_util/dns.rs b/core/src/raw/http_util/dns.rs
similarity index 100%
rename from src/raw/http_util/dns.rs
rename to core/src/raw/http_util/dns.rs
diff --git a/src/raw/http_util/error.rs b/core/src/raw/http_util/error.rs
similarity index 100%
rename from src/raw/http_util/error.rs
rename to core/src/raw/http_util/error.rs
diff --git a/src/raw/http_util/header.rs b/core/src/raw/http_util/header.rs
similarity index 100%
rename from src/raw/http_util/header.rs
rename to core/src/raw/http_util/header.rs
diff --git a/src/raw/http_util/mod.rs b/core/src/raw/http_util/mod.rs
similarity index 100%
rename from src/raw/http_util/mod.rs
rename to core/src/raw/http_util/mod.rs
diff --git a/src/raw/http_util/uri.rs b/core/src/raw/http_util/uri.rs
similarity index 100%
rename from src/raw/http_util/uri.rs
rename to core/src/raw/http_util/uri.rs
diff --git a/src/raw/layer.rs b/core/src/raw/layer.rs
similarity index 100%
rename from src/raw/layer.rs
rename to core/src/raw/layer.rs
diff --git a/src/raw/mod.rs b/core/src/raw/mod.rs
similarity index 100%
rename from src/raw/mod.rs
rename to core/src/raw/mod.rs
diff --git a/src/raw/oio/cursor.rs b/core/src/raw/oio/cursor.rs
similarity index 100%
rename from src/raw/oio/cursor.rs
rename to core/src/raw/oio/cursor.rs
diff --git a/src/raw/oio/entry.rs b/core/src/raw/oio/entry.rs
similarity index 100%
rename from src/raw/oio/entry.rs
rename to core/src/raw/oio/entry.rs
diff --git a/src/raw/oio/into_blocking_reader/from_fd.rs b/core/src/raw/oio/into_blocking_reader/from_fd.rs
similarity index 100%
rename from src/raw/oio/into_blocking_reader/from_fd.rs
rename to core/src/raw/oio/into_blocking_reader/from_fd.rs
diff --git a/src/raw/oio/into_blocking_reader/mod.rs b/core/src/raw/oio/into_blocking_reader/mod.rs
similarity index 100%
rename from src/raw/oio/into_blocking_reader/mod.rs
rename to core/src/raw/oio/into_blocking_reader/mod.rs
diff --git a/src/raw/oio/into_reader/by_range.rs b/core/src/raw/oio/into_reader/by_range.rs
similarity index 100%
rename from src/raw/oio/into_reader/by_range.rs
rename to core/src/raw/oio/into_reader/by_range.rs
diff --git a/src/raw/oio/into_reader/from_fd.rs b/core/src/raw/oio/into_reader/from_fd.rs
similarity index 100%
rename from src/raw/oio/into_reader/from_fd.rs
rename to core/src/raw/oio/into_reader/from_fd.rs
diff --git a/src/raw/oio/into_reader/mod.rs b/core/src/raw/oio/into_reader/mod.rs
similarity index 100%
rename from src/raw/oio/into_reader/mod.rs
rename to core/src/raw/oio/into_reader/mod.rs
diff --git a/src/raw/oio/into_streamable.rs b/core/src/raw/oio/into_streamable.rs
similarity index 100%
rename from src/raw/oio/into_streamable.rs
rename to core/src/raw/oio/into_streamable.rs
diff --git a/src/raw/oio/mod.rs b/core/src/raw/oio/mod.rs
similarity index 100%
rename from src/raw/oio/mod.rs
rename to core/src/raw/oio/mod.rs
diff --git a/src/raw/oio/page.rs b/core/src/raw/oio/page.rs
similarity index 100%
rename from src/raw/oio/page.rs
rename to core/src/raw/oio/page.rs
diff --git a/src/raw/oio/read.rs b/core/src/raw/oio/read.rs
similarity index 100%
rename from src/raw/oio/read.rs
rename to core/src/raw/oio/read.rs
diff --git a/src/raw/oio/to_flat_pager.rs b/core/src/raw/oio/to_flat_pager.rs
similarity index 100%
rename from src/raw/oio/to_flat_pager.rs
rename to core/src/raw/oio/to_flat_pager.rs
diff --git a/src/raw/oio/to_hierarchy_pager.rs b/core/src/raw/oio/to_hierarchy_pager.rs
similarity index 100%
rename from src/raw/oio/to_hierarchy_pager.rs
rename to core/src/raw/oio/to_hierarchy_pager.rs
diff --git a/src/raw/oio/write.rs b/core/src/raw/oio/write.rs
similarity index 100%
rename from src/raw/oio/write.rs
rename to core/src/raw/oio/write.rs
diff --git a/src/raw/operation.rs b/core/src/raw/operation.rs
similarity index 100%
rename from src/raw/operation.rs
rename to core/src/raw/operation.rs
diff --git a/src/raw/path.rs b/core/src/raw/path.rs
similarity index 100%
rename from src/raw/path.rs
rename to core/src/raw/path.rs
diff --git a/src/raw/rps.rs b/core/src/raw/rps.rs
similarity index 100%
rename from src/raw/rps.rs
rename to core/src/raw/rps.rs
diff --git a/src/raw/serde_util.rs b/core/src/raw/serde_util.rs
similarity index 100%
rename from src/raw/serde_util.rs
rename to core/src/raw/serde_util.rs
diff --git a/src/raw/version.rs b/core/src/raw/version.rs
similarity index 100%
rename from src/raw/version.rs
rename to core/src/raw/version.rs
diff --git a/src/services/azblob/backend.rs b/core/src/services/azblob/backend.rs
similarity index 100%
rename from src/services/azblob/backend.rs
rename to core/src/services/azblob/backend.rs
diff --git a/src/services/azblob/batch.rs b/core/src/services/azblob/batch.rs
similarity index 100%
rename from src/services/azblob/batch.rs
rename to core/src/services/azblob/batch.rs
diff --git a/src/services/azblob/error.rs b/core/src/services/azblob/error.rs
similarity index 100%
rename from src/services/azblob/error.rs
rename to core/src/services/azblob/error.rs
diff --git a/src/services/azblob/mod.rs b/core/src/services/azblob/mod.rs
similarity index 100%
rename from src/services/azblob/mod.rs
rename to core/src/services/azblob/mod.rs
diff --git a/src/services/azblob/pager.rs b/core/src/services/azblob/pager.rs
similarity index 100%
rename from src/services/azblob/pager.rs
rename to core/src/services/azblob/pager.rs
diff --git a/src/services/azblob/writer.rs b/core/src/services/azblob/writer.rs
similarity index 100%
rename from src/services/azblob/writer.rs
rename to core/src/services/azblob/writer.rs
diff --git a/src/services/azdfs/backend.rs b/core/src/services/azdfs/backend.rs
similarity index 100%
rename from src/services/azdfs/backend.rs
rename to core/src/services/azdfs/backend.rs
diff --git a/src/services/azdfs/error.rs b/core/src/services/azdfs/error.rs
similarity index 100%
rename from src/services/azdfs/error.rs
rename to core/src/services/azdfs/error.rs
diff --git a/src/services/azdfs/mod.rs b/core/src/services/azdfs/mod.rs
similarity index 100%
rename from src/services/azdfs/mod.rs
rename to core/src/services/azdfs/mod.rs
diff --git a/src/services/azdfs/pager.rs b/core/src/services/azdfs/pager.rs
similarity index 100%
rename from src/services/azdfs/pager.rs
rename to core/src/services/azdfs/pager.rs
diff --git a/src/services/azdfs/writer.rs b/core/src/services/azdfs/writer.rs
similarity index 100%
rename from src/services/azdfs/writer.rs
rename to core/src/services/azdfs/writer.rs
diff --git a/src/services/dashmap/backend.rs b/core/src/services/dashmap/backend.rs
similarity index 100%
rename from src/services/dashmap/backend.rs
rename to core/src/services/dashmap/backend.rs
diff --git a/src/services/dashmap/mod.rs b/core/src/services/dashmap/mod.rs
similarity index 100%
rename from src/services/dashmap/mod.rs
rename to core/src/services/dashmap/mod.rs
diff --git a/src/services/fs/backend.rs b/core/src/services/fs/backend.rs
similarity index 100%
rename from src/services/fs/backend.rs
rename to core/src/services/fs/backend.rs
diff --git a/src/services/fs/error.rs b/core/src/services/fs/error.rs
similarity index 100%
rename from src/services/fs/error.rs
rename to core/src/services/fs/error.rs
diff --git a/src/services/fs/mod.rs b/core/src/services/fs/mod.rs
similarity index 100%
rename from src/services/fs/mod.rs
rename to core/src/services/fs/mod.rs
diff --git a/src/services/fs/pager.rs b/core/src/services/fs/pager.rs
similarity index 100%
rename from src/services/fs/pager.rs
rename to core/src/services/fs/pager.rs
diff --git a/src/services/fs/writer.rs b/core/src/services/fs/writer.rs
similarity index 100%
rename from src/services/fs/writer.rs
rename to core/src/services/fs/writer.rs
diff --git a/src/services/ftp/backend.rs b/core/src/services/ftp/backend.rs
similarity index 100%
rename from src/services/ftp/backend.rs
rename to core/src/services/ftp/backend.rs
diff --git a/src/services/ftp/err.rs b/core/src/services/ftp/err.rs
similarity index 100%
rename from src/services/ftp/err.rs
rename to core/src/services/ftp/err.rs
diff --git a/src/services/ftp/mod.rs b/core/src/services/ftp/mod.rs
similarity index 100%
rename from src/services/ftp/mod.rs
rename to core/src/services/ftp/mod.rs
diff --git a/src/services/ftp/pager.rs b/core/src/services/ftp/pager.rs
similarity index 100%
rename from src/services/ftp/pager.rs
rename to core/src/services/ftp/pager.rs
diff --git a/src/services/ftp/util.rs b/core/src/services/ftp/util.rs
similarity index 100%
rename from src/services/ftp/util.rs
rename to core/src/services/ftp/util.rs
diff --git a/src/services/ftp/writer.rs b/core/src/services/ftp/writer.rs
similarity index 100%
rename from src/services/ftp/writer.rs
rename to core/src/services/ftp/writer.rs
diff --git a/src/services/gcs/backend.rs b/core/src/services/gcs/backend.rs
similarity index 100%
rename from src/services/gcs/backend.rs
rename to core/src/services/gcs/backend.rs
diff --git a/src/services/gcs/error.rs b/core/src/services/gcs/error.rs
similarity index 100%
rename from src/services/gcs/error.rs
rename to core/src/services/gcs/error.rs
diff --git a/src/services/gcs/mod.rs b/core/src/services/gcs/mod.rs
similarity index 100%
rename from src/services/gcs/mod.rs
rename to core/src/services/gcs/mod.rs
diff --git a/src/services/gcs/pager.rs b/core/src/services/gcs/pager.rs
similarity index 100%
rename from src/services/gcs/pager.rs
rename to core/src/services/gcs/pager.rs
diff --git a/src/services/gcs/uri.rs b/core/src/services/gcs/uri.rs
similarity index 100%
rename from src/services/gcs/uri.rs
rename to core/src/services/gcs/uri.rs
diff --git a/src/services/gcs/writer.rs b/core/src/services/gcs/writer.rs
similarity index 100%
rename from src/services/gcs/writer.rs
rename to core/src/services/gcs/writer.rs
diff --git a/src/services/ghac/backend.rs b/core/src/services/ghac/backend.rs
similarity index 100%
rename from src/services/ghac/backend.rs
rename to core/src/services/ghac/backend.rs
diff --git a/src/services/ghac/error.rs b/core/src/services/ghac/error.rs
similarity index 100%
rename from src/services/ghac/error.rs
rename to core/src/services/ghac/error.rs
diff --git a/src/services/ghac/mod.rs b/core/src/services/ghac/mod.rs
similarity index 100%
rename from src/services/ghac/mod.rs
rename to core/src/services/ghac/mod.rs
diff --git a/src/services/ghac/writer.rs b/core/src/services/ghac/writer.rs
similarity index 100%
rename from src/services/ghac/writer.rs
rename to core/src/services/ghac/writer.rs
diff --git a/src/services/hdfs/backend.rs b/core/src/services/hdfs/backend.rs
similarity index 100%
rename from src/services/hdfs/backend.rs
rename to core/src/services/hdfs/backend.rs
diff --git a/src/services/hdfs/error.rs b/core/src/services/hdfs/error.rs
similarity index 100%
rename from src/services/hdfs/error.rs
rename to core/src/services/hdfs/error.rs
diff --git a/src/services/hdfs/mod.rs b/core/src/services/hdfs/mod.rs
similarity index 100%
rename from src/services/hdfs/mod.rs
rename to core/src/services/hdfs/mod.rs
diff --git a/src/services/hdfs/pager.rs b/core/src/services/hdfs/pager.rs
similarity index 100%
rename from src/services/hdfs/pager.rs
rename to core/src/services/hdfs/pager.rs
diff --git a/src/services/hdfs/writer.rs b/core/src/services/hdfs/writer.rs
similarity index 100%
rename from src/services/hdfs/writer.rs
rename to core/src/services/hdfs/writer.rs
diff --git a/src/services/http/backend.rs b/core/src/services/http/backend.rs
similarity index 100%
rename from src/services/http/backend.rs
rename to core/src/services/http/backend.rs
diff --git a/src/services/http/error.rs b/core/src/services/http/error.rs
similarity index 100%
rename from src/services/http/error.rs
rename to core/src/services/http/error.rs
diff --git a/src/services/http/fixtures/nginx.conf b/core/src/services/http/fixtures/nginx.conf
similarity index 100%
rename from src/services/http/fixtures/nginx.conf
rename to core/src/services/http/fixtures/nginx.conf
diff --git a/src/services/http/mod.rs b/core/src/services/http/mod.rs
similarity index 100%
rename from src/services/http/mod.rs
rename to core/src/services/http/mod.rs
diff --git a/src/services/ipfs/backend.rs b/core/src/services/ipfs/backend.rs
similarity index 100%
rename from src/services/ipfs/backend.rs
rename to core/src/services/ipfs/backend.rs
diff --git a/src/services/ipfs/error.rs b/core/src/services/ipfs/error.rs
similarity index 100%
rename from src/services/ipfs/error.rs
rename to core/src/services/ipfs/error.rs
diff --git a/src/services/ipfs/ipld.rs b/core/src/services/ipfs/ipld.rs
similarity index 100%
rename from src/services/ipfs/ipld.rs
rename to core/src/services/ipfs/ipld.rs
diff --git a/src/services/ipfs/mod.rs b/core/src/services/ipfs/mod.rs
similarity index 100%
rename from src/services/ipfs/mod.rs
rename to core/src/services/ipfs/mod.rs
diff --git a/src/services/ipmfs/backend.rs b/core/src/services/ipmfs/backend.rs
similarity index 100%
rename from src/services/ipmfs/backend.rs
rename to core/src/services/ipmfs/backend.rs
diff --git a/src/services/ipmfs/builder.rs b/core/src/services/ipmfs/builder.rs
similarity index 100%
rename from src/services/ipmfs/builder.rs
rename to core/src/services/ipmfs/builder.rs
diff --git a/src/services/ipmfs/error.rs b/core/src/services/ipmfs/error.rs
similarity index 100%
rename from src/services/ipmfs/error.rs
rename to core/src/services/ipmfs/error.rs
diff --git a/src/services/ipmfs/mod.rs b/core/src/services/ipmfs/mod.rs
similarity index 100%
rename from src/services/ipmfs/mod.rs
rename to core/src/services/ipmfs/mod.rs
diff --git a/src/services/ipmfs/pager.rs b/core/src/services/ipmfs/pager.rs
similarity index 100%
rename from src/services/ipmfs/pager.rs
rename to core/src/services/ipmfs/pager.rs
diff --git a/src/services/ipmfs/writer.rs b/core/src/services/ipmfs/writer.rs
similarity index 100%
rename from src/services/ipmfs/writer.rs
rename to core/src/services/ipmfs/writer.rs
diff --git a/src/services/memcached/MIT-ascii.txt b/core/src/services/memcached/MIT-ascii.txt
similarity index 100%
rename from src/services/memcached/MIT-ascii.txt
rename to core/src/services/memcached/MIT-ascii.txt
diff --git a/src/services/memcached/ascii.rs b/core/src/services/memcached/ascii.rs
similarity index 100%
rename from src/services/memcached/ascii.rs
rename to core/src/services/memcached/ascii.rs
diff --git a/src/services/memcached/backend.rs b/core/src/services/memcached/backend.rs
similarity index 100%
rename from src/services/memcached/backend.rs
rename to core/src/services/memcached/backend.rs
diff --git a/src/services/memcached/mod.rs b/core/src/services/memcached/mod.rs
similarity index 100%
rename from src/services/memcached/mod.rs
rename to core/src/services/memcached/mod.rs
diff --git a/src/services/memory/backend.rs b/core/src/services/memory/backend.rs
similarity index 100%
rename from src/services/memory/backend.rs
rename to core/src/services/memory/backend.rs
diff --git a/src/services/memory/mod.rs b/core/src/services/memory/mod.rs
similarity index 100%
rename from src/services/memory/mod.rs
rename to core/src/services/memory/mod.rs
diff --git a/src/services/mod.rs b/core/src/services/mod.rs
similarity index 100%
rename from src/services/mod.rs
rename to core/src/services/mod.rs
diff --git a/src/services/moka/backend.rs b/core/src/services/moka/backend.rs
similarity index 100%
rename from src/services/moka/backend.rs
rename to core/src/services/moka/backend.rs
diff --git a/src/services/moka/mod.rs b/core/src/services/moka/mod.rs
similarity index 100%
rename from src/services/moka/mod.rs
rename to core/src/services/moka/mod.rs
diff --git a/src/services/obs/backend.rs b/core/src/services/obs/backend.rs
similarity index 100%
rename from src/services/obs/backend.rs
rename to core/src/services/obs/backend.rs
diff --git a/src/services/obs/error.rs b/core/src/services/obs/error.rs
similarity index 100%
rename from src/services/obs/error.rs
rename to core/src/services/obs/error.rs
diff --git a/src/services/obs/mod.rs b/core/src/services/obs/mod.rs
similarity index 100%
rename from src/services/obs/mod.rs
rename to core/src/services/obs/mod.rs
diff --git a/src/services/obs/pager.rs b/core/src/services/obs/pager.rs
similarity index 100%
rename from src/services/obs/pager.rs
rename to core/src/services/obs/pager.rs
diff --git a/src/services/obs/writer.rs b/core/src/services/obs/writer.rs
similarity index 100%
rename from src/services/obs/writer.rs
rename to core/src/services/obs/writer.rs
diff --git a/src/services/oss/backend.rs b/core/src/services/oss/backend.rs
similarity index 100%
rename from src/services/oss/backend.rs
rename to core/src/services/oss/backend.rs
diff --git a/src/services/oss/error.rs b/core/src/services/oss/error.rs
similarity index 100%
rename from src/services/oss/error.rs
rename to core/src/services/oss/error.rs
diff --git a/src/services/oss/mod.rs b/core/src/services/oss/mod.rs
similarity index 100%
rename from src/services/oss/mod.rs
rename to core/src/services/oss/mod.rs
diff --git a/src/services/oss/pager.rs b/core/src/services/oss/pager.rs
similarity index 100%
rename from src/services/oss/pager.rs
rename to core/src/services/oss/pager.rs
diff --git a/src/services/oss/writer.rs b/core/src/services/oss/writer.rs
similarity index 100%
rename from src/services/oss/writer.rs
rename to core/src/services/oss/writer.rs
diff --git a/src/services/redis/backend.rs b/core/src/services/redis/backend.rs
similarity index 100%
rename from src/services/redis/backend.rs
rename to core/src/services/redis/backend.rs
diff --git a/src/services/redis/mod.rs b/core/src/services/redis/mod.rs
similarity index 100%
rename from src/services/redis/mod.rs
rename to core/src/services/redis/mod.rs
diff --git a/src/services/rocksdb/backend.rs b/core/src/services/rocksdb/backend.rs
similarity index 100%
rename from src/services/rocksdb/backend.rs
rename to core/src/services/rocksdb/backend.rs
diff --git a/src/services/rocksdb/mod.rs b/core/src/services/rocksdb/mod.rs
similarity index 100%
rename from src/services/rocksdb/mod.rs
rename to core/src/services/rocksdb/mod.rs
diff --git a/src/services/s3/backend.rs b/core/src/services/s3/backend.rs
similarity index 100%
rename from src/services/s3/backend.rs
rename to core/src/services/s3/backend.rs
diff --git a/src/services/s3/compatible_services.md b/core/src/services/s3/compatible_services.md
similarity index 100%
rename from src/services/s3/compatible_services.md
rename to core/src/services/s3/compatible_services.md
diff --git a/src/services/s3/error.rs b/core/src/services/s3/error.rs
similarity index 100%
rename from src/services/s3/error.rs
rename to core/src/services/s3/error.rs
diff --git a/src/services/s3/mod.rs b/core/src/services/s3/mod.rs
similarity index 100%
rename from src/services/s3/mod.rs
rename to core/src/services/s3/mod.rs
diff --git a/src/services/s3/pager.rs b/core/src/services/s3/pager.rs
similarity index 100%
rename from src/services/s3/pager.rs
rename to core/src/services/s3/pager.rs
diff --git a/src/services/s3/writer.rs b/core/src/services/s3/writer.rs
similarity index 100%
rename from src/services/s3/writer.rs
rename to core/src/services/s3/writer.rs
diff --git a/src/services/sled/backend.rs b/core/src/services/sled/backend.rs
similarity index 100%
rename from src/services/sled/backend.rs
rename to core/src/services/sled/backend.rs
diff --git a/src/services/sled/mod.rs b/core/src/services/sled/mod.rs
similarity index 100%
rename from src/services/sled/mod.rs
rename to core/src/services/sled/mod.rs
diff --git a/src/services/webdav/backend.rs b/core/src/services/webdav/backend.rs
similarity index 100%
rename from src/services/webdav/backend.rs
rename to core/src/services/webdav/backend.rs
diff --git a/src/services/webdav/error.rs b/core/src/services/webdav/error.rs
similarity index 100%
rename from src/services/webdav/error.rs
rename to core/src/services/webdav/error.rs
diff --git a/src/services/webdav/fixtures/htpasswd b/core/src/services/webdav/fixtures/htpasswd
similarity index 100%
rename from src/services/webdav/fixtures/htpasswd
rename to core/src/services/webdav/fixtures/htpasswd
diff --git a/src/services/webdav/fixtures/nginx-with-basic-auth.conf b/core/src/services/webdav/fixtures/nginx-with-basic-auth.conf
similarity index 100%
rename from src/services/webdav/fixtures/nginx-with-basic-auth.conf
rename to core/src/services/webdav/fixtures/nginx-with-basic-auth.conf
diff --git a/src/services/webdav/fixtures/nginx.conf b/core/src/services/webdav/fixtures/nginx.conf
similarity index 100%
rename from src/services/webdav/fixtures/nginx.conf
rename to core/src/services/webdav/fixtures/nginx.conf
diff --git a/src/services/webdav/list_response.rs b/core/src/services/webdav/list_response.rs
similarity index 100%
rename from src/services/webdav/list_response.rs
rename to core/src/services/webdav/list_response.rs
diff --git a/src/services/webdav/mod.rs b/core/src/services/webdav/mod.rs
similarity index 100%
rename from src/services/webdav/mod.rs
rename to core/src/services/webdav/mod.rs
diff --git a/src/services/webdav/pager.rs b/core/src/services/webdav/pager.rs
similarity index 100%
rename from src/services/webdav/pager.rs
rename to core/src/services/webdav/pager.rs
diff --git a/src/services/webdav/writer.rs b/core/src/services/webdav/writer.rs
similarity index 100%
rename from src/services/webdav/writer.rs
rename to core/src/services/webdav/writer.rs
diff --git a/src/services/webhdfs/backend.rs b/core/src/services/webhdfs/backend.rs
similarity index 100%
rename from src/services/webhdfs/backend.rs
rename to core/src/services/webhdfs/backend.rs
diff --git a/src/services/webhdfs/error.rs b/core/src/services/webhdfs/error.rs
similarity index 100%
rename from src/services/webhdfs/error.rs
rename to core/src/services/webhdfs/error.rs
diff --git a/src/services/webhdfs/message.rs b/core/src/services/webhdfs/message.rs
similarity index 100%
rename from src/services/webhdfs/message.rs
rename to core/src/services/webhdfs/message.rs
diff --git a/src/services/webhdfs/mod.rs b/core/src/services/webhdfs/mod.rs
similarity index 100%
rename from src/services/webhdfs/mod.rs
rename to core/src/services/webhdfs/mod.rs
diff --git a/src/services/webhdfs/pager.rs b/core/src/services/webhdfs/pager.rs
similarity index 100%
rename from src/services/webhdfs/pager.rs
rename to core/src/services/webhdfs/pager.rs
diff --git a/src/services/webhdfs/writer.rs b/core/src/services/webhdfs/writer.rs
similarity index 100%
rename from src/services/webhdfs/writer.rs
rename to core/src/services/webhdfs/writer.rs
diff --git a/src/types/builder.rs b/core/src/types/builder.rs
similarity index 100%
rename from src/types/builder.rs
rename to core/src/types/builder.rs
diff --git a/src/types/entry.rs b/core/src/types/entry.rs
similarity index 100%
rename from src/types/entry.rs
rename to core/src/types/entry.rs
diff --git a/src/types/error.rs b/core/src/types/error.rs
similarity index 100%
rename from src/types/error.rs
rename to core/src/types/error.rs
diff --git a/src/types/list.rs b/core/src/types/list.rs
similarity index 100%
rename from src/types/list.rs
rename to core/src/types/list.rs
diff --git a/src/types/metadata.rs b/core/src/types/metadata.rs
similarity index 100%
rename from src/types/metadata.rs
rename to core/src/types/metadata.rs
diff --git a/src/types/mod.rs b/core/src/types/mod.rs
similarity index 100%
rename from src/types/mod.rs
rename to core/src/types/mod.rs
diff --git a/src/types/mode.rs b/core/src/types/mode.rs
similarity index 100%
rename from src/types/mode.rs
rename to core/src/types/mode.rs
diff --git a/src/types/operator/blocking_operator.rs b/core/src/types/operator/blocking_operator.rs
similarity index 100%
rename from src/types/operator/blocking_operator.rs
rename to core/src/types/operator/blocking_operator.rs
diff --git a/src/types/operator/builder.rs b/core/src/types/operator/builder.rs
similarity index 100%
rename from src/types/operator/builder.rs
rename to core/src/types/operator/builder.rs
diff --git a/src/types/operator/metadata.rs b/core/src/types/operator/metadata.rs
similarity index 100%
rename from src/types/operator/metadata.rs
rename to core/src/types/operator/metadata.rs
diff --git a/src/types/operator/mod.rs b/core/src/types/operator/mod.rs
similarity index 100%
rename from src/types/operator/mod.rs
rename to core/src/types/operator/mod.rs
diff --git a/src/types/operator/operator.rs b/core/src/types/operator/operator.rs
similarity index 100%
rename from src/types/operator/operator.rs
rename to core/src/types/operator/operator.rs
diff --git a/src/types/ops.rs b/core/src/types/ops.rs
similarity index 100%
rename from src/types/ops.rs
rename to core/src/types/ops.rs
diff --git a/src/types/reader.rs b/core/src/types/reader.rs
similarity index 100%
rename from src/types/reader.rs
rename to core/src/types/reader.rs
diff --git a/src/types/scheme.rs b/core/src/types/scheme.rs
similarity index 100%
rename from src/types/scheme.rs
rename to core/src/types/scheme.rs
diff --git a/src/types/writer.rs b/core/src/types/writer.rs
similarity index 100%
rename from src/types/writer.rs
rename to core/src/types/writer.rs
diff --git a/tests/behavior/README.md b/core/tests/behavior/README.md
similarity index 100%
rename from tests/behavior/README.md
rename to core/tests/behavior/README.md
diff --git a/tests/behavior/blocking_list.rs b/core/tests/behavior/blocking_list.rs
similarity index 100%
rename from tests/behavior/blocking_list.rs
rename to core/tests/behavior/blocking_list.rs
diff --git a/tests/behavior/blocking_read.rs b/core/tests/behavior/blocking_read.rs
similarity index 100%
rename from tests/behavior/blocking_read.rs
rename to core/tests/behavior/blocking_read.rs
diff --git a/tests/behavior/blocking_write.rs b/core/tests/behavior/blocking_write.rs
similarity index 100%
rename from tests/behavior/blocking_write.rs
rename to core/tests/behavior/blocking_write.rs
diff --git a/tests/behavior/list.rs b/core/tests/behavior/list.rs
similarity index 100%
rename from tests/behavior/list.rs
rename to core/tests/behavior/list.rs
diff --git a/tests/behavior/list_only.rs b/core/tests/behavior/list_only.rs
similarity index 100%
rename from tests/behavior/list_only.rs
rename to core/tests/behavior/list_only.rs
diff --git a/tests/behavior/main.rs b/core/tests/behavior/main.rs
similarity index 100%
rename from tests/behavior/main.rs
rename to core/tests/behavior/main.rs
diff --git a/tests/behavior/presign.rs b/core/tests/behavior/presign.rs
similarity index 100%
rename from tests/behavior/presign.rs
rename to core/tests/behavior/presign.rs
diff --git a/tests/behavior/read_only.rs b/core/tests/behavior/read_only.rs
similarity index 100%
rename from tests/behavior/read_only.rs
rename to core/tests/behavior/read_only.rs
diff --git a/tests/behavior/utils.rs b/core/tests/behavior/utils.rs
similarity index 100%
rename from tests/behavior/utils.rs
rename to core/tests/behavior/utils.rs
diff --git a/tests/behavior/write.rs b/core/tests/behavior/write.rs
similarity index 100%
rename from tests/behavior/write.rs
rename to core/tests/behavior/write.rs
diff --git a/tests/data/normal_dir/.gitkeep b/core/tests/data/normal_dir/.gitkeep
similarity index 100%
rename from tests/data/normal_dir/.gitkeep
rename to core/tests/data/normal_dir/.gitkeep
diff --git a/tests/data/normal_file b/core/tests/data/normal_file
similarity index 100%
rename from tests/data/normal_file
rename to core/tests/data/normal_file
diff --git a/tests/data/special_dir !@#$%^&()_+-=;',/.gitkeep b/core/tests/data/special_dir !@#$%^&()_+-=;',/.gitkeep
similarity index 100%
rename from tests/data/special_dir !@#$%^&()_+-=;',/.gitkeep
rename to core/tests/data/special_dir !@#$%^&()_+-=;',/.gitkeep
diff --git a/tests/data/special_file !@#$%^&()_+-=;', b/core/tests/data/special_file !@#$%^&()_+-=;',
similarity index 100%
rename from tests/data/special_file !@#$%^&()_+-=;',
rename to core/tests/data/special_file !@#$%^&()_+-=;',