Git Product home page Git Product logo

Comments (6)

whyrusleeping avatar whyrusleeping commented on August 16, 2024

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.

kevina avatar kevina commented on August 16, 2024

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.

kevina avatar kevina commented on August 16, 2024

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.

Stebalien avatar Stebalien commented on August 16, 2024

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.

kevina avatar kevina commented on August 16, 2024

@Stebalien I think you are you are confusing CID with mutlihashes, they are now two different things.

from go-multihash.

Stebalien avatar Stebalien commented on August 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.