-
Notifications
You must be signed in to change notification settings - Fork 13
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
Implement concurrency where it is beneficial #3
Comments
It would be good to make sure you don't break compatibility with it. The crate currently builds in WASM(didn't test if it works though), so that means that it probably builds on any platform right now, but adding threading/SIMD/etc. should be done conditionnally to make sure it doesn't break anything. |
I am fairly new to Rust and even more to Web Assembly, in which way threading could break compatibility with other platforms? |
Some platform doesn't or barely support threading(WebAssembly is a prime example, along with some bare metal targets) and a really nice feature of Rust is that it allows for extremely portable code, so people tend to use these methods conditionnally(using A great example is the RustCrypto project, which, AFAIK, every crate works on every platform while still using threads, SIMD and AES-NI when possible but falling back on pure platform-agnostic code when they can't. I got some experience with it so I can help if you need it! Also, we can still modify the CI to add specific targets (WASM is a great way to test portable code as it lacks a whole lot of platform feature and is pretty easy to build). I could also write the WASM bindings which would only build when building for WASM. |
Indeed, if threading is going to break compatibility in different targets we should target its compilation and usage with the So yeah, I think it is better if first we make this library work for WASM, which your help will be very welcome for. Once we have it working for WASM we can start with the threading, so that we can check that we don't break it while we implement it. I will create another issue to track the WASM progress. |
Depends on #7 |
#7 is done on the other repo! Now we just need to make sure an update here doesn't break the WASM version. |
Yes! I wonder if it is possible to trigger |
It seems having some threading concurrency could be beneficial, especially for large secrets, where it could be possible to compute multiple parallel Lagrange interpolation roots, one for each secret chunk.
Maybe in some other parts is also valuable, but it needs investigation.
Tasks:
The text was updated successfully, but these errors were encountered: