github.com/wI2L/jettison@v0.7.5-0.20230106001914-c70014c6417a/CHANGELOG.md (about) 1 # Changelog 2 3 All notable changes to this project are documented in this file. 4 5 **THIS LIBRARY IS STILL IN ALPHA AND THERE ARE NO GUARANTEES REGARDING API STABILITY YET** 6 7 ## [v0.7.4] - 2022-03-21 8 9 :warning: Starting from this version, [Go 1.17+](https://golang.org/doc/install) is required to use this package. 10 11 - Fix `reflect.mapiterinit` function prototype for go1.18, changed in https://github.com/golang/go/commit/1b2d794ca3ba60c2dbc958a271662784a7122739. 12 - Update module version to `1.18` and fix build constraint lines. 13 14 ## [v0.7.3] - 2021-11-02 15 - Fix the encoding of zero-value time.Duration type in string format. 16 17 ## [v0.7.2] - 2021-08-31 18 - Minor performances improvements (remove inlined functions in `appendEscapedBytes`). 19 20 ## [v0.7.1] - 2020-03-03 21 - Fix a regression in the marshaling of `nil` map keys that implement the `encoding.TextMarshaler` interface, intoduced during refactor in version [**v0.5.0**](https://github.com/wI2L/jettison/compare/v0.4.1...v0.5.0). 22 - Split `TestTextMarshalerMapKey` and `TestNilMarshaler` tests with build constraints to allow previously ignored cases to run with Go1.14. 23 24 ## [v0.7.0] - 2020-02-17 25 - Add the `omitnil` field tag's option, which specifies that a field with a nil pointer should be omitted from the encoding. This option has precedence over the `omitempty` option. See this issue for more informations about the original proposal: [#22480](https://golang.org/issue/22480). 26 27 ## [v0.6.0] - 2020-02-14 28 - Add support for the `sync.Map` type. The marshaling behavior for this type is similar to the one of the Go `map`. 29 30 ## [v0.5.0] - 2020-02-02 31 #### Refactor of the entire project. 32 This includes the following changes, but not limited to: 33 34 - Remove the `Encoder` type to simplify the usage of the library and stick more closely to the design of `encoding/json` 35 - Reduce the number of closures used. This improves readability of stacktraces and performance profiles. 36 - Improve the marshaling performances of many types. 37 - Add support for marshaling `json.RawMessage` values. 38 - Add new options `DenyList`, `NoNumberValidation`, `NoCompact`, and rename some others. 39 - Replace the `Marshaler` and `MarshalerCtx` interfaces by `AppendMarshaler` and `AppendMarshalerCtx` to follow the new *append* model. See this issue for more details: [#34701](https://golang.org/issue/34701). 40 - Remove the `IntegerBase` option, which didn't worked properly with the `string` JSON tag. 41 42 > Some of the improvements have been inspired by the **github.com/segmentio/encoding** project. 43 44 ## [v0.4.1] - 2019-10-23 45 - Fix unsafe misuses reported by go vet and the new `-d=checkptr` cmd/compile flag introduced in the Go1.14 development tree by *Matthew Dempsky*. The issues were mostly related to invalid arithmetic operations and dereferences. 46 - Fix map key types precedence order during marshaling. Keys of any string type are used directly instead of the `MarshalText` method, if the types also implement the `encoding.TextMarshaler` interface. 47 48 ## [v0.4.0] - 2019-10-18 49 - Add the `Marshaler` interface. Types that implements it can write a JSON representation of themselves to a `Writer` directly, to avoid having to allocate a buffer as they would usually do when using the `json.Marshaler` interface. 50 51 ## [v0.3.1] - 2019-10-09 52 - Fix HTML characters escaping in struct field names. 53 - Add examples for Marshal, MarshalTo and Encoder's Encode. 54 - Refactor string encoding to be compliant with `encoding/json`. 55 56 ## [v0.3.0] - 2019-09-23 57 - Add global functions `Marshal`, `MarshalTo` and `Register`. 58 - Update `README.md`: usage, examples and benchmarks. 59 60 ## [v0.2.1] - 2019-09-10 61 - Refactor instructions for types implementing the `json.Marshaler` and `encoding.TextMarshaler` interfaces. 62 - Fix encoding of `nil` instances. 63 - Fix behavior for pointer and non-pointer receivers, to comply with `encoding/json`. 64 - Fix bug that prevents tagged fields to dominate untagged fields. 65 - Add support for anonymous struct pointer fields. 66 - Improve tests coverage of `encoder.go`. 67 - Add test cases for unexported non-embedded struct fields. 68 69 ## [v0.2.0] - 2019-09-01 70 - Add support for `json.Number`. 71 - Update `README.md` to add a Go1.12+ requirement notice. 72 73 ## [v0.1.0] - 2019-08-30 74 Initial realease. 75 76 [v0.7.4]: https://github.com/wI2L/jettison/compare/v0.7.3...v0.7.4 77 [v0.7.3]: https://github.com/wI2L/jettison/compare/v0.7.2...v0.7.3 78 [v0.7.2]: https://github.com/wI2L/jettison/compare/v0.7.1...v0.7.2 79 [v0.7.1]: https://github.com/wI2L/jettison/compare/v0.7.0...v0.7.1 80 [v0.7.0]: https://github.com/wI2L/jettison/compare/v0.6.0...v0.7.0 81 [v0.6.0]: https://github.com/wI2L/jettison/compare/v0.5.0...v0.6.0 82 [v0.5.0]: https://github.com/wI2L/jettison/compare/v0.4.1...v0.5.0 83 [v0.4.1]: https://github.com/wI2L/jettison/compare/v0.4.0...v0.4.1 84 [v0.4.0]: https://github.com/wI2L/jettison/compare/v0.3.1...v0.4.0 85 [v0.3.1]: https://github.com/wI2L/jettison/compare/v0.3.0...v0.3.1 86 [v0.3.0]: https://github.com/wI2L/jettison/compare/v0.2.1...v0.3.0 87 [v0.2.1]: https://github.com/wI2L/jettison/compare/v0.2.0...v0.2.1 88 [v0.2.0]: https://github.com/wI2L/jettison/compare/0.1.0...v0.2.0 89 [v0.1.0]: https://github.com/wI2L/jettison/releases/tag/0.1.0