14 releases (breaking)

0.10.0 Nov 14, 2024
0.9.0 May 30, 2024
0.8.1 Nov 27, 2023
0.6.0 Dec 1, 2022
0.0.2 Nov 17, 2021

#117 in Testing

Download history 25/week @ 2024-09-21 14/week @ 2024-09-28 103/week @ 2024-11-09 36/week @ 2024-11-16 17/week @ 2024-11-23 22/week @ 2024-11-30

178 downloads per month

MIT license

25MB
8K SLoC

Rust 4.5K SLoC // 0.1% comments Go 2.5K SLoC // 0.2% comments C 1.5K SLoC // 0.0% comments Shell 23 SLoC // 0.4% comments

Storj Uplink Library for Rust

CI Status crates.io docs.rs Crates.io

Safe and idiomatic Rust crate library for the Storj Uplink Library.

Current status

This crate has implemented all the functionalities offered by the uplink-sys create and it's fully documented.

It has several unit-tests and integration tests which prove that a big part of the public API works as expected.

The crate is fully documented and the docs contains documentation outside of the API (types, function, etc.).

We consider its current status beta and it can be use for production systems with care because, despite of the integration tests, we don't know any reference that this crate is used in any production application.

If you're using this crate in any of your applications, we'd love that you open an issue and you tell us about.

Implementation

This crate wraps the uplink-sys crate present in this same repository for offering an safe and idiomatic Rust Storj Uplink.

Because it relies on uplink-sys and uplink-sys requires Go, using this crate also requires Go.

Development

For development the only requirements are Rust, Go, and clang.

For running the integration tests you need a Docker version that has the compose command, which is the docker-compose tool that it's now integrated in Docker. The command is needed because the Makefile invoked, but you should be able to use a Docker version without the compose command, using the docker-compose, however, you will have to run by hand or make an straightforward change in the Makefile.

When some integration test fails it may provoke the failure of other integration tests to fail in subsequent runs. This is because the previous executed test which failed left garbage data in the satellite/edge services. To execute again the tests without having to execute a full clean up, you may go to the temporary directory ../.tmp/up and run docker compose down and docker compose up -d and then execute make test-integrationa.

Dependencies