From 1b92c64ed2c513556c6930ca1b08b4f1f305491c Mon Sep 17 00:00:00 2001 From: yusing Date: Sat, 28 Feb 2026 19:45:43 +0800 Subject: [PATCH] Replace json with sonic --- internal/metrics/period/entries.go | 4 +--- internal/metrics/period/poller.go | 3 +-- internal/metrics/systeminfo/system_info_test.go | 7 +++---- internal/metrics/uptime/uptime.go | 6 +++--- internal/net/gphttp/middleware/captcha/hcaptcha.go | 4 ++-- internal/net/gphttp/middleware/middleware.go | 4 ++-- internal/net/gphttp/middleware/test_utils_test.go | 4 ++-- 7 files changed, 14 insertions(+), 18 deletions(-) diff --git a/internal/metrics/period/entries.go b/internal/metrics/period/entries.go index cb6dd3ae..4864d3b3 100644 --- a/internal/metrics/period/entries.go +++ b/internal/metrics/period/entries.go @@ -3,8 +3,6 @@ package period import ( "encoding/json" "time" - - "github.com/bytedance/sonic" ) type Entries[T any] struct { @@ -75,7 +73,7 @@ type entriesJSON[T any] struct { } func (e *Entries[T]) MarshalJSON() ([]byte, error) { - return sonic.Marshal(entriesJSON[T]{ + return json.Marshal(entriesJSON[T]{ Entries: e.Get(), Interval: e.interval, }) diff --git a/internal/metrics/period/poller.go b/internal/metrics/period/poller.go index 655df900..87671497 100644 --- a/internal/metrics/period/poller.go +++ b/internal/metrics/period/poller.go @@ -9,7 +9,6 @@ import ( "sync" "time" - "github.com/bytedance/sonic" "github.com/rs/zerolog/log" gperr "github.com/yusing/goutils/errs" "github.com/yusing/goutils/synk" @@ -97,7 +96,7 @@ func (p *Poller[T, AggregateT]) save() error { } defer f.Close() - err = sonic.ConfigDefault.NewEncoder(f).Encode(p.period) + err = json.NewEncoder(f).Encode(p.period) if err != nil { return err } diff --git a/internal/metrics/systeminfo/system_info_test.go b/internal/metrics/systeminfo/system_info_test.go index 93f7900e..cea42384 100644 --- a/internal/metrics/systeminfo/system_info_test.go +++ b/internal/metrics/systeminfo/system_info_test.go @@ -6,7 +6,6 @@ import ( "reflect" "testing" - "github.com/bytedance/sonic" "github.com/shirou/gopsutil/v4/disk" "github.com/shirou/gopsutil/v4/mem" "github.com/shirou/gopsutil/v4/net" @@ -81,12 +80,12 @@ var ( func TestSystemInfo(t *testing.T) { // Test marshaling - data, err := sonic.Marshal(testInfo) + data, err := json.Marshal(testInfo) expect.NoError(t, err) // Test unmarshaling back var decoded SystemInfo - err = sonic.Unmarshal(data, &decoded) + err = json.Unmarshal(data, &decoded) expect.NoError(t, err) // Compare original and decoded @@ -138,7 +137,7 @@ func TestSerialize(t *testing.T) { for _, query := range allQueries { t.Run(string(query), func(t *testing.T) { _, result := aggregate(entries, url.Values{"aggregate": []string{string(query)}}) - s, err := sonic.Marshal(result) + s, err := json.Marshal(result) expect.NoError(t, err) var v []map[string]any expect.NoError(t, json.Unmarshal(s, &v)) diff --git a/internal/metrics/uptime/uptime.go b/internal/metrics/uptime/uptime.go index 773a506c..5d45a61b 100644 --- a/internal/metrics/uptime/uptime.go +++ b/internal/metrics/uptime/uptime.go @@ -2,13 +2,13 @@ package uptime import ( "context" + "encoding/json" "errors" "math" "net/url" "slices" "time" - "github.com/bytedance/sonic" "github.com/lithammer/fuzzysearch/fuzzy" config "github.com/yusing/godoxy/internal/config/types" entrypoint "github.com/yusing/godoxy/internal/entrypoint/types" @@ -54,7 +54,7 @@ func getStatuses(ctx context.Context, _ StatusByAlias) (StatusByAlias, error) { } func (s *Status) MarshalJSON() ([]byte, error) { - return sonic.Marshal(map[string]any{ + return json.Marshal(map[string]any{ "status": s.Status.String(), "latency": s.Latency, "timestamp": s.Timestamp, @@ -158,5 +158,5 @@ func (rs RouteStatuses) aggregate(limit int, offset int) Aggregated { } func (result Aggregated) MarshalJSON() ([]byte, error) { - return sonic.Marshal([]RouteAggregate(result)) + return json.Marshal([]RouteAggregate(result)) } diff --git a/internal/net/gphttp/middleware/captcha/hcaptcha.go b/internal/net/gphttp/middleware/captcha/hcaptcha.go index 4a6cf9ab..cba6cf60 100644 --- a/internal/net/gphttp/middleware/captcha/hcaptcha.go +++ b/internal/net/gphttp/middleware/captcha/hcaptcha.go @@ -3,6 +3,7 @@ package captcha import ( "bytes" "context" + "encoding/json" "errors" "net" "net/http" @@ -11,7 +12,6 @@ import ( _ "embed" - "github.com/bytedance/sonic" gperr "github.com/yusing/goutils/errs" strutils "github.com/yusing/goutils/strings" ) @@ -73,7 +73,7 @@ func (p *HcaptchaProvider) Verify(r *http.Request) error { Success bool `json:"success"` Error []string `json:"error-codes"` } - if err := sonic.ConfigDefault.NewDecoder(resp.Body).Decode(&respData); err != nil { + if err := json.NewDecoder(resp.Body).Decode(&respData); err != nil { return err } diff --git a/internal/net/gphttp/middleware/middleware.go b/internal/net/gphttp/middleware/middleware.go index 817c401d..dc436ce9 100644 --- a/internal/net/gphttp/middleware/middleware.go +++ b/internal/net/gphttp/middleware/middleware.go @@ -1,6 +1,7 @@ package middleware import ( + "encoding/json" "fmt" "maps" "mime" @@ -10,7 +11,6 @@ import ( "strconv" "strings" - "github.com/bytedance/sonic" "github.com/rs/zerolog" "github.com/rs/zerolog/log" "github.com/yusing/godoxy/internal/serialization" @@ -159,7 +159,7 @@ func (m *Middleware) MarshalJSON() ([]byte, error) { commonOptions any } - return sonic.MarshalIndent(map[string]any{ + return json.MarshalIndent(map[string]any{ "name": m.name, "options": allOptions{ commonOptions: m.commonOptions, diff --git a/internal/net/gphttp/middleware/test_utils_test.go b/internal/net/gphttp/middleware/test_utils_test.go index dae8fb79..2c57704f 100644 --- a/internal/net/gphttp/middleware/test_utils_test.go +++ b/internal/net/gphttp/middleware/test_utils_test.go @@ -3,13 +3,13 @@ package middleware import ( "bytes" _ "embed" + "encoding/json" "io" "maps" "net/http" "net/http/httptest" "strings" - "github.com/bytedance/sonic" "github.com/yusing/godoxy/internal/common" nettypes "github.com/yusing/godoxy/internal/net/types" "github.com/yusing/goutils/http/reverseproxy" @@ -24,7 +24,7 @@ func init() { return } tmp := map[string]string{} - err := sonic.Unmarshal(testHeadersRaw, &tmp) + err := json.Unmarshal(testHeadersRaw, &tmp) if err != nil { panic(err) }