Comments (6)
The reason i vote in favor of using a []byte
is because once we move to using a string, anything that needs to copy or write out a multihash needs to make a copy of it first, and those can get expensive.
from go-multihash.
I suppose that is true. It is really annoying that go does not have a concept of "const" as that can avoid most of these unnecessary copies, for example having to make a copy to pass a string into a function that expects a []byte even though there the function will not modify the data.
from go-multihash.
And the argument can also be that more things end up needing it as a string that a []byte
. @Stebalien what are your thoughts on this manor.
Changing the type of Multihash will be a simple but API breaking change. This perhaps should be done at the same time as ipfs/go-cid#3 (if we decide to do that) to minimize the pain.
from go-multihash.
I see CIDs used as keys in maps all the time and using a string would help there a lot. Honestly, I'm not sure (we'd have to test it).
from go-multihash.
@Stebalien I think you are you are confusing CID with mutlihashes, they are now two different things.
from go-multihash.
Ah. Sorry, too many issues open (I care about this because it's one route to make CID's usable as map keys).
from go-multihash.
Related Issues (20)
- Possibly erroneous tag pushed: v1.0.2
- Possibly erroneous tag pushed: v1.0.2
- Possibly erroneous tag pushed: v1.0.2
- Version tags gone missing? HOT 3
- Doesn't work on Go playground HOT 2
- Convert hash to hex hash and vice versa HOT 2
- Please choose between identity / id and stick to it across all projects HOT 1
- Harden varint decoding
- Some algorithms don't implement Sum HOT 2
- [enhancement] adding BLAKE3 support HOT 21
- Split core types into a core subpackage HOT 1
- Go get multihash fails compilation due to sha3.NewLegacyKeccak512
- Generated go constants for multicodecs HOT 16
- What's going on with murmur3? HOT 4
- approach to constants HOT 6
- Decode allocates
- Create a new tag to allow using recent master HOT 3
- hasher.Write error is not handled
- Interview partners for research about communication in GitHub projects wanted
- Faster blake3
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 go-multihash.