Skip to content

Releases: apache/opendal

v0.41.0

16 Oct 08:50
v0.41.0
779750a
Compare
Choose a tag to compare

Upgrade Note

Rust Core

There are no public API and raw API changes.

Java binding

Breaking change for constructing operators

PR-3166 changes the API for constructing operators:

Previous:

new BlockingOperator(scheme, config);
new Operator(scheme, config);

Current:

BlockingOperator.of(scheme, config);
Operator.of(scheme, config);

Now, there is no public constructor for operators, but only factory methods. In this way, the APIs are free to do arbitrary verifications and preparations before constructing operators.

Node.js binding

There are no API changes.

Python binding

There are no API changes.


What's Changed

Added

  • feat: allow using prometheus-client crate with PrometheusClientLayer by @flaneur2020 in #3134
  • feat(binding/java): support info ops by @G-XD in #3154
  • test(binding/java): add behavior test framework by @G-XD in #3129
  • feat: Include starting offset for GHAC upload Content-Range by @huonw in #3163
  • feat(bindings/cpp): make ReaderStream manage the lifetime of Reader by @silver-ymz in #3164
  • feat: Enable multi write for ghac by @Xuanwo in #3165
  • feat: Add mysql support for OpenDAL by @Zheaoli in #3170
  • feat(service/postgresql): support connection pool by @Zheaoli in #3176
  • feat(services/ghac): Allow explicitly setting ghac endpoint/token, not just env vars by @huonw in #3177
  • feat(service/azdls): add append support for azdls by @dqhl76 in #3186
  • feat(bindings/python): Enable BlockingLayer for non-blocking services that don't support blocking by @messense in #3198
  • feat: Add write_can_empty in Capability and related tests by @Xuanwo in #3200
  • feat: Add basic support for bindings/go using CGO by @jiaoew1991 in #3204
  • feat(binding/java): add copy test by @G-XD in #3207
  • feat(service/sqlite): Support sqlite for opendal by @Zheaoli in #3212
  • feat(services/sqlite): Support blocking_get/set/delete in sqlite service by @Zheaoli in #3218
  • feat(oay): port WebdavFs to dav-server-fs-opendal by @Young-Flash in #3119

Changed

  • refactor(services/dropbox): Use OpWrite instead of passing all args as parameters by @ImSingee in #3126
  • refactor(binding/java): read should return bytes by @tisonkun in #3153
  • refactor(bindings/java)!: operator jni calls by @tisonkun in #3166
  • refactor(tests): reuse function to remove duplicate code by @zhao-gang in #3219

Fixed

  • fix(tests): Create test files one by one instead of concurrently by @Xuanwo in #3132
  • chore(ci): fix web identity token path for aws s3 assume role test by @everpcpc in #3141
  • fix(services/s3): Detect region returned too early when header is empty by @Xuanwo in #3187
  • fix: making OpenDAL compilable on 32hf platforms by @ClSlaid in #3188
  • fix(binding/java): decode Java’s modified UTF-8 format by @G-XD in #3195

Docs

CI

  • ci: Align tags with semver specs by @Xuanwo in #3136
  • ci: Migrate obs to databend labs sponsored bucket by @Xuanwo in #3137
  • build(bindings/java): support develop with JDK 21 by @tisonkun in #3140
  • ci: Migrate GCS to Databend Labs sponsored bucket by @Xuanwo in #3142
  • build(bindings/java): upgrade maven wrapper version by @tisonkun in #3167
  • build(bindings/java): support explicit cargo build target by @tisonkun in #3168
  • ci: Pin Kvrocks docker image to 2.5.1 to avoid test failure by @git-hulk in #3192
  • ci(bindings/ocaml): add doc by @Ranxy in #3208
  • build(deps): bump actions/checkout from 3 to 4 by @dependabot in #3222
  • build(deps): bump korandoru/hawkeye from 3.3.0 to 3.4.0 by @dependabot in #3223
  • build(deps): bump rusqlite from 0.25.4 to 0.29.0 by @dependabot in #3226

Chore

New Contributors

Full Changelog: v0.40.0...v0.41.0

v0.40.0

21 Sep 05:36
v0.40.0
9a775bd
Compare
Choose a tag to compare

Checkout our OwO #1 to know more about this release!

Upgrade Note

Public API

RFC-2578 Merge Append Into Write

RFC-2578 merges append into write and removes append API.

  • For writing a file at once, please use op.write() for convenience.
  • For appending a file, please use op.write_with().append(true) instead of op.append().

The same rule applies to writer() and writer_with().

RFC-2774 Lister API

RFC-2774 proposes a new lister API to replace current list and scan. And we add a new API list to return entries directly.

  • For listing a directory at once, please use list() for convenience.
  • For listing a directory recursively, please use list_with().delimiter("") or lister_with().delimiter("") instead of scan().
  • For listing in streaming, please use lister() or lister_with() instead.

RFC-2779 List With Metakey

RFC-2779 proposes a new op.list_with().metakey() API to allow list with metakey and removes op.metadata(&entry) API.

Please use op.list_with().metakey() instead of op.metadata(&entry), for example:

// Before
let entries: Vec<Entry> = op.list("dir/").await?;
for entry in entris {
  let meta = op.metadata(&entry, Metakey::ContentLength | Metakey::ContentType).await?;
  println!("{} {}", entry.name(), entry.metadata().content_length());
}

// After
let entries: Vec<Entry> = op
  .list_with("dir/")
  .metakey(Metakey::ContentLength | Metakey::ContentType).await?;
for entry in entris {
  println!("{} {}", entry.name(), entry.metadata().content_length());
}

RFC-2852: Native Capability

RFC-2852 proposes new native_capability and full_capability API to allow users to check if the underlying service supports a capability natively.

  • native_capability returns true if the capability is supported natively.
  • full_capability returns true if the capability is supported, maybe via a layer.

Most of time, you can use full_capability to replace capability call. But if to check if the capability is supported natively for better performance design, please use native_capability instead.

Buffered Writer

OpenDAL v0.40 added buffered writer support!

Users don't need to specify the content_length() for writer anymore!

- let mut w = op.writer_with("path/to/file").content_length(1024).await?;
+ let mut w = op.writer_with("path/to/file").await?;

Users can specify the buffer() to control the size we call underlying storage:

let mut w = op.writer_with("path/to/file").buffer(8 * 1024 * 1024).await?;

If buffer is not specified, we will call underlying storage everytime we call write. Otherwise, we will make sure to call underlying storage when buffer is full or close is called.

Raw API

RFC-3017 Remove Write Copy From

RFC-3017 removes copy_from API from the oio::Write trait. Users who implements services and layers by hand should remove this API.

What's Changed

Added

  • feat(service/etcd): support list by @G-XD in #2755
  • feat: setup the integrate with PHP binding by @godruoyi in #2726
  • feat(oay): Add read_dir by @Young-Flash in #2736
  • feat(obs): support loading credential from env by @everpcpc in #2767
  • feat: add async backtrace layer by @dqhl76 in #2765
  • feat: Add OCaml Binding by @Ranxy in #2757
  • feat(bindings/haskell): support logging layer by @silver-ymz in #2705
  • feat: Add FoundationDB Support for OpenDAL by @ArmandoZ in #2751
  • feat(oay): add write for oay webdav by @Young-Flash in #2769
  • feat: Implement RFC-2774 Lister API by @Xuanwo in #2787
  • feat(bindings/haskell): enhance original OpMonad to support custom IO monad by @silver-ymz in #2789
  • feat: Add into_seekable_read_by_range support for blocking read by @Xuanwo in #2799
  • feat(layers/blocking): add blocking layer by @yah01 in #2780
  • feat: Add async list with metakey support by @Xuanwo in #2803
  • feat(binding/php): Add basic io by @godruoyi in #2782
  • feat: fuzz test support read from .env by different services by @dqhl76 in #2824
  • feat(services/rocksdb): Add scan support by @JLerxky in #2827
  • feat: Add postgresql support for OpenDAL by @Xuanwo in #2815
  • feat: ci for php binding by @godruoyi in #2830
  • feat: Add create_dir, remove, copy and rename API for oay-webdav by @Young-Flash in #2832
  • feat(oli): oli stat should show path as specified by users by @sarutak in #2842
  • feat(services/moka, services/mini-moka): Add scan support by @JLerxky in #2850
  • feat(oay): impl some method for WebdavMetaData by @Young-Flash in #2857
  • feat: Implement list with metakey for blocking by @Xuanwo in #2861
  • feat(services/redis): add redis cluster support by @G-XD in #2858
  • feat(services/dropbox): read support range by @suyanhanx in #2848
  • feat(layers/logging): Allow users to control print backtrace or not by @Xuanwo in #2872
  • feat: add native & full capability by @yah01 in #2874
  • feat: Implement RFC-2758 Merge Append Into Write by @Xuanwo in #2880
  • feat(binding/ocaml): Add support for operator reader and metadata by @Ranxy in #2881
  • feat(core): replace field _pin with !Unpin as argument by @morristai in #2886
  • feat: Add retry for Writer::sink operation by @Xuanwo in #2896
  • feat: remove operator range_read and range_reader API by @oowl in #2898
  • feat(core): Add unit test for ChunkedCursor by @Xuanwo in #2907
  • feat(types): remove blocking operation range_read and range_reader API by @oowl in #2912
  • feat(types): add stat_with API for blocking operator by @oowl in #2915
  • feat(services/gdrive): credential manage by @suyanhanx in #2914
  • feat(core): Implement Exact Buf Writer by @Xuanwo in #2917
  • feat: Add benchmark for buf write by @Xuanwo in #2922
  • feat(core/raw): Add stream support for multipart by @Xuanwo in #2923
  • feat(types): synchronous blocking operator and operator's API by @oowl in #2924
  • feat(bindings/java): bundled services by @tisonkun in #2934
  • feat(core/raw): support stream body for mixedpart by @silver-ymz in #2936
  • feat(bindings/python): expose presign api by @silver-ymz in #2950
  • feat(bindings/nodejs): Implement presign test by @suyanhanx in #2969
  • docs(services/gdrive): update service doc by @suyanhanx in #2973
  • feat(bindings/cpp): init cpp binding by @silver-ymz in #2980
  • feat: gcs insert object support cache control by @fatelei in #2974
  • feat(bindings/cpp): expose all api returned by value by @silver-ymz in #3001
  • feat(services/gdrive): implement rename by @suyanhanx in #3007
  • feat(bindings/cpp): expose reader by @silver-ymz in #3004
  • feat(bindings/cpp): expose lister by @silver-ymz in #3011
  • feat(core): Avoid copy if input is larger than buffer_size by @Xuanwo in #3016
  • feat(service/gdrive): add gdrive list support by @Young-Flash in #3025
  • feat(services/etcd): Enable etcd connection pool by @Xuanwo in #3041
  • feat: Add buffer support for all services by @Xuanwo in #3045
  • feat(bindings/ja...
Read more

v0.39.0

31 Jul 11:10
v0.39.0
386fb3c
Compare
Choose a tag to compare

Upgrade to v0.39

Public API

Service S3 Role Arn Behavior

In PR #2687, OpenDAL changed the behavior when role_arn has been specified.

OpenDAL used to override role_arn simply. But since this version, OpenDAL will make sure to use assume_role with specified role_arn and external_id (if supplied).

RetryLayer supports RetryInterceptor

In PR #2666, RetryLayer supports RetryInterceptor. To implement this change, RetryLayer changed it's in-memory layout by adding a new generic parameter I to RetryLayer<I>.

Users who stores RetryLayer in struct or enum will need to change the type if they don't want to use default behavior.

Raw API

In PR #2698, OpenDAL re-org the internal structure of opendal::raw::oio and changed some APIs name.

What's Changed

Added

  • feat: add a behaviour test for InvalidInput by @dqhl76 in #2644
  • feat(services/persy): add a basic persy service impl by @PsiACE in #2648
  • feat(services/vercel_artifacts): Impl stat by @suyanhanx in #2649
  • feat(test): add fuzz test for range_reader by @dqhl76 in #2609
  • feat(core/http_util): Remove sensitive header like Set-Cookie by @Xuanwo in #2664
  • feat: Add RetryInterceptor support for RetryLayer by @Xuanwo in #2666
  • feat: support kerberos for hdfs service by @zuston in #2668
  • feat: support append for hdfs by @zuston in #2671
  • feat(s3): Use us-east-1 while head bucket returns 403 without X-Amz-Bucket-Region by @john8628 in #2677
  • feat(oay): Add webdav basic read impl by @Young-Flash in #2658
  • feat(services/redis): enable TLS by @Stormshield-robinc in #2670
  • feat(services/etcd): introduce new service backend etcd by @G-XD in #2672
  • feat(service/obs):add multipart upload function support by @A-Stupid-Sun in #2685
  • feat(services/s3): Add assume role support by @Xuanwo in #2687
  • feat(services/tikv): introduce new service backend tikv by @oowl in #2565
  • feat(service/cos): add multipart upload function support by @ArmandoZ in #2697
  • feat(oio): Add MultipartUploadWrite to easier the work for Writer by @Xuanwo in #2699
  • feat(test): add fuzz target for writer by @dqhl76 in #2706
  • feat: cos multipart uploads write by @parkma99 in #2712
  • feat(layers): support await_tree instrument by @oowl in #2623
  • feat(tests): Extract fuzz test of #2717 by @Xuanwo in #2720
  • feat: oss multipart uploads write by @parkma99 in #2723
  • feat: add override_content_type by @G-XD in #2734

Changed

  • refactor(services/redis): Polish features of redis by @Xuanwo in #2681
  • refactor(services/s3): Check header first for region detect by @Xuanwo in #2691
  • refactor(raw/oio): Reorganize to allow adding more features by @Xuanwo in #2698
  • refactor: Polish fuzz build time by @Xuanwo in #2721

Fixed

  • fix(services/cos): fix cos service comments by @A-Stupid-Sun in #2656
  • fix(test): profile setting warning by @dqhl76 in #2657
  • fix(bindings/C): fix the memory found in valgrind. by @Ji-Xinyou in #2673
  • fix: owncloud test sometimes fail by @dqhl76 in #2684
  • fix(services/obs): remove content-length check in backend by @suyanhanx in #2686
  • fix: fix HADOOP_CONF_DIR setting in guidance document by @wcy-fdu in #2713
  • fix: Seek before the start of file should be invalid by @Xuanwo in #2718
  • fix(layer/minitrace): fix doctest by @andylokandy in #2728

Docs

  • docs: add instructions to fix wrong vote mail and uploads by @ClSlaid in #2682
  • doc(services/tikv): add tikv service backend to readme by @oowl in #2711
  • docs(bindings/java): improve safety doc for get_current_env by @tisonkun in #2733

CI

  • ci(services/webdav): Setup integration test for owncloud by @dqhl76 in #2659
  • ci: Fix unexpected error in owncloud by @Xuanwo in #2663
  • ci: upgrade hawkeye action by @tisonkun in #2665
  • ci: Make owncloud happy by reduce the concurrency by @Xuanwo in #2667
  • ci: Setup protoc in rust builder by @Xuanwo in #2674
  • ci: Fix Cargo.lock not updated by @Xuanwo in #2680
  • ci: Add services fuzz test for read/write/range_read by @dqhl76 in #2710

Chore

New Contributors

Full Changelog: v0.38.1...v0.39.0

v0.38.1

15 Jul 05:26
40e2a2a
Compare
Choose a tag to compare

What's Changed

Added

  • feat(binding/lua): add rename and create_dir operator function by @oowl in #2564
  • feat(services/azblob): support sink by @suyanhanx in #2574
  • feat(services/gcs): support sink by @suyanhanx in #2576
  • feat(services/oss): support sink by @suyanhanx in #2577
  • feat(services/obs): support sink by @suyanhanx in #2578
  • feat(services/cos): impl sink by @suyanhanx in #2587
  • feat(service): Support stat for Dropbox by @Zheaoli in #2588
  • feat(services/dropbox): impl create_dir and polish error handling by @suyanhanx in #2600
  • feat(services/dropbox): Implement refresh token support by @Xuanwo in #2604
  • feat(service/dropbox): impl batch delete by @suyanhanx in #2606
  • feat(CI): set Kvrocks test for service redis by @suyanhanx in #2613
  • feat(core): object versioning APIs by @suyanhanx in #2614
  • feat(oay): actually read configuration from oay.toml by @messense in #2615
  • feat(services/webdav): impl sink by @suyanhanx in #2622
  • feat(services/fs): impl Sink for Fs by @Ji-Xinyou in #2626
  • feat(core): impl delete_with on blocking operator by @suyanhanx in #2633
  • feat(bindings/C): add support for list in C binding by @Ji-Xinyou in #2448
  • feat(services/s3): Add detect_region support for S3Builder by @parkma99 in #2634

Changed

  • refactor(core): Add ErrorKind InvalidInput to indicate users input error by @dqhl76 in #2637
  • refactor(services/s3): Add more detect logic for detect_region by @Xuanwo in #2645

Fixed

Docs

CI

Chore

New Contributors

Full Changelog: v0.38.0...v0.38.1

v0.38.0

28 Jun 05:00
v0.38.0
960a8de
Compare
Choose a tag to compare

Upgrade to v0.38

There are no public API changes.

Raw API

OpenDAL add the Write::sink API to enable streaming writing. This is a breaking change for users who depend on the raw API.

For a quick fix, users who have implemented opendal::raw::oio::Write can return an Unsupported error for Write::sink().

More detailes could be found at RFC: Writer sink API.

What's Changed

Added

  • feat(raw/http_util): Implement mixed multipart parser by @Xuanwo in #2430
  • feat(services/gcs): Add batch delete support by @wcy-fdu in #2142
  • feat(core): Add Write::sink API by @Xuanwo in #2440
  • feat(services/s3): Allow retry for unexpected 499 error by @Xuanwo in #2453
  • feat(layer): add throttle layer by @morristai in #2444
  • feat(bindings/haskell): init haskell binding by @silver-ymz in #2463
  • feat(core): add capability check by @unixzii in #2461
  • feat(bindings/haskell): add CONTRIBUTING.md by @silver-ymz in #2466
  • feat(bindings/haskell): add CI test for haskell binding by @silver-ymz in #2468
  • feat(binding/lua): introduce opendal lua binding by @oowl in #2469
  • feat(bindings/swift): add Swift binding by @unixzii in #2470
  • feat(bindings/haskell): support is_exist create_dir copy rename delete by @silver-ymz in #2475
  • feat(bindings/haskell): add Monad wrapper by @silver-ymz in #2482
  • feat(bindings/dotnet): basic structure by @tisonkun in #2485
  • feat(services/dropbox): Support create/read/delete for Dropbox by @Zheaoli in #2264
  • feat(bindings/java): support load system lib by @tisonkun in #2502
  • feat(blocking operator): add remove_all api by @infdahai in #2449
  • feat(core): adopt WebHDFS LISTSTATUS_BATCH for better performance by @morristai in #2499
  • feat(bindings/haskell): support stat by @silver-ymz in #2504
  • feat(adapters-kv): add rename and copy support to kv adapters by @oowl in #2513
  • feat: Implement sink for services s3 by @Xuanwo in #2508
  • feat(adapters-kv): add rename and copy support to non typed kv adapters by @oowl in #2515
  • feat: Implement test harness via libtest-mimic instead by @Xuanwo in #2517
  • feat(service/sled): introduce tree support by @oowl in #2516
  • feat(bindings/haskell): support list and scan by @silver-ymz in #2527
  • feat(services/redb): support redb service by @oowl in #2526
  • feat(core): implement service for Mini Moka by @morristai in #2537
  • feat(core): add Mini Moka GitHub Action workflow job by @morristai in #2539
  • feat(services): add cacache backend by @PsiACE in #2548
  • feat: Implement Writer::copy so user can copy from AsyncRead by @Xuanwo in #2552

Changed

  • refactor(bindings/C): refactor c bindings to call all APIs using pointer by @Ji-Xinyou in #2489

Fixed

  • fix(services/azblob): Fix azblob batch max operations by @A-Stupid-Sun in #2434
  • fix(services/sftp): change default root config to remote server setting by @silver-ymz in #2431
  • fix: Enable std feature for futures to allow futures::AsyncRead by @Xuanwo in #2450
  • fix(services/gcs): GCS should support create dir by @Xuanwo in #2467
  • fix(bindings/C): use copy_from_slice instead of from_static in opendal_bytes by @Ji-Xinyou in #2473
  • fix(bindings/swift): reorg the package to correct its name by @unixzii in #2479
  • fix: Fix the build for zig binding by @Xuanwo in #2493
  • fix(service/webhdfs): fix webhdfs config builder for disable_list_batch by @morristai in #2509
  • fix(core/types): add missing vercel artifacts for FromStr by @cijiugechu in #2519
  • fix(types/operator): fix operation limit error default size by @oowl in #2536

Docs

CI

  • ci: Fix append test should use copy_buf to avoid call times by @Xuanwo in #2436
  • build(bindings/ruby): fix compile rb-sys on Apple M1 by @tisonkun in #2451
  • ci: Use summary for zig test to fix build by @Xuanwo in #2480
  • ci(workflow): add lua binding test workflow by @oowl in #2478
  • build(deps): bump actions/setup-python from 3 to 4 by @dependabot in #2481
  • ci(bindings/swift): add CI for Swift binding by @unixzii in #2492
  • ci: Try to make webhdfs tests more stable by @Xuanwo in #2503
  • ci(bindings/java): auto release snapshot by @tisonkun in #2521
  • ci: Disable the stage snapshot CI by @Xuanwo in #2528
  • ci: fix opendal-java snapshot releases by @tisonkun in #2532
  • ci: Fix typo in binding java CI by @Xuanwo in #2534
  • ci(bindings/swift): optimize time consumption of CI pipeline by @unixzii in #2545
  • ci: Fix PR label not updated while edited by @Xuanwo in #2547
  • ci: automatic java binding release by @tisonkun in #2557

Chore

Read more

v0.37.0

06 Jun 09:19
v0.37.0
7a45800
Compare
Choose a tag to compare

Upgrade to v0.37

In v0.37.0, OpenDAL bump the version of reqsign to v0.13.0.

There are no public API and raw API changes.


What's Changed

Added

  • feat(services/webdav): support redirection when get 302/307 response during read operation by @Yansongsongsong in #2256
  • feat: Add Zig Bindings Module by @kassane in #2374
  • feat: Implement Timeout Layer by @Xuanwo in #2395
  • feat(bindings/c): add opendal_operator_blocking_delete method by @jiaoew1991 in #2416
  • feat(services/obs): add append support by @infdahai in #2422

Changed

  • refactor(bindings/zig): enable tests and more by @tisonkun in #2375
  • refactor(bindings/zig): add errors handler and module test by @kassane in #2381
  • refactor(http_util): Adopt reqwest's redirect support by @Xuanwo in #2390

Fixed

  • fix(bindings/zig): reflect C interface changes by @tisonkun in #2378
  • fix(services/azblob): Fix batch delete doesn't work on azure by @Xuanwo in #2382
  • fix(services/oss): Fix oss batch max operations by @A-Stupid-Sun in #2414
  • fix(core): Don't wake up operator futures while not ready by @Xuanwo in #2415
  • fix(services/s3): Fix s3 batch max operations by @A-Stupid-Sun in #2418

Docs

CI

Chore

  • chore(bindings/python): upgrade maturin to 1.0 by @messense in #2369
  • chore: Fix license headers for release/labler by @Xuanwo in #2371
  • chore(bindings/C): add one simple read/write example into readme and code by @Ji-Xinyou in #2421

New Contributors

Full Changelog: v0.36.0...v0.37.0

v0.36.0

30 May 08:14
v0.36.0
1eecbb7
Compare
Choose a tag to compare

Upgrade to v0.36

Public API

In v0.36, OpenDAL improving the xxx_with API by allow it to be called in chain:

After this change, all xxx_with alike call will be changed from

let bs = op.read_with(
  "path/to/file",
  OpRead::new()
    .with_range(0..=1024)
    .with_if_match("<etag>")
    .with_if_none_match("<etag>")
    .with_override_cache_control("<cache_control>")
    .with_override_content_disposition("<content_disposition>")
  ).await?;

to

let bs = op.read_with("path/to/file")
  .range(0..=1024)
  .if_match("<etag>")
  .if_none_match("<etag>")
  .override_cache_control("<cache_control>")
  .override_content_disposition("<content_disposition>")
  .await?;

For blocking API calls, we will need a call() at the end:

let bs = bop.read_with("path/to/file")
  .range(0..=1024)
  .if_match("<etag>")
  .if_none_match("<etag>")
  .override_cache_control("<cache_control>")
  .override_content_disposition("<content_disposition>")
  .call()?;

Along with this change, users don't need to call OpXxx anymore so we moved it to raw API.

More detailes could be found at [RFC: Chain Based Operator API][https://opendal.apache.org/docs/rust/opendal/docs/rfcs/rfc_2299_chain_based_operator_api/index.html].

Raw API

Migrated opendal::ops to opendal::raw::ops.


v0.36.0 - 2023-05-30

Added

  • feat(service/fs): add append support for fs (#2296)
  • feat(services/sftp): add append support for sftp (#2297)
  • RFC-2299: Chain based Operator API (#2299)
  • feat(services/azblob): add append support (#2302)
  • feat(bindings/nodejs): add append support (#2322)
  • feat(bindings/C): opendal_operator_ptr construction using kvs (#2329)
  • feat(services/cos): append support (#2332)
  • feat(bindings/java): implement Operator#delete (#2345)
  • feat(bindings/java): support append (#2350)
  • feat(bindings/java): save one jni call in the hot path (#2353)
  • feat: server side encryption support for azblob (#2347)

Changed

  • refactor(core): Implement RFC-2299 for stat_with (#2303)
  • refactor(core): Implement RFC-2299 for BlockingOperator::write_with (#2305)
  • refactor(core): Implement RFC-2299 for appender_with (#2307)
  • refactor(core): Implement RFC-2299 for read_with (#2308)
  • refactor(core): Implement RFC-2299 for read_with (#2308)
  • refactor(core): Implement RFC-2299 for append_with (#2312)
  • refactor(core): Implement RFC-2299 for write_with (#2315)
  • refactor(core): Implement RFC-2299 for reader_with (#2316)
  • refactor(core): Implement RFC-2299 for writer_with (#2317)
  • refactor(core): Implement RFC-2299 for presign_read_with (#2314)
  • refactor(core): Implement RFC-2299 for presign_write_with (#2320)
  • refactor(core): Implement RFC-2299 for list_with (#2323)
  • refactor: Move ops to raw::ops (#2325)
  • refactor(bindings/C): align bdd test with the feature tests (#2340)
  • refactor(bindings/java): narrow unsafe boundary (#2351)

Fixed

  • fix(services/supabase): correctly set retryable (#2295)
  • fix(core): appender complete check (#2298)

Docs

  • docs: add service doc for azdfs (#2310)
  • docs(bidnings/java): how to deploy snapshots (#2311)
  • docs(bidnings/java): how to deploy snapshots (#2311)
  • docs: Fixed links of languages to open in same tab (#2327)
  • docs: Adopt docusaurus pathname protocol (#2330)
  • docs(bindings/nodejs): update lib desc (#2331)
  • docs(bindings/java): update the README file (#2338)
  • docs: add service doc for fs (#2337)
  • docs: add service doc for cos (#2341)
  • docs: add service doc for dashmap (#2342)
  • docs(bindings/java): for BlockingOperator (#2344)

CI

  • build(bindings/java): prepare for snapshot release (#2301)
  • build(bindings/java): support multiple platform java bindings (#2324)
  • ci(binding/nodejs): Use docker to build nodejs binding (#2328)
  • build(bindings/java): prepare for automatically multiple platform deploy (#2335)
  • ci: add bindings java docs and integrate with website (#2346)
  • ci: avoid copy gitignore to site folder (#2348)
  • ci(bindings/c): Add diff check (#2359)
  • ci: Cache librocksdb to speed up CI (#2360)
  • ci: Don't load rocksdb for all workflows (#2362)
  • ci: Fix Node.js 12 actions deprecated warning (#2363)
  • ci: Speed up python docs build (#2364)
  • ci: Adopt setup-node's cache logic instead (#2365)

Chore

  • chore(test): Avoid test names becoming prefixes of other tests (#2333)
  • chore(bindings/java): improve OpenDALException tests and docs (#2343)
  • chore(bindings/java): post release 0.1.0 (#2352)
  • chore(docs): split docs build into small jobs (#2356)'
  • chore: protect branch gh-pages (#2358)

New Contributors

Full Changelog: v0.35.0...v0.36.0

v0.35.0

23 May 08:11
v0.35.0
40656bb
Compare
Choose a tag to compare

NOTE: This release is not yet an official ASF release.

Upgrade to v0.35

Public API

  • OpenDAL removes rarely used Operator::from_env and Operator::from_iter APIs
    • Users can use Operator::via_map instead.

Raw API

  • OpenDAL adds append support with could break existing layers. Please make sure append requests have been forward correctly.
  • After the merging of scan and list, OpenDAL removes the scan from raw API. Please use list_without_delimiter instead.

v0.35.0 - 2023-05-23

Added

  • feat(services/onedrive): Implement list, create_dir, stat and upload
    ing large files (#2231)
  • feat(bindings/C): Initially support stat in C binding (#2249)
  • feat(bindings/python): Enable abi3 to avoid building on different python
    version (#2255)
  • feat(bindings/C): support BDD tests using GTest (#2254)
  • feat(services/sftp): setup integration tests (#2192)
  • feat(core): Add trait and public API for append (#2260)
  • feat(services/sftp): support copy and rename for sftp (#2263)
  • feat(services/sftp): support copy and read_seek (#2267)
  • feat: Add COS service support (#2269)
  • feat(services/cos): Add support for loading from env (#2271)
  • feat(core): add presign support for obs (#2253)
  • feat(services/sftp): setup integration tests (#2192)
  • feat(core): add presign support for obs (#2253)
  • feat(core): public API of append (#2284)
  • test(core): test for append (#2286)
  • feat(services/oss): add append support (#2279)
  • feat(bindings/java): implement async ops to pass AsyncStepsTest (#2291)

Changed

  • services/gdrive: port code to GdriveCore & add path_2_id cache (#2203)
  • refactor: Minimize futures dependencies (#2248)
  • refactor: Add Operator::via_map to support init without generic type parameters (#2280)
  • refactor(binding/java): build, async and docs (#2276)

Fixed

  • fix: Fix bugs that failed wasabi's integration tests (#2273)

Removed

  • feat(core): remove scan from raw API (#2262)

Docs

  • chore(s3): update builder region doc (#2247)
  • docs: Add services in readme (#2251)
  • docs: Unify capabilities list for kv services (#2257)
  • docs(nodejs): fix some example code errors (#2277)
  • docs(bindings/C): C binding contributing documentation (#2266)
  • docs: Add new docs that available for all languages (#2285)
  • docs: Remove unlicensed svg (#2289)
  • fix(website): double active route (#2290)

CI

  • ci: Enable test for cos (#2270)
  • ci: Add integration tests for supabase (#2272)
  • ci: replace set-output for docs (#2275)
  • ci: Fix unit tests (#2282)
  • ci: Cleanup NOTICE file (#2281)
  • ci: Fix release not contains incubating (#2292)

Chore

  • chore(core): remove unnecessary path prefix (#2265)

New Contributors

Full Changelog: v0.34.0...v0.35.0

v0.34.0

09 May 08:41
v0.34.0
91611ca
Compare
Choose a tag to compare

NOTE: This release is not yet an official ASF release. We are waiting for the vote.

v0.34.0 - 2023-05-09

Added

  • feat(writer): configurable buffer size of unsized write (#2143)
  • feat(oay): Add basic s3 list_objects_v2 with start_after support (#2219)
  • feat: Add typed kv adapter and migrate moka to it (#2222)
  • feat: migrate service dashmap (#2225)
  • feat(services/memory): migrate service memory (#2229)
  • feat: Add assert for public types to ensure Send + Sync (#2237)
  • feat(services/gcs): Add abort support for writer (#2242)

Changed

  • refactor: Replace futures::ready with std::task::ready (#2221)
  • refactor: Use list without delimiter to replace scan (#2243)

Fixed

  • fix(services/gcs): checked_rem_euclid could return Some(0) (#2220)
  • fix(tests): Etag must be wrapped by " (#2226)
  • fix(services/s3): Return error if credential load fail instead skip (#2233)
  • fix(services/s3): Return error if region not set for AWS S3 (#2234)
  • fix(services/gcs): rsa 0.9 breaks gcs presign (#2236)

Chore

  • chore: change log subscriber from env_logger to tracing-subscriber (#2238)
  • chore: Fix build of wasabi (#2241)

New Contributors

Full Changelog: v0.33.3...v0.34.0

v0.33.3

09 May 07:32
v0.33.3
402aae7
Compare
Choose a tag to compare

NOTE: This release is not yet an official ASF release. We are waiting for the vote.

v0.33.3 - 2023-05-06

Added

  • feat(services/onedrive): Add read and write support for OneDrive (#2129)
  • test(core): test for read_with_override_cache_control (#2155)
  • feat(http_util): Implement multipart/form-data support (#2157)
  • feat(http_util): Implement multipart/mixed support (#2161)
  • RFC-2133: Introduce Append API (#2133)
  • feat(services/sftp): Add read/write/stat support for sftp (#2186)
  • feat(services/gdrive): Add read & write & delete support for GoogleDrive (#2184)
  • feat(services/vercel): Add vercel remote cache support (#2193)
  • feat(tests): Enable supabase integration tests (#2190)
  • feat(core): merge scan and list (#2214)

Changed

  • refactor(java): refactor java code for java binding (#2145)
  • refactor(layers/logging): parsing level str (#2160)
  • refactor: Move not initiated logic to utils instead (#2196)
  • refactor(services/memcached): Rewrite memecached connection entirely (#2204)

Fixed

  • fix(service/s3): set retryable on batch (#2171)
  • fix(services/supabase): Supabase ci fix (#2200)

Docs

  • docs(website): try to add opendal logo (#2159)
  • doc: update vision to be more clear (#2164)
  • docs: Refactor Contributing and add Developing (#2169)
  • docs: Merge DEVELOPING into CONTRIBUTING (#2172)
  • docs: fix some grammar errors in the doc of Operator (#2173)
  • docs(nodejs): Add CONTRIBUTING docs (#2174)
  • docs: Add CONTRIBUTING for python (#2188)

CI

  • ci: Use microsoft rust devcontainer instead (#2165)
  • ci(devcontainer): Install development deps (#2167)
  • chore: set workspace default members (#2168)
  • ci: Setup vercel artifacts integration tests (#2197)
  • ci: Remove not used odev tools (#2202)
  • ci: Add tools to generate NOTICE and all deps licenses (#2205)
  • ci: use Temurin JDK 11 to build the bindings-java (#2213)

Chore

  • chore(deps): bump clap from 4.1.11 to 4.2.5 (#2183)
  • chore(deps): bump futures from 0.3.27 to 0.3.28 (#2181)
  • chore(deps): bump assert_cmd from 2.0.10 to 2.0.11 (#2180)
  • chore: Refactor behavior test (#2189)
  • chore: update readme for more information that is more friendly to newcomers (#2217)

New Contributors

Full Changelog: v0.33.2...v0.33.3