-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change build script of uplink-sys crate to support Windows #61
Comments
I attempted to do so in my fork, uplink-sys compiles but there are underlying issues with the bindgen or build...
I am uncertain how to fix them. Edit: _address is a u8, no idea where they come from. You can see the changes in my fork https://github.com/Wicpar/uplink-rust |
Related issue: rust-lang/rust-bindgen#1683 |
I created a branch with precompiled binaries for windows. https://github.com/Wicpar/uplink-rust/tree/precompiled The bindings were altered by hand to match the linux signatures, no idea if it will break things. At least it compiles. I'll see if it works. |
@Wicpar thank you for all your effort in digging into it. I cannot promise when I will be able to take a look at this, but I'll have this at the top of my list for the allotted time that we have to work on third-party projects. |
@Wicpar I finally got the chance to look at your changes.
We have a discussion about if the I'm in favor of not requiring to compile the Before adding any precompiled binary we should resolve #19, I'm not the only decision maker here, I came to work on this later than others.
It's unfortunate that issue rust-lang/rust-bindgen#1683 isn't still resolved 😞 So, I don't know if there is a better option than your one. Your changes for changing the I found an issue in the Would you mind sending a PR with only the changes that transform the I want to say thanks again for your endeavors. |
The makefile is fundamentally incompatible with windows, not only because of the commands it uses, but also because it fails to find the go command on wsl even when on the path. There are other issues with this crate like blocking functionality that requires heavy alterations to use in an async context safely, and the Move + Sync guarantees are not necessarily properly implemented. In addition it is unable to create presigned urls and thus is way less scalable than the s3 compatible API. Due to all these factors I cannot choose to go with this library for high reliability production use cases, due to reliability and performance concerns, and cannot help you much further in improving the crate. Even if i make the PR it doesn't solve the bingen and makefile issues which are crucial for this library to work and build properly. In my opinion a pure async rust implementation would be the solution that is needed. |
Thank you for your feedback. Regarding not being able to create presigned URLS, is it because isn't offered in the
Do you mean to create natively a Rust crate and not rely on |
I think there is no way to upload to the storj network directly from the frontend at the moment, which is necessary for my system to be truly scalable. Right now from what i understand the presigned urls go to storj hosted s3 compatibility servers which do accept the presigned upload. Ideally one could create a new encryption key per object on the frontend and just send that on the backend while uploading directly to the decentralized network. Maybe it truly is impossible if storj opted for RPC instead of http, so we would need browser RPC support.
I mean a native rust crate, but it obviously is too much work to maintain multiple ecosystems for storj right now, maybe in the future when they are more successful :) I'll try to contribute to that by buying the service. |
The
uplink-sys
crate build script only works on Unix family operative systems.Change the script to support Windows.
This is important because the
uplink
crate requires building theuplink-c
crate, hence theuplink
crate doesn't work in Windows either.The text was updated successfully, but these errors were encountered: