mirror of
https://github.com/TecharoHQ/anubis.git
synced 2025-08-03 09:48:08 -04:00

* feat: replace cidranger with bart improving performance by 3-20x Signed-off-by: Jason Cameron <git@jasoncameron.dev> * perf: replace cidranger with bart for IP range checking - Replace cidranger.Ranger with bart.Lite in RemoteAddrChecker - Use netip.ParsePrefix instead of net.ParseCIDR for modern IP handling - Improve performance: 3-20x faster lookups with zero heap allocations - Update imports to use github.com/gaissmai/bart and net/netip - Remove cidranger dependency from go.mod Benchmark results: - IPv4 lookups: 4x faster (15.58ns vs 63.25ns, 0 vs 2 allocs) - IPv6 lookups: 3x faster (26.51ns vs 76.96ns, 0 vs 2 allocs) - Insertions: 20x faster (976ns vs 19,191ns) - Large tables: 14x faster (5.2ns vs 74.85ns) * docs: clarify CHANGELOG to not give false impressions Signed-off-by: Jason Cameron <git@jasoncameron.dev> * perf: optimize string concatenation in RemoteAddrChecker hash generation Replace fmt.Fprintln with strings.Join for 7x faster performance: - Before: 935.1 ns/op, 784 B/op, 22 allocs/op - After: 133.2 ns/op, 192 B/op, 1 alloc/op The hash is used for JWT cookie validation and error code generation. Comma separation provides the same deterministic uniqueness as newlines but with significantly better performance during policy initialization. * chore: remove accidentally commited string benchmark Signed-off-by: Jason Cameron <git@jasoncameron.dev> * style: apply Copilot suggestions Signed-off-by: Jason Cameron <git@jasoncameron.dev> * fix: reference the right var name i cannot write a merge commit Signed-off-by: Jason Cameron <git@jasoncameron.dev> --------- Signed-off-by: Jason Cameron <git@jasoncameron.dev>
128 lines
5.8 KiB
Modula-2
128 lines
5.8 KiB
Modula-2
module github.com/TecharoHQ/anubis
|
|
|
|
go 1.24.2
|
|
|
|
require (
|
|
github.com/TecharoHQ/thoth-proto v0.4.0
|
|
github.com/a-h/templ v0.3.898
|
|
github.com/cespare/xxhash/v2 v2.3.0
|
|
github.com/facebookgo/flagenv v0.0.0-20160425205200-fcd59fca7456
|
|
github.com/gaissmai/bart v0.20.4
|
|
github.com/golang-jwt/jwt/v5 v5.2.2
|
|
github.com/google/cel-go v0.25.0
|
|
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1
|
|
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0
|
|
github.com/joho/godotenv v1.5.1
|
|
github.com/playwright-community/playwright-go v0.5200.0
|
|
github.com/prometheus/client_golang v1.22.0
|
|
github.com/sebest/xff v0.0.0-20210106013422-671bd2870b3a
|
|
golang.org/x/net v0.41.0
|
|
google.golang.org/grpc v1.72.2
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
k8s.io/apimachinery v0.33.1
|
|
sigs.k8s.io/yaml v1.4.0
|
|
)
|
|
|
|
require (
|
|
al.essio.dev/pkg/shellescape v1.6.0 // indirect
|
|
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250425153114-8976f5be98c1.1 // indirect
|
|
cel.dev/expr v0.23.1 // indirect
|
|
dario.cat/mergo v1.0.2 // indirect
|
|
github.com/AlekSi/pointer v1.2.0 // indirect
|
|
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect
|
|
github.com/Masterminds/goutils v1.1.1 // indirect
|
|
github.com/Masterminds/semver/v3 v3.3.1 // indirect
|
|
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
|
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
|
github.com/ProtonMail/go-crypto v1.2.0 // indirect
|
|
github.com/Songmu/gitconfig v0.2.0 // indirect
|
|
github.com/TecharoHQ/yeet v0.6.0 // indirect
|
|
github.com/a-h/parse v0.0.0-20250122154542-74294addb73e // indirect
|
|
github.com/andybalholm/brotli v1.1.0 // indirect
|
|
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb // indirect
|
|
github.com/cavaliergopher/cpio v1.0.1 // indirect
|
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
|
github.com/cli/browser v1.3.0 // indirect
|
|
github.com/cli/go-gh v0.1.0 // indirect
|
|
github.com/cloudflare/circl v1.6.1 // indirect
|
|
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
|
|
github.com/deckarep/golang-set/v2 v2.8.0 // indirect
|
|
github.com/dlclark/regexp2 v1.11.4 // indirect
|
|
github.com/dop251/goja v0.0.0-20250309171923-bcd7cc6bf64c // indirect
|
|
github.com/emirpasic/gods v1.18.1 // indirect
|
|
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 // indirect
|
|
github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 // indirect
|
|
github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870 // indirect
|
|
github.com/fatih/color v1.17.0 // indirect
|
|
github.com/fsnotify/fsnotify v1.8.0 // indirect
|
|
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
|
|
github.com/go-git/go-billy/v5 v5.6.2 // indirect
|
|
github.com/go-git/go-git/v5 v5.14.0 // indirect
|
|
github.com/go-jose/go-jose/v3 v3.0.4 // indirect
|
|
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
|
|
github.com/go-stack/stack v1.8.1 // indirect
|
|
github.com/gobwas/glob v0.2.3 // indirect
|
|
github.com/goccy/go-yaml v1.12.0 // indirect
|
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
|
github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect
|
|
github.com/google/rpmpack v0.6.1-0.20250405124433-758cc6896cbc // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/goreleaser/chglog v0.7.0 // indirect
|
|
github.com/goreleaser/fileglob v1.3.0 // indirect
|
|
github.com/goreleaser/nfpm/v2 v2.42.1 // indirect
|
|
github.com/huandu/xstrings v1.5.0 // indirect
|
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
|
github.com/klauspost/compress v1.18.0 // indirect
|
|
github.com/klauspost/pgzip v1.2.6 // indirect
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/natefinch/atomic v1.0.1 // indirect
|
|
github.com/pjbgf/sha1cd v0.3.2 // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/prometheus/client_model v0.6.1 // indirect
|
|
github.com/prometheus/common v0.62.0 // indirect
|
|
github.com/prometheus/procfs v0.15.1 // indirect
|
|
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
|
github.com/shopspring/decimal v1.4.0 // indirect
|
|
github.com/skeema/knownhosts v1.3.1 // indirect
|
|
github.com/spf13/cast v1.7.1 // indirect
|
|
github.com/stoewer/go-strcase v1.3.0 // indirect
|
|
github.com/ulikunitz/xz v0.5.12 // indirect
|
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
|
gitlab.com/digitalxero/go-conventional-commit v1.0.7 // indirect
|
|
golang.org/x/crypto v0.39.0 // indirect
|
|
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
|
|
golang.org/x/exp/typeparams v0.0.0-20231108232855-2478ac86f678 // indirect
|
|
golang.org/x/mod v0.25.0 // indirect
|
|
golang.org/x/sync v0.15.0 // indirect
|
|
golang.org/x/sys v0.33.0 // indirect
|
|
golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7 // indirect
|
|
golang.org/x/term v0.32.0 // indirect
|
|
golang.org/x/text v0.26.0 // indirect
|
|
golang.org/x/tools v0.33.0 // indirect
|
|
golang.org/x/vuln v1.1.4 // indirect
|
|
golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
|
|
google.golang.org/protobuf v1.36.6 // indirect
|
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
|
honnef.co/go/tools v0.6.1 // indirect
|
|
mvdan.cc/sh/v3 v3.11.0 // indirect
|
|
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
|
|
)
|
|
|
|
tool (
|
|
github.com/TecharoHQ/yeet/cmd/yeet
|
|
github.com/a-h/templ/cmd/templ
|
|
golang.org/x/tools/cmd/goimports
|
|
golang.org/x/tools/cmd/stringer
|
|
golang.org/x/vuln/cmd/govulncheck
|
|
honnef.co/go/tools/cmd/staticcheck
|
|
)
|