Package Usage: go: github.com/ugorji/go/codec
Package codec provides a
High Performance, Feature-Rich Idiomatic Go 1.4+ codec/encoding library
for binc, msgpack, cbor, json.
Supported Serialization formats are:
This package will carefully use 'package unsafe' for performance reasons in specific places.
You can build without unsafe use by passing the safe or appengine tag
i.e. 'go install -tags=codec.safe ...'.
This library works with both the standard `gc` and the `gccgo` compilers.
For detailed usage information, read the primer at http://ugorji.net/blog/go-codec-primer .
The idiomatic Go support is as seen in other encoding packages in
the standard library (ie json, xml, gob, etc).
Rich Feature Set includes:
Users can register a function to handle the encoding or decoding of
their custom types.
There are no restrictions on what the custom type can be. Some examples:
As an illustration, MyStructWithUnexportedFields would normally be
encoded as an empty map because it has no exported fields, while UUID
would be encoded as a string. However, with extension support, you can
encode any of these however you like.
There is also seamless support provided for registering an extension (with a tag)
but letting the encoding mechanism default to the standard way.
This package maintains symmetry in the encoding and decoding halfs.
We determine how to encode or decode by walking this decision tree
This symmetry is important to reduce chances of issues happening because the
encoding and decoding sides are out of sync e.g. decoded via very specific
encoding.TextUnmarshaler but encoded via kind-specific generalized mode.
Consequently, if a type only defines one-half of the symmetry
(e.g. it implements UnmarshalJSON() but not MarshalJSON() ),
then that type doesn't satisfy the check and we will continue walking down the
decision tree.
RPC Client and Server Codecs are implemented, so the codecs can be used
with the standard net/rpc package.
The Handle is SAFE for concurrent READ, but NOT SAFE for concurrent modification.
The Encoder and Decoder are NOT safe for concurrent use.
Consequently, the usage model is basically:
Sample usage model:
To run tests, use the following:
To run the full suite of tests, use the following:
You can run the tag 'codec.safe' to run tests or build in safe mode. e.g.
Running Benchmarks
Please see http://github.com/ugorji/go-codec-bench .
Struct fields matching the following are ignored during encoding and decoding
Every other field in a struct will be encoded/decoded.
Embedded fields are encoded as if they exist in the top-level struct,
with some caveats. See Encode documentation.
27 versions
Latest release: over 1 year ago
19,089 dependent packages
View more package details: https://packages.ecosystem.code.gouv.fr/registries/proxy.golang.org/packages/github.com/ugorji/go/codec
Dependent Repos 9
snps-public/rest-samba-config
Rest API used to view (and maybe at some point edit) Samba configurationLast synced: 7 months ago - Pushed: 11 months ago
swh/infra/ci-cd/3rdparty/cert-manager-webhook-gandi
Last synced: 7 months ago - Pushed: 11 months ago
signaux-faibles/wekan-alerter
wekan-alerterSize: 44.9 KB - Last synced: 36 minutes ago - Pushed: over 2 years ago

signaux-faibles/goup
Serveur minimaliste pour téléverser des fichiers avec une gestion de droitsSize: 63.1 MB - Last synced: 36 minutes ago - Pushed: over 2 years ago

signaux-faibles/datapi
datAPI - API des applications web signaux-faiblesSize: 43.1 MB - Last synced: 36 minutes ago - Pushed: about 6 hours ago


web-et-numerique/factory/llle_project/cozy-stack
Fork of cozy-stack https://github.com/cozy/cozy-stackLast synced: 7 months ago

ANSSI-FR/ultrablue
User-friendly Lightweight TPM Remote Attestation over BluetoothSize: 3.87 MB - Last synced: about 9 hours ago - Pushed: about 2 years ago


COSAE-FR/ripacb
RIP ACB Server and clientSize: 91.8 KB - Last synced: 15 days ago - Pushed: 7 months ago

COSAE-FR/ripradius
Radius authentication cacheSize: 111 KB - Last synced: 15 days ago - Pushed: 7 months ago

COSAE-FR/riputils
Common utilities for RIP projectsSize: 105 KB - Last synced: 15 days ago - Pushed: over 1 year ago
