mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-10-25 07:15:01 +03:00
73fad424ed
Every subscription fetch read and scanned each inbound's whole settings blob, about 25 MB at 100k clients, although subscription bodies resolve their clients from the clients table and never use its clients array. Each inbound's settings minus the clients array are now cached, keyed by inbound and shared by all its subscribers; the inbound row, clients, stats and hosts are still read per fetch, and WireGuard and AmneziaWG keep full settings for their peers. Panel edits purge the cache through an invalidator registry the subscription server releases on stop, with a 10 s TTL as the backstop. At 100k clients a hit takes 2.1 ms on SQLite (72.5 ms before) and 20.7 ms on PostgreSQL (332 ms).
122 lines
5.3 KiB
Modula-2
122 lines
5.3 KiB
Modula-2
module github.com/mhsanaei/3x-ui/v3
|
|
|
|
go 1.27.3
|
|
|
|
require (
|
|
github.com/amnezia-vpn/amneziawg-go/v3 v3.1.20260828
|
|
github.com/apernet/quic-go v0.61.1-0.20260806010916-184d081eef3e
|
|
github.com/gin-contrib/gzip v1.2.8
|
|
github.com/gin-contrib/sessions v1.1.2
|
|
github.com/gin-gonic/gin v1.12.0
|
|
github.com/go-ldap/ldap/v3 v3.4.15
|
|
github.com/go-playground/validator/v10 v10.30.5
|
|
github.com/goccy/go-json v0.11.2
|
|
github.com/goccy/go-yaml v1.19.2
|
|
github.com/google/uuid v1.6.0
|
|
github.com/gorilla/websocket v1.5.3
|
|
github.com/jackc/pgx/v5 v5.11.0
|
|
github.com/joho/godotenv v1.5.1
|
|
github.com/klauspost/compress v1.20.3
|
|
github.com/mattn/go-sqlite3 v1.14.52
|
|
github.com/mymmrac/telego v1.12.1
|
|
github.com/nicksnyder/go-i18n/v2 v2.6.1
|
|
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
|
|
github.com/quic-go/quic-go v0.64.1
|
|
github.com/refraction-networking/utls v1.8.3-0.20260301010127-aa6edf4b11af
|
|
github.com/robfig/cron/v3 v3.0.1
|
|
github.com/shirou/gopsutil/v4 v4.26.9
|
|
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
|
github.com/valyala/fasthttp v1.76.0
|
|
github.com/xlzd/gotp v0.1.0
|
|
github.com/xtls/xray-core v1.260327.1-0.20261021115930-1b1647cd9ddf
|
|
go.uber.org/atomic v1.12.0
|
|
golang.org/x/crypto v0.58.0
|
|
golang.org/x/net v0.61.0
|
|
golang.org/x/sync v0.24.0
|
|
golang.org/x/sys v0.49.0
|
|
golang.org/x/text v0.43.0
|
|
google.golang.org/grpc v1.86.0-dev
|
|
google.golang.org/protobuf v1.36.12
|
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1
|
|
gorm.io/driver/postgres v1.6.3
|
|
gorm.io/driver/sqlite v1.6.0
|
|
gorm.io/gorm v1.31.2
|
|
gvisor.dev/gvisor v0.0.0-20260122175437-89a5d21be8f0
|
|
pgregory.net/rapid v1.3.0
|
|
)
|
|
|
|
require (
|
|
github.com/Azure/go-ntlmssp v0.1.1 // indirect
|
|
github.com/andybalholm/brotli v1.2.6 // indirect
|
|
github.com/bytedance/gopkg v0.1.4 // indirect
|
|
github.com/bytedance/sonic v1.15.4 // indirect
|
|
github.com/bytedance/sonic/loader v0.5.3 // indirect
|
|
github.com/cloudwego/base64x v0.1.7 // indirect
|
|
github.com/ebitengine/purego v0.11.2 // indirect
|
|
github.com/gabriel-vasile/mimetype v1.4.16 // indirect
|
|
github.com/gin-contrib/sse v1.1.2 // indirect
|
|
github.com/go-asn1-ber/asn1-ber v1.5.8 // indirect
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
|
github.com/go-playground/locales v0.14.2 // indirect
|
|
github.com/go-playground/universal-translator v0.18.2 // indirect
|
|
github.com/google/btree v1.1.3 // indirect
|
|
github.com/gorilla/context v1.1.2 // indirect
|
|
github.com/gorilla/securecookie v1.1.2 // indirect
|
|
github.com/gorilla/sessions v1.4.0 // indirect
|
|
github.com/grbit/go-json v0.11.0 // indirect
|
|
github.com/huin/goupnp v1.3.0 // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.3 // indirect
|
|
github.com/jackpal/go-nat-pmp v1.1.0 // indirect
|
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
|
github.com/jinzhu/now v1.1.5 // indirect
|
|
github.com/json-iterator/go v1.1.12 // indirect
|
|
github.com/juju/ratelimit v1.0.2 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.4.1 // indirect
|
|
github.com/koron/go-ssdp v0.9.1 // indirect
|
|
github.com/leodido/go-urn v1.5.0 // indirect
|
|
github.com/libp2p/go-nat v1.0.1-0.20250821073202-01afc089f138 // indirect
|
|
github.com/libp2p/go-netroute v0.4.0 // indirect
|
|
github.com/lufia/plan9stats v0.0.0-20260802145828-341c2f0c90b5 // indirect
|
|
github.com/mattn/go-isatty v0.0.24 // indirect
|
|
github.com/miekg/dns v1.1.73 // indirect
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
|
github.com/molecule-man/go-brrr v1.3.0 // indirect
|
|
github.com/pelletier/go-toml/v2 v2.4.3 // indirect
|
|
github.com/pion/dtls/v3 v3.1.15 // indirect
|
|
github.com/pion/logging v0.2.4 // indirect
|
|
github.com/pion/stun/v3 v3.1.7 // indirect
|
|
github.com/pion/transport/v4 v4.1.1 // indirect
|
|
github.com/pion/transport/v5 v5.1.1 // indirect
|
|
github.com/pires/go-proxyproto v0.16.0 // indirect
|
|
github.com/power-devops/perfstat v0.0.0-20260916203055-22a1a467d9f0 // indirect
|
|
github.com/quic-go/qpack v0.6.0 // indirect
|
|
github.com/rogpeppe/go-internal v1.15.0 // indirect
|
|
github.com/tklauser/go-sysconf v0.4.0 // indirect
|
|
github.com/tklauser/numcpus v0.12.0 // indirect
|
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
|
github.com/ugorji/go/codec v1.3.2 // indirect
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
github.com/valyala/fastjson v1.6.10 // indirect
|
|
github.com/vishvananda/netlink v1.3.1 // indirect
|
|
github.com/vishvananda/netns v0.0.5 // indirect
|
|
github.com/wlynxg/anet v0.0.5 // indirect
|
|
github.com/xtls/reality v0.0.0-20261014101318-83f621788ca8 // indirect
|
|
github.com/yuin/gopher-lua v1.1.2 // indirect
|
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
|
go.mongodb.org/mongo-driver/v2 v2.9.2 // indirect
|
|
go4.org/netipx v0.0.0-20260823151212-3075585bcbeb // indirect
|
|
golang.org/x/arch v0.32.0 // indirect
|
|
golang.org/x/crypto/x509roots/fallback v0.0.0-20261020153306-9f2b28d4331a // indirect
|
|
golang.org/x/exp v0.0.0-20261014143641-f0251eb4aa3e // indirect
|
|
golang.org/x/time v0.16.0 // indirect
|
|
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
|
|
golang.zx2c4.com/wireguard v0.0.0-20261006164505-2631ce99a06f // indirect
|
|
golang.zx2c4.com/wireguard/windows v1.1.1 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20261019180522-ce908d29299b // indirect
|
|
layeh.com/gopher-luar v1.0.11 // indirect
|
|
lukechampine.com/blake3 v1.4.1 // indirect
|
|
)
|