Uplink-C 1.0 Release Candidate announced

Following the recent announcement of the Release Candidate of the libuplink Go library, today we are announcing the Uplink-C 1.0 Release Candidate. Uplink-C 1.0 is the new C API for accessing the Storj network that we are going to support long-term with the Production release of Tardigrade.

The new C library is available in a new separate repository under the Apache 2.0 license: https://github.com/storj/uplink-c

Note that the current release is still a Release Candidate. We are still working on finding and fixing bugs, as well as improving the documentation.

If you have an existing application or language binding based on old C-bindings to libuplink 0.x, now it is a good time to try migrating it to the new API and let us know of any feedback you might have. Feedback is welcome here in this topic, or by creating a new issue in the Github repository: https://github.com/storj/uplink-c/issues

6 Likes

Congratulations, BUT: just had a quick look at how my .Net-Wrapper works with the uplink-c 1.0 RC and to be honest it feels like I have to do a complete rewrite of my wrapper! Not a single object is the same as before.

Is there any kind of transformation guide? Which class has been renamed, where are the differences?

I welcome the “clean-everything-up”-thing here - but it will take some time to adapt my wrapper to the new structure.

2 Likes

It is true that v1.0.0-rc.1 has a lot of changes compared to v0.x.y. This is mostly refactoring to make the API simpler, less error-prone, and easier to extend in a backward-compatible way after we declare the stable v1.0. We decided to make all the backward-incompatible changes now before declaring v1.0 and avoid doing more of them in future.

We don’t have any migration guide at the moment. Most of the required changes should be straight-forward. There is no big conceptual change in the library.

In the next couple of week we plan to work on a detailed documentation of the v1.0 API. Hopefully, this will make it clearer how to use it.

We already migrated the Uplink CLI and Gateway to the new v1.0 Go API. This could be a good reference for now how to use the new API. The Uplink-C API strictly follows the Go API.

The migrated Gateway can be found in this new Github repository: https://github.com/storj/gateway
The migrated Uplink CLI can be found here: https://github.com/storj/storj/tree/master/cmd/uplink

1 Like

@TopperDEL Our partners from utopicmedia prepared this overview of the changes in Uplink-C:

https://link.tardigradeshare.io/1E5gECk4Ksvu3vHJ3iQB8PrPoHnmqn2k9Hdmcp5k1aaUMYAZDcs9JAkqdN5T285RqECmQKAJn2iJKLKbw7rP4hz1XA1HN3T9WRKgFXj6p9RWKDE7ibeyrtVmyugiz1KYmpkGPiC5psjZ61aWQ4pPDKwQjaPVQ2YsxaJDmDrWqWWCGjFAuNVNznT6YJpuP8SSp6LbCmPvjHfJ3ctsuKPHC3ecA7LQQGwYbdKXRLLcQCawpEqQemZeyjjKTc6dBBWKL1wSP9T9G5K3fiiFzKyQwFfpQ8y5cZjBK959AAKckeMskSrk2FkVruiAeCgaSfwQKZWjaW241gWQHCHKnyiseZbLEB1pA1hkJPzCUzJEv7sb2nq1fmtV23tzyv81fjC2eMn9bp9m88wLUqFuCwwk6bM3eG8kz/shared/uplink-c_changes.pdf

I hope it is helpful.

1 Like

That’s great - thank you!