1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# v0.3.3 (TBD)
Theme: Bugfix
User-facing changes:
- ReEncoder: Fixes a regression in v0.3.1 where it erroneously
enters compact mode when CompactIfUnder is set and write barriers
are in use.
- ReEncoder: Fixes a regression in v0.3.1 where it sometimes emits
extra (but syntactically valid) newlines when write barriers are
in use.
# v0.3.2 (2023-02-03)
Theme: Bugfix
User-facing changes:
- ReEncoder: Fixes a regression in v0.3.1 where it sometimes emits
extra (but syntactically valid) newlines.
# v0.3.1 (2023-01-31)
Theme: Performance
This release does a bunch of performance tuning and optimizations,
with no user-visible changes other than memory consumption and CPU
time. Based on benchmarks with a real-world use-case, it is now
roughly an order of magnitude faster, with much lower memory
consumption (the big-O of memory consumption was always pretty low,
but there were some big constant factors before).
# v0.3.0 (2023-01-30)
Theme: Breaking changes
This release makes a breaking change to the way *ReEncoder works.
This change both better fits what's convenient to use, and enables
making future performance improvements.
Breaking changes:
- ReEncoder: Instead of instantiating a `*ReEncoder` with
```go
reenc := &lowmemjson.ReEncoder{Out: w, settings}
```
it is now instantiated with
```go
reenc := lowmemjson.NewReEncoder(w, lowmemjson.ReEncoderConfig{settings})
```
# v0.2.1 (2023-01-30)
Theme: Code quality
This release improves code quality; getting various linters to pass,
adding tests (and a few bug-fixes), refactoring things to be
clearer, fixing some mistakes in the documentation.
User-facing changes:
- Encoder: `*EncodeMethodError` is now also used when a method
produces invalid JSON.
- Decoder: The offset in `*DecodeTypeError`s now correctly point
the start of the value, rather than somewhere in the middle of
it.
# v0.2.0 (2023-01-26)
Theme: Add documentation
This release doesn't make any major changes, and is just adding
documentation. I have removed a few minor things that I didn't want
to write documentation for.
Breaking changes:
- Drop the following shorthand functions:
+ `func Decode(r io.RuneScanner, ptr any) error { return NewDecoder(r).Decode(ptr) }`
+ `func DecodeThenEOF(r io.RuneScanner, ptr any) error { return NewDecoder(r).DecodeThenEOF(ptr) }`
+ `func Encode(w io.Writer, obj any) (err error) { return NewEncoder(w).Encode(obj) }`
- Drop `const Tab = "\t"`.
# v0.1.0 (2022-09-19)
Theme: Initial release
|