A Rust library that defines an (unofficial) C API for the object_store crate (docs.rs).
Note
This library is not a part of object_store or the Apache Arrow project.
To build it you need to have rust
and cargo
installed, and then run cargo build
.
Pre-built binaries are available via the Julia package object_store_ffi_jll.jl. The primary user of object_store_ffi is the Julia package RustyObjectStore.jl.
New releases of object_store_ffi are made by creating and pushing a tag with the new version (format: v[0-9]+.[0-9]+.[0-9]+
).
This will dispatch a release workflow that will build the assets and create the GitHub Release.
git tag -a v0.3.0 -m "New Release"
git push --tags
Each release should increment the version number following Semantic Versioning and should be kept in sync with the version
field of Cargo.toml
.
Whenever a new release of object_store_ffi is made, we should build binaries and release a new version of object_store_ffi_jll.jl.
This is done by making a pull request to Yggdrasil to update the object_store_ffi build recipe.
The PR should usually just update the GitSource
commit hash to point to the new release, and to update the version
number.
Merging such a PR will automatically build the binaries for the supported platforms and publish them to the object_store_ffi_jll.jl repository as part of a new release of object_store_ffi_jll.jl.
If you want to try building object_store_ffi_jll.jl locally, this can be done using BinaryBuilder.jl.
You will need a local copy of the object_store_ffi build recipe build_tarballs.jl
, and a Julia environment with BinaryBuilder.jl installed.
For example, clone Yggdrasil and navigate to the object_store_ffi directory:
$ git clone git@github.com:JuliaPackaging/Yggdrasil.git
$ cd Yggdrasil/O/object_store_ffi/
Create a Julia environment with BinaryBuilder installed:
$ julia --project=build_env -e 'using Pkg; Pkg.add("BinaryBuilder")'
You can then run the build_tarballs.jl
script:
$ julia --project=build_env build_tarballs.jl aarch64-apple-darwin --deploy=local --verbose --debug
See build_tarballs.jl --help
for supported arguments.
See the BinaryBuilder documentation for more details.
Note BinaryBuilder requires Docker if running on MacOS or Windows.