diff --git a/CHANGELOG.md b/CHANGELOG.md index adcaf68d979..88ea791d874 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/) and this project adheres to [Semantic Versioning](https://semver.org/). +## [v0.26.2] - 2023-02-07 + +### Added + +- feat: Add ChaosLayer to inject errors into underlying services (#1287) +- feat: Implement retry reader (#1291) +- feat: use std::path::Path for fs backend (#1100) +- feat: Implement services webhdfs (#1263) + +### Changed + +- refactor: Split CompleteReaderLayer from TypeEraserLayer (#1290) +- refactor(services/fs): Remove not needed generic (#1292) + +### Docs + +- docs: fix typo (#1285) +- docs: Polish docs for better reading (#1288) + +### Fixed + +- fix: FsBuilder can't be used with empty root anymore (#1293) +- fix: Fix retry happened in seek's read ahead logic (#1294) + ## [v0.26.1] - 2023-02-05 ### Changed @@ -1287,6 +1311,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/). Hello, OpenDAL! +[v0.26.2]: https://github.com/datafuselabs/opendal/compare/v0.26.1...v0.26.2 [v0.26.1]: https://github.com/datafuselabs/opendal/compare/v0.26.0...v0.26.1 [v0.26.0]: https://github.com/datafuselabs/opendal/compare/v0.25.2...v0.26.0 [v0.25.2]: https://github.com/datafuselabs/opendal/compare/v0.25.1...v0.25.2 diff --git a/Cargo.toml b/Cargo.toml index 1465d8b8f9b..4a717637063 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ keywords = ["storage", "fs", "s3", "azblob", "gcs"] license = "Apache-2.0" name = "opendal" repository = "https://github.com/datafuselabs/opendal" -version = "0.26.1" +version = "0.26.2" # MSRV of OpenDAL. Please update this field while bump. rust-version = "1.60" diff --git a/binaries/oay/Cargo.lock b/binaries/oay/Cargo.lock index ed357c642c0..cd7f28b2b81 100644 --- a/binaries/oay/Cargo.lock +++ b/binaries/oay/Cargo.lock @@ -1124,7 +1124,7 @@ checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" [[package]] name = "opendal" -version = "0.26.1" +version = "0.26.2" dependencies = [ "anyhow", "async-compat", diff --git a/binaries/oli/Cargo.lock b/binaries/oli/Cargo.lock index a84f41edc79..b056a0c199f 100644 --- a/binaries/oli/Cargo.lock +++ b/binaries/oli/Cargo.lock @@ -831,7 +831,7 @@ checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" [[package]] name = "opendal" -version = "0.26.1" +version = "0.26.2" dependencies = [ "anyhow", "async-compat", diff --git a/src/scheme.rs b/src/scheme.rs index bda14cf6fbb..3a83b3fe580 100644 --- a/src/scheme.rs +++ b/src/scheme.rs @@ -73,7 +73,7 @@ pub enum Scheme { S3, /// [webdav][crate::services::Webdav]: WebDAV support. Webdav, - /// [webhdfs][crate::services::WebHdfs]: WebHDFS RESTful API Services + /// [webhdfs][crate::services::Webhdfs]: WebHDFS RESTful API Services Webhdfs, /// Custom that allow users to implement services outside of OpenDAL. /// diff --git a/src/services/hdfs/backend.rs b/src/services/hdfs/backend.rs index b63240c9f77..c60127c844d 100644 --- a/src/services/hdfs/backend.rs +++ b/src/services/hdfs/backend.rs @@ -44,6 +44,10 @@ use crate::*; /// - [ ] ~~multipart~~ /// - [x] blocking /// +/// # Differences with webhdfs +/// +/// [Webhdfs][crate::services::Webhdfs] is powered by hdfs's RESTful HTTP API. +/// /// # Features /// /// HDFS support needs to enable feature `services-hdfs`. diff --git a/src/services/webhdfs/backend.rs b/src/services/webhdfs/backend.rs index 5f9b19723b0..fa2ac9ea854 100644 --- a/src/services/webhdfs/backend.rs +++ b/src/services/webhdfs/backend.rs @@ -38,7 +38,27 @@ use crate::*; const WEBHDFS_DEFAULT_ENDPOINT: &str = "http://127.0.0.1:9870"; -/// WebHDFS's RESTFul API support +/// [WebHDFS](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html)'s REST API support. +/// +/// There two implementaions of WebHDFS REST API: +/// +/// - Native via HDFS Namenode and Datanode, data are transferred between nodes directly. +/// - [HttpFS](https://hadoop.apache.org/docs/stable/hadoop-hdfs-httpfs/index.html) is a gateway before hdfs nodes, data are proxied. +/// +/// # Capabilities +/// +/// This service can be used to: +/// +/// - [x] read +/// - [x] write +/// - [x] list +/// - [ ] ~~presign~~ +/// - [ ] ~~multipart~~ +/// - [ ] blocking +/// +/// # Differences with hdfs +/// +/// [Hdfs][crate::services::Hdfs] is powered by HDFS's native java client. Users need to setup the hdfs services correctly. But webhdfs can access from HTTP API and no extra setup needed. /// /// # Configurations /// @@ -48,13 +68,8 @@ const WEBHDFS_DEFAULT_ENDPOINT: &str = "http://127.0.0.1:9870"; /// /// Refer to [`Builder`]'s public API docs for more information /// -/// # Environment -/// -/// - `OPENDAL_WEBHDFS_ROOT` -/// - `OPENDAL_WEBHDFS_ENDPOINT` -/// - `OPENDAL_WEBHDFS_DELEGATION` -/// /// # Examples +/// /// ## Via Builder /// ```no_run /// use std::sync::Arc;