All notable changes to this project will be documented in this file.
- add support for
zstd
(zstandard) compression - allow setting
ONEIO_ACCEPT_INVALID_CERTS=true
to disable SSL checking - revised custom HTTP request function
oneio::get_http_reader
to allow specifying customrequest::blocking::Client
for any request customizations to allow specifying customrequest::blocking::Client
for any request customizations.
- rename
oneio::get_remote_reader
tooneio::get_http_reader
- rename
get_remote_ftp_raw
toget_ftp_reader_raw
- change signatures of
oneio::download
,oneio::download_with_retry
,oneio::get_http_reader
's optional HashMap parameter for headers to optionalreqwest::blocking::Client
.
s3_url_parse
allow parsing different protocols liker2://
orb2://
- previously, if the URL did not start with
s3://
it would return an error
- previously, if the URL did not start with
- make
compressions
mod always enabled and allow making all compression algorithms optional- to enable all compression algorithms,
use
oneio = { version = "0.16", default-features = false, features = ["compressions"] }
- to enable specific compression algorithms,
use
oneio = { version = "0.16", default-features = false, features = ["gz", "bz", "lz", "xz"] }
- to enable all compression algorithms,
use
- make
digest
feature optional and disabled by default
- add
CONTENT_LENGTH=0
to headers to address some queries where the server requestContent-Length
field
- add
http2
andcharset
feature flags toreqwest
- the feature flags for
reqwest
has changed a lot between0.11
and0.12
and thehttp2
andcharset
features are necessary now
- the feature flags for
- switch
flate2
torust-backend
default feature as thezlib-ng
feature requirescmake
to build and offers no performance improvement over therust-backend
feature - update
reqwest
to version0.12
- switching to
flate2
withzlib-ng
as the compression library for handlinggzip
fileszlib-ng
is a drop-in replacement forzlib
with better performance
- add
oneio::exists(path: &str)
function to check if a local or remote file exists.- currently support local file, http(s) remote and s3 remote files checking
assert!(!oneio::exists("https://spaces.bgpkit.org/oneio/test_data_NOT_EXIST.json").unwrap());
assert!(oneio::exists("https://spaces.bgpkit.org/oneio/test_data.json").unwrap());
- switch to
rustls
as the default TLS backend - clean up the feature flags
- removed
no-cache
andvendored-openssl
flags - removed
openssl
optional dependency - add
digest
feature flag to allow calculating SHA256 digest of a file, enabled by default
- removed
- add
oneio::download_with_retry
function to allow retrying download - add
oneio::get_sha256_digest
function to the library to calculate SHA256 digest of a file
- add
oneio digest FILE
command to calculate file SHA256 digest
- fixed issue where
oneio s3 list BUCKET PREFIX
command not showing files match the prefix unless they are on the same directory as the prefix - fixed issue where running
oneio
without argument causing program to panic
- add support for installing via
cargo binstall
s3_list
now accepts a new forth parameter,dirs
boolean flag, to allow returning only the matching directories- add
oneio s3 list
andoneio s3 upload
commands to the CLI
The signature of s3_list
function is now changed to:
pub fn s3_list(
bucket: &str,
prefix: &str,
delimiter: Option<String>,
dirs: bool,
) -> Result<Vec<String>, OneIoError> {}
This includes changes of:
delimiter
changed fromOption<&str>
toOption<String>
- new
dirs
boolean flag to allow returning only matching directories in the specified prefix- the
delimiter
is also automatically forced toSome("/".to_string())
ifdirs
is specified anddelimiter
is specified asNone
.
- the
- "cargo publish" process is now automated with GitHub actions
- test process now makes sure
s3
modules' doc-tests must compile
- Added
vendored-openssl
flag to enable GitHub actions builds for different systems. - Automatically builds CLI binary for macOS (Universal), and linux (arm and amd64) during GitHub release
- GitHub actions uses vendored openssl instead of system openssl.
- Module Refactoring: A dedicated module has been created for remote and utils. (ec80e0236170f13e9eec2450eeaa8334e255a1ee)
- Improvements in Caching Control: The HTTP caching is now controllable and disabled for CLI requests. (69de57c5f9a7003edecde2fe6641c438abe233a5)
- Improved Error Handling: We have improved error handling in line reads. The application no longer attempts to read further if a line read fails, preventing any stalls. (fd1352fa2cb701e3fb336a4b6f99014d76d64788)
- support getting oneio reader directly by supplying an S3 URL: #31