mirror of
https://github.com/TecharoHQ/anubis.git
synced 2025-08-03 17:59:24 -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>
57 lines
2.4 KiB
Modula-2
57 lines
2.4 KiB
Modula-2
module github.com/TecharoHQ/anubis/test
|
|
|
|
go 1.24.2
|
|
|
|
replace github.com/TecharoHQ/anubis => ..
|
|
|
|
require (
|
|
github.com/TecharoHQ/anubis v1.19.1
|
|
github.com/facebookgo/flagenv v0.0.0-20160425205200-fcd59fca7456
|
|
github.com/google/uuid v1.6.0
|
|
)
|
|
|
|
require (
|
|
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250425153114-8976f5be98c1.1 // indirect
|
|
cel.dev/expr v0.24.0 // indirect
|
|
github.com/TecharoHQ/thoth-proto v0.4.0 // indirect
|
|
github.com/a-h/templ v0.3.898 // indirect
|
|
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c // indirect
|
|
github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 // indirect
|
|
github.com/gaissmai/bart v0.20.4 // indirect
|
|
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
|
|
github.com/google/cel-go v0.25.0 // indirect
|
|
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 // indirect
|
|
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect
|
|
github.com/joho/godotenv v1.5.1 // indirect
|
|
github.com/jsha/minica v1.1.0 // indirect
|
|
github.com/kr/text v0.2.0 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/prometheus/client_golang v1.22.0 // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.64.0 // indirect
|
|
github.com/prometheus/procfs v0.16.1 // indirect
|
|
github.com/sebest/xff v0.0.0-20210106013422-671bd2870b3a // indirect
|
|
github.com/stoewer/go-strcase v1.3.0 // indirect
|
|
github.com/yl2chen/cidranger v1.0.2 // indirect
|
|
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect
|
|
golang.org/x/net v0.41.0 // indirect
|
|
golang.org/x/sys v0.33.0 // indirect
|
|
golang.org/x/text v0.26.0 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect
|
|
google.golang.org/grpc v1.72.2 // indirect
|
|
google.golang.org/protobuf v1.36.6 // indirect
|
|
k8s.io/apimachinery v0.33.1 // indirect
|
|
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
|
|
sigs.k8s.io/yaml v1.4.0 // indirect
|
|
)
|
|
|
|
tool (
|
|
github.com/TecharoHQ/anubis/cmd/anubis
|
|
github.com/jsha/minica
|
|
)
|