From fd5cd55f6f04209130474b997658941a1ccb54a7 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Tue, 3 Dec 2024 00:42:41 -0300 Subject: [PATCH] replace encoding/json with json-iterator everywhere so we get rid of HTML encoding and maybe be faster. --- bunker.go | 3 +-- count.go | 1 - decode.go | 1 - event.go | 4 ++-- go.mod | 5 ++++- go.sum | 9 +++++++++ helpers.go | 3 +++ key.go | 1 - relay.go | 1 - req.go | 1 - serve.go | 1 - verify.go | 1 - 12 files changed, 19 insertions(+), 12 deletions(-) diff --git a/bunker.go b/bunker.go index a74c8da..177ebc3 100644 --- a/bunker.go +++ b/bunker.go @@ -2,10 +2,10 @@ package main import ( "context" - "encoding/json" "fmt" "net/url" "os" + "slices" "strings" "sync" "time" @@ -15,7 +15,6 @@ import ( "github.com/nbd-wtf/go-nostr" "github.com/nbd-wtf/go-nostr/nip19" "github.com/nbd-wtf/go-nostr/nip46" - "golang.org/x/exp/slices" ) var bunker = &cli.Command{ diff --git a/count.go b/count.go index 36c0bd5..6333d30 100644 --- a/count.go +++ b/count.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "errors" "fmt" "strings" diff --git a/decode.go b/decode.go index 561ba92..4b9a139 100644 --- a/decode.go +++ b/decode.go @@ -3,7 +3,6 @@ package main import ( "context" "encoding/hex" - "encoding/json" "strings" "github.com/fiatjaf/cli/v3" diff --git a/event.go b/event.go index 26c1250..b87a34c 100644 --- a/event.go +++ b/event.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "os" + "slices" "strings" "time" @@ -12,7 +13,6 @@ import ( "github.com/nbd-wtf/go-nostr" "github.com/nbd-wtf/go-nostr/nip13" "github.com/nbd-wtf/go-nostr/nip19" - "golang.org/x/exp/slices" ) const ( @@ -276,7 +276,7 @@ example: // print event as json var result string if c.Bool("envelope") { - j, _ := easyjson.Marshal(nostr.EventEnvelope{Event: evt}) + j, _ := json.Marshal(nostr.EventEnvelope{Event: evt}) result = string(j) } else { j, _ := easyjson.Marshal(&evt) diff --git a/go.mod b/go.mod index 4cc8204..72da3b4 100644 --- a/go.mod +++ b/go.mod @@ -11,10 +11,10 @@ require ( github.com/fiatjaf/cli/v3 v3.0.0-20240723181502-e7dd498b16ae github.com/fiatjaf/eventstore v0.12.0 github.com/fiatjaf/khatru v0.10.0 + github.com/json-iterator/go v1.1.12 github.com/mailru/easyjson v0.7.7 github.com/markusmobius/go-dateparser v1.2.3 github.com/nbd-wtf/go-nostr v0.42.2 - golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 ) require ( @@ -43,6 +43,8 @@ require ( github.com/magefile/mage v1.14.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/puzpuzpuz/xsync/v3 v3.4.0 // indirect github.com/rs/cors v1.7.0 // indirect @@ -55,6 +57,7 @@ require ( github.com/valyala/fasthttp v1.51.0 // indirect github.com/wasilibs/go-re2 v1.3.0 // indirect golang.org/x/crypto v0.28.0 // indirect + golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.26.0 // indirect golang.org/x/text v0.19.0 // indirect diff --git a/go.sum b/go.sum index cadffd1..b496dc8 100644 --- a/go.sum +++ b/go.sum @@ -87,6 +87,7 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/graph-gophers/dataloader/v7 v7.1.0 h1:Wn8HGF/q7MNXcvfaBnLEPEFJttVHR8zuEqP1obys/oc= github.com/graph-gophers/dataloader/v7 v7.1.0/go.mod h1:1bKE0Dm6OUcTB/OAuYVOZctgIz7Q3d0XrYtlIzTgg6Q= github.com/greatroar/blobloom v0.8.0 h1:I9RlEkfqK9/6f1v9mFmDYegDQ/x0mISCpiNpAm23Pt4= @@ -103,6 +104,8 @@ github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJS github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.17.10 h1:oXAz+Vh0PMUvJczoi+flxpnBEPxoER1IaAnU/NMPtT0= github.com/klauspost/compress v1.17.10/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= @@ -117,6 +120,11 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/nbd-wtf/go-nostr v0.42.2 h1:X8vpfLutvmyxqjsroKPHdIyPliNa6sYD8+CA0kDVySw= github.com/nbd-wtf/go-nostr v0.42.2/go.mod h1:FBa4FBJO7NuANvkeKSlrf0BIyxGufmrUbuelr6Q4Ick= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -142,6 +150,7 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1 github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= diff --git a/helpers.go b/helpers.go index 6cf5908..f276682 100644 --- a/helpers.go +++ b/helpers.go @@ -12,12 +12,15 @@ import ( "github.com/fatih/color" "github.com/fiatjaf/cli/v3" + jsoniter "github.com/json-iterator/go" "github.com/nbd-wtf/go-nostr" "github.com/nbd-wtf/go-nostr/sdk" ) var sys = sdk.NewSystem() +var json = jsoniter.ConfigFastest + func init() { sys.Pool = nostr.NewSimplePool(context.Background(), nostr.WithUserAgent("nak/b"), diff --git a/key.go b/key.go index 7d399b4..4a160d0 100644 --- a/key.go +++ b/key.go @@ -3,7 +3,6 @@ package main import ( "context" "encoding/hex" - "encoding/json" "fmt" "strings" diff --git a/relay.go b/relay.go index ac69a33..afc9a44 100644 --- a/relay.go +++ b/relay.go @@ -6,7 +6,6 @@ import ( "crypto/sha256" "encoding/base64" "encoding/hex" - "encoding/json" "fmt" "io" "net/http" diff --git a/req.go b/req.go index 4b0b92a..e0ea0f9 100644 --- a/req.go +++ b/req.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "fmt" "os" "strings" diff --git a/serve.go b/serve.go index 07e7722..c2a0a7c 100644 --- a/serve.go +++ b/serve.go @@ -3,7 +3,6 @@ package main import ( "bufio" "context" - "encoding/json" "fmt" "math" "os" diff --git a/verify.go b/verify.go index 69305e6..5b584cb 100644 --- a/verify.go +++ b/verify.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "github.com/fiatjaf/cli/v3" "github.com/nbd-wtf/go-nostr"