{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:golang/github.com/algorand/go-codec/codec","name":"github.com/algorand/go-codec/codec","description":"Package codec provides a\nHigh Performance, Feature-Rich Idiomatic Go 1.4+ codec/encoding library\nfor binc, msgpack, cbor, json.\n\nSupported Serialization formats are:\n\nTo install:\n\nThis package will carefully use 'unsafe' for performance reasons in specific places.\nYou can build without unsafe use by passing the safe or appengine tag\ni.e. 'go install -tags=safe ...'. Note that unsafe is only supported for the last 3\ngo sdk versions e.g. current go release is go 1.9, so we support unsafe use only from\ngo 1.7+ . This is because supporting unsafe requires knowledge of implementation details.\n\nFor detailed usage information, read the primer at http://ugorji.net/blog/go-codec-primer .\n\nThe idiomatic Go support is as seen in other encoding packages in\nthe standard library (ie json, xml, gob, etc).\n\nRich Feature Set includes:\n\nUsers can register a function to handle the encoding or decoding of\ntheir custom types.\n\nThere are no restrictions on what the custom type can be. Some examples:\n\nAs an illustration, MyStructWithUnexportedFields would normally be\nencoded as an empty map because it has no exported fields, while UUID\nwould be encoded as a string. However, with extension support, you can\nencode any of these however you like.\n\nThis package maintains symmetry in the encoding and decoding halfs.\nWe determine how to encode or decode by walking this decision tree\n\nThis symmetry is important to reduce chances of issues happening because the\nencoding and decoding sides are out of sync e.g. decoded via very specific\nencoding.TextUnmarshaler but encoded via kind-specific generalized mode.\n\nConsequently, if a type only defines one-half of the symmetry\n(e.g. it implements UnmarshalJSON() but not MarshalJSON() ),\nthen that type doesn't satisfy the check and we will continue walking down the\ndecision tree.\n\nRPC Client and Server Codecs are implemented, so the codecs can be used\nwith the standard net/rpc package.\n\nThe Handle is SAFE for concurrent READ, but NOT SAFE for concurrent modification.\n\nThe Encoder and Decoder are NOT safe for concurrent use.\n\nConsequently, the usage model is basically:\n\nSample usage model:\n\nTo run tests, use the following:\n\nTo run the full suite of tests, use the following:\n\nYou can run the tag 'safe' to run tests or build in safe mode. e.g.\n\nPlease see http://github.com/ugorji/go-codec-bench .\n\nStruct fields matching the following are ignored during encoding and decoding\n\nEvery other field in a struct will be encoded/decoded.\n\nEmbedded fields are encoded as if they exist in the top-level struct,\nwith some caveats. See Encode documentation.","version":"v1.1.10","softwareVersion":"v1.1.10","license":"https://spdx.org/licenses/MIT","codeRepository":"https://github.com/algorand/go-codec","issueTracker":"https://github.com/algorand/go-codec/issues","url":"https://github.com/algorand/go-codec","programmingLanguage":{"@type":"ComputerLanguage","name":"Go"},"dateCreated":"2019-01-26","dateModified":"2023-06-14","datePublished":"2023-06-14","copyrightYear":2019,"downloadUrl":"https://proxy.golang.org/cached-only/github.com/algorand/go-codec/codec/@v/v1.1.10.zip","softwareHelp":{"@type":"WebSite","url":"https://pkg.go.dev/github.com/algorand/go-codec/codec#section-documentation"},"applicationCategory":"go","runtimePlatform":"go","developmentStatus":"active","sameAs":["https://pkg.go.dev/github.com/algorand/go-codec/codec"],"https://www.w3.org/ns/activitystreams#likes":2,"https://forgefed.org/ns#forks":10}