You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-23Lines changed: 10 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -232,6 +232,7 @@ because RFC 8949 treats CBOR data item with remaining bytes as malformed.
232
232
Other useful functions:
233
233
-`Diagnose`, `DiagnoseFirst` produce human-readable [Extended Diagnostic Notation](https://www.rfc-editor.org/rfc/rfc8610.html#appendix-G) from CBOR data.
234
234
-`UnmarshalFirst` decodes first CBOR data item and return any remaining bytes.
235
+
-`Wellformed` returns true if the the CBOR data item is well-formed.
235
236
236
237
Interfaces identical or comparable to Go `encoding` packages include:
237
238
`Marshaler`, `Unmarshaler`, `BinaryMarshaler`, and `BinaryUnmarshaler`.
@@ -250,16 +251,13 @@ Default limits may need to be increased for systems handling very large data (e.
250
251
251
252
## Status
252
253
253
-
v2.5.0 is fuzz tested and production quality.
254
+
v2.5.0 was released on Sunday, August 13, 2023. It is fuzz tested and production quality.
254
255
255
-
IMPORTANT: These changes in [v2.5.0-beta](https://github.com/fxamacker/cbor/releases/tag/v2.5.0-beta) should be reviewed before upgrading from prior versions:
256
-
- PR 370: Add SimpleValue type to more fully support CBOR Simple Values, including values not assigned by IANA and...
257
-
- PR 376: Add ByteString type to support CBOR maps with byte string keys because Go doesn't allow []byte as map keys and...
258
-
- PR 379: Make Decoder.Decode() return io.ErrUnexpectedEOF instead of io.EOF on EOF if current CBOR data item is incomplete.
259
-
- PR 380: Make Unmarshal() and Valid() return cbor.ExtraneousDataError (instead of ignoring extraneous data if any remain)
256
+
__IMPORTANT__: Before upgrading from prior release, please read the notable changes highlighted in the release notes.
260
257
261
258
See latest [releases](https://github.com/fxamacker/cbor/releases) and [v2.5.0 release notes](https://github.com/fxamacker/cbor/releases/tag/v2.5.0) for list of new features and improvements.
262
259
260
+
<!--
263
261
<details><summary>👉 Benchmark Comparison: v2.4.0 vs v2.5.0</summary><p/>
264
262
265
263
TODO: Update to v2.4.0 vs 2.5.0 (not beta2).
@@ -316,15 +314,6 @@ geomean 2.782
316
314
```
317
315
318
316
</details>
319
-
320
-
<!--
321
-
## What is CBOR?
322
-
323
-
[CBOR](https://tools.ietf.org/html/rfc8949) is a concise binary data format inspired by [JSON](https://www.json.org) and [MessagePack](https://msgpack.org). CBOR is defined in [RFC 8949](https://tools.ietf.org/html/rfc8949) (December 2020) which obsoletes [RFC 7049](https://tools.ietf.org/html/rfc7049) (October 2013).
324
-
325
-
CBOR is an [Internet Standard](https://en.wikipedia.org/wiki/Internet_Standard) by [IETF](https://www.ietf.org). It's used in other standards like [WebAuthn](https://en.wikipedia.org/wiki/WebAuthn) by [W3C](https://www.w3.org), [COSE (RFC 8152)](https://tools.ietf.org/html/rfc8152), [CWT (RFC 8392)](https://tools.ietf.org/html/rfc8392), [CDDL (RFC 8610)](https://datatracker.ietf.org/doc/html/rfc8610) and [more](CBOR_GOLANG.md).
326
-
327
-
[Reasons for choosing CBOR](https://github.com/fxamacker/cbor/wiki/Why-CBOR) vary by project. Some projects replaced protobuf, encoding/json, encoding/gob, etc. with CBOR. For example, by replacing protobuf with CBOR in gRPC.
328
317
-->
329
318
330
319
## Who uses fxamacker/cbor
@@ -403,7 +392,6 @@ For more information, see [decoding options](#decoding-options-1) and [tag optio
403
392
If any of these limitations prevent you from using this library, please open an issue along with a link to your project.
404
393
405
394
* CBOR `Undefined` (0xf7) value decodes to Go's `nil` value. CBOR `Null` (0xf6) more closely matches Go's `nil`.
406
-
* CBOR `simple values` that are unassigned/reserved by IANA are not fully supported until `fxamacker/cbor` v2.5.0.
407
395
* CBOR map keys with data types not supported by Go for map keys are ignored and an error is returned after continuing to decode remaining items.
408
396
* When decoding registered CBOR tag data to interface type, decoder creates a pointer to registered Go type matching CBOR tag number. Requiring a pointer for this is a Go limitation.
409
397
@@ -424,7 +412,7 @@ These functions have signatures identical to encoding/json and they will likely
424
412
Exclusions from SemVer:
425
413
- Newly added API documented as "subject to change".
426
414
- Newly added API in the master branch that has never been release tagged.
427
-
- Bug fixes that change behavior (e.g. return error that was missed in prior version) if function parameters are unchanged.
415
+
- Bug fixes that change behavior (e.g. return error that was missed in prior version) if function parameters are unchanged. We try to highlight these in the release notes.
428
416
429
417
## Code of Conduct
430
418
@@ -446,16 +434,15 @@ For the full text of the Security Policy, see [SECURITY.md](SECURITY.md).
446
434
447
435
Many thanks to all the contributors on this project!
448
436
449
-
I'm extremely grateful for people who were supportive or contributed in the very early days:
450
-
- Stefan Tatschner, Yawning Angel, Jernej Kos, x448, ZenGround0, Jakob Borg
437
+
I'm especially grateful to Bastian Müller and Dieter Shirley for suggesting and collaborating on CBOR stream mode, and much more.
451
438
452
-
I'm also grateful for Bastian Müller and Dieter Shirley suggesting and collaborating on CBOR stream mode.
439
+
I'm very grateful to Stefan Tatschner, Yawning Angel, Jernej Kos, x448, ZenGround0, and Jakob Borg for their contributions or support in the very early days.
453
440
454
-
This library wouldn't be possible without Carsten Bormann authoring CBOR (RFC 7049 and RFC 8949).
441
+
This library clearly wouldn't be possible without Carsten Bormann authoring CBOR RFCs.
455
442
456
-
Special thanks to Laurence Lundblade and Jeffrey Yasskin for their help on IETF mailing list for[7049bis](https://github.com/cbor-wg/CBORbis).
443
+
Special thanks to Laurence Lundblade and Jeffrey Yasskin for their help on IETF mailing list or at[7049bis](https://github.com/cbor-wg/CBORbis).
457
444
458
-
This library uses `x448/float16` which used to be part of this library. As a standalone package, it is now used by various projects.
445
+
This library uses `x448/float16` which used to be included. Now as a standalone package, `x448/float16` is useful to other projects as well.
0 commit comments