-
Devdutt Shenoi authored
### Summary Integration with rockset/rocksdb-cloud to add CloudEnv features for operating with cloud services like AWS S3 as a datastore. - Created a sub-crate `librocksdb_cloud_sys` which contains the `rocksdb-cloud` sub-module containing code for managing cloud interactions, extracted from rockset/rocksdb-cloud and currently residing in [tikv/rocksdb~6.4.cloud](https://github.com/tikv/rocksdb/tree/6.4.cloud) - Made necessary changes to [tikv/rocksdb~6.4.tikv](https://github.com/tikv/rocksdb/tree/6.4.tikv) that is housed in the sub-module `rocksdb` within the parent crate. - Wrote CMakeLists.txt for use in the build process of `rocksdb_cloud` as a static library, usable for C-ABI based FFI calls. Added the above code to the build process of parent crate `librocksdb_sys` along with C-ABI binding code within `crocksdb` - Created 'cloud.rs' and added `new_aws_env()` method to Env type of `rocksdb.rs` that merely makes a call to the `CloudEnv::NewAwsEnv()` via FFI for use as library features upstream. A test for the same was also added here. - Used feature based conditional compile macros to all cloud interaction code. - Made requisite changes to CI config for handling AWS SDK compilation. - Added a sequence of steps to update submodule within Makefile Solves #514 ## Checkpoints - [x] Added rocksdb-cloud as submodule in crate `librocksdb_cloud_sys`. - [x] Write CMakeLists.txt to build only `cloud` code. - [x] Generate C-bindings to interface with `NewAwsEnv` and `CloudEnvOptions` - [x] Create `Env::new_aws_env` as an interface in rust Signed-off-by:
Devdutt Shenoi <devdutt@outlook.in>
Name |
Last commit
|
Last update |
---|---|---|
benches | ||
librocksdb_sys | ||
scripts | ||
src | ||
tests | ||
travis-build | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
Cargo.toml | ||
LICENSE | ||
Makefile | ||
README.md | ||
rust-toolchain | ||
rustfmt.toml |