Comments (7)
but people could list out the algorithms they need and the others would be excluded.
This is what tiny-multihash is doing (which is what likely will go upstream). Though for now I'd just restrict it to blake3 to unblock @thenextman.
from rust-multihash.
@mriise do you have time to work on making it optional? If not, then I can work on it some time the next few days. I just want to prevent double efforts.
@vmx I'll see what i can do, as i'm not terribly familiar with macros.
As a side note, (and from what i currently understand about macros) it would be easy to setup each algorithm (or family) as its own feature, with the default being all, but people could list out the algorithms they need and the others would be excluded.
although that may be just be unneeded feature bloat.
from rust-multihash.
Are you asking more to have blake3 be an optional feature, or to have specific CC dependencies as the title suggests?
I'm willing to make another PR to setup blake3 as an optional dependency but would prefer to wait to see where the rewrite is headed and work from there.
from rust-multihash.
@mriise The rewrite still takes a while (as I'm too busy with other things). I like your idea of having blake3 as an optional feature, that should unblock @thenextman. I could do a v0.11.4 release with it.
from rust-multihash.
@mriise Having blake3 as an optional feature would unblock things for us and be appreciated, like @vmx said. Ultimately, we can't build C "on the fly" like that - I would expect the same is true for anyone building cross-platform C projects of certain complexity, because there's no "one size fits all" with build processes and compilation options. Sorry if my issue title was not very clear :)
from rust-multihash.
@mriise do you have time to work on making it optional? If not, then I can work on it some time the next few days. I just want to prevent double efforts.
from rust-multihash.
As a side note,
It bothered me that Blake3 was trying to compile C in the first place, after a bit more looking around, it turns out you can force the rust only implementation by using the "pure" feature.
from rust-multihash.
Related Issues (20)
- Implement ripemd160 HOT 3
- CI tries to run `fmt` with unstable feature and will always fail HOT 2
- Nix build is currently broken HOT 3
- Maintain a CHANGELOG.md HOT 3
- Let's make fewer breaking changes HOT 14
- Replace or Upgrade Tarpaulin Code Coverage HOT 2
- Split crate into `multihash`, `multihash-codetable` and `multihash-derive` HOT 5
- Tracking issue: Polish and stabilize the API HOT 5
- Use `sha1` dependency instead of `sha-1`
- Unsafe unwrap could cause an application to panic HOT 12
- Consider removing `MultihashDigest` and `Hasher` traits
- Write docs for transition to new crate structure HOT 6
- Parity Codec bumps MSRV to `1.64.0` HOT 4
- Add `cargo semver-checks` to CI to ensure we don't break the API accidentially HOT 1
- Add Sha3 SHAKE* HOT 12
- Only enforce MSRV if no features are activated
- Release 0.19 HOT 8
- multihash const constructors unusable HOT 5
- Redesign multihash::Error
- regression serde feature does not work with no-std
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust-multihash.