2 releases
0.40.0 | Jan 13, 2023 |
---|
#2213 in Development tools
310KB
6K
SLoC
Wildland Cargo Lib
High level interface for the Cargo clients. It is built on top of the Wildland CoreX library and provides Cargo specific abstractions like "user", "device" or "sharing logic".
Bindings
Wildland Cargo Lib support bindings for the following languages:
- Java
- C++
- C#
- Python
- Swift
- WebAssembly (there is another SDK repository for this purpose)
Setup
Use docker images in order to generate the bindings glue code for Java
, C#
and Python
. One can find them in ./docker
directory. For C++
and Swift
bindings one can simply run cargo build --features bindings
and get the glue code from ./_generated_ffi_code
and ./_generated_swift/
directories. It requires rust toolchain in version >1.59.0
.
lib.rs
:
This crate provides a high level interface for the Cargo clients. It is built on top of the Wildland CoreX library and provides Cargo specific abstractions like "user", "device" or "sharing logic".
All types and functions that are supposed to be exported from Rust library to other languages
are included within [ffi
] module which is used by the RustyBind crate for generating
glue code and bindings to other languages.
All Cargo functionalities can be accessed via api::CargoLib
object. It aggregates and gives
access to API objects responsible for narrowed domains like api::UserApi
.
api::CargoLib
must be initialized with some set of parameters (see api::config
).
Dependencies
~29–44MB
~819K SLoC