go-json/README.md

95 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2020-04-19 12:32:37 +03:00
# go-json
2020-04-22 07:06:52 +03:00
2020-04-26 06:12:52 +03:00
![Go](https://github.com/goccy/go-json/workflows/Go/badge.svg)
2020-05-14 16:05:25 +03:00
[![GoDoc](https://godoc.org/github.com/goccy/go-json?status.svg)](https://pkg.go.dev/github.com/goccy/go-json?tab=doc)
2020-04-26 06:12:52 +03:00
2020-04-19 12:32:37 +03:00
Fast JSON encoder/decoder compatible with encoding/json for Go
2020-04-19 14:27:56 +03:00
2020-09-09 11:11:28 +03:00
<img width="400px" src="https://user-images.githubusercontent.com/209884/92572337-42b42900-f2bf-11ea-973a-c74a359553a5.png"></img>
2020-08-02 11:38:04 +03:00
# Installation
2020-04-22 07:06:52 +03:00
2020-08-02 11:38:04 +03:00
```
go get github.com/goccy/go-json
```
2020-05-04 12:54:43 +03:00
2020-08-02 11:38:04 +03:00
# How to use
2020-05-04 12:54:43 +03:00
2020-08-02 11:38:04 +03:00
Replace import statement from `encoding/json` to `github.com/goccy/go-json`
2020-05-08 19:12:36 +03:00
2020-08-02 11:38:04 +03:00
```
-import "encoding/json"
+import "github.com/goccy/go-json"
```
2020-05-08 19:12:36 +03:00
2020-04-19 14:27:56 +03:00
# Benchmarks
```
2020-04-26 06:03:17 +03:00
$ cd benchmarks
2020-04-19 14:27:56 +03:00
$ go test -bench .
2020-04-26 06:03:17 +03:00
```
2020-08-02 11:24:39 +03:00
## Encode
2020-04-26 06:03:17 +03:00
2020-08-02 11:24:39 +03:00
**Fastest**
2020-04-26 06:03:17 +03:00
2020-12-20 19:14:21 +03:00
<img width="700" alt="" src="https://user-images.githubusercontent.com/209884/102718073-82ac9280-4329-11eb-94f2-c5377a2feeed.png">
<img width="700" alt="" src="https://user-images.githubusercontent.com/209884/102718071-804a3880-4329-11eb-9e70-5de74e55a553.png">
2020-04-26 06:03:17 +03:00
2020-08-02 11:24:39 +03:00
## Decode
**So faster than json-iterator/go**
2020-04-26 06:03:17 +03:00
2020-08-02 11:27:38 +03:00
## json.Unmarshal
2020-04-26 06:03:17 +03:00
### SmallStruct
2020-08-02 11:24:39 +03:00
<img src="https://user-images.githubusercontent.com/209884/89118870-5b713800-d4e4-11ea-9c80-47008d998e70.png"></img>
2020-04-26 06:03:17 +03:00
### MediumStruct
2020-08-02 11:24:39 +03:00
<img src="https://user-images.githubusercontent.com/209884/89118884-86f42280-d4e4-11ea-965c-b72764870ed0.png"></img>
2020-04-26 06:03:17 +03:00
### LargeStruct
2020-08-02 11:24:39 +03:00
<img src="https://user-images.githubusercontent.com/209884/89118902-9c694c80-d4e4-11ea-94e6-8c888cdb6361.png"></img>
2020-08-02 11:27:38 +03:00
## Stream Decode
### SmallStruct
<img src="https://user-images.githubusercontent.com/209884/89118906-b0ad4980-d4e4-11ea-80fb-2a6e9e7a066e.png"></img>
### MediumStruct
<img src="https://user-images.githubusercontent.com/209884/89118917-c02c9280-d4e4-11ea-8ba8-776cdbf970df.png"></img>
### LargeStruct
<img src="https://user-images.githubusercontent.com/209884/89118920-c28eec80-d4e4-11ea-91cc-424cfe726539.png"></img>
2020-08-02 11:38:04 +03:00
# Status
## Type
Currently supported all types
## API
2020-08-12 10:54:15 +03:00
Implements All APIs
2020-08-02 11:38:04 +03:00
### Error
- [ ] `InvalidUTF8Error`
- [x] `InvalidUnmarshalError`
- [x] `MarshalerError`
- [x] `SyntaxError`
- [ ] `UnmarshalFieldError`
- [ ] `UnmarshalTypeError`
- [x] `UnsupportedTypeError`
- [x] `UnsupportedValueError`
2020-04-22 07:06:52 +03:00
# License
MIT