Go Awesome
Golang Awesome
常用库
- mux
- chi笔记chigo-chi/chi · 提供方法更适合用于 REST 接口 · 核心 < 1000 LOC · 0 外部依赖 - 自己实现 pattern 匹配逻辑 · 基于 Patricia Radix trie - 性能优于遍历 · 额外的 HTTP 方法需要先提前注册,否则不会路由打开:/notes/languages/go/lib/chi - ⭐️
- gin, mux
- ORM
- gorm笔记GORMGolang 的 ORM 实现 · 基于 Entity 模型 · go-gorm/gorm · 执行过程 · 构建 Statement 对象 · 查询 - 执行 query 回调 · 几乎所有实际操作都是通过 callback 串联起来的 · callbacks 管理 processor 组打开:/notes/languages/go/lib/gorm - ⭐️
- 基于反射
- 目前 Go 里实现最为优美的 ORM
- XORM 被 gogs 和 gitea 使用,是 gogs 原作者开发 - 但认为比不上 gorm
- ent笔记entgoent/ent 是什么? · 项目源自 facebook, 加入 LF · 支持 RESTful 接口 · 基于代码生成的 ORM · 支持 MySQL, MariaDB, PostgreSQL, SQLite, Gremlin · 创建和更新使用 setter/getter打开:/notes/languages/go/lib/ent - ⭐️
- 基于代码生成
- Meta 信息完善,更适合复杂业务逻辑
- gorm笔记GORMGolang 的 ORM 实现 · 基于 Entity 模型 · go-gorm/gorm · 执行过程 · 构建 Statement 对象 · 查询 - 执行 query 回调 · 几乎所有实际操作都是通过 callback 串联起来的 · callbacks 管理 processor 组打开:/notes/languages/go/lib/gorm - ⭐️
- 命令行/Command
- urfave/cliGitHuburfave/cli - ⭐️
- 简单易用
- spf13/cobraGitHubspf13/cobra - ⭐️
- 目前使用最多
- 更适合命令行非常复杂的情况,默认 split 处理逻辑
- flag 由 pflag 处理,配置由 viper 处理
- 比 urfave/cli 更 unopinioned
- urfave/cli 更加 declarative
- muesli/coralGitHubmuesli/coral
- cobra fork with only 4 dependencies
- go-cmd/cmdGitHubgo-cmd/cmd
- MIT, Golang
- urfave/cliGitHuburfave/cli - ⭐️
- IoC/DI
- fx笔记fxuber-go/fx · 基于反射的动态 IoC 容器 · 内部为 uber-go/dig - DI · fx.Supply 不能直接提供 interface · Go 类型检测不到, 使用 constructor 返回 · fx.In 和 fx.Out 要求字段 exported打开:/notes/languages/go/lib/fx
- dig
- wire笔记wire项目进入维护状态 · google/wire · Compile-time DI · 编译时生成 DI 逻辑 · 逻辑清晰明确 · 不是 IoC 容器 · 透明 - IoC 容器是一个不透明的盒子 · 替代 · uber fx, dig打开:/notes/languages/go/lib/wire
- JWX
- golang-jwt/jwtGitHubgolang-jwt/jwt
- lestrrat-go/jwxGitHublestrrat-go/jwx
- jwt,jwk,jwa,jws,jwe
- OIDC
- caos/oidc笔记OIDCcaos/oidc · endpoints · /healthz · /ready · /.well-known/openid-configuration · /authorize - AuthorizationEndpoint · /authorize/callback?id - AuthorizationEndpoint打开:/notes/languages/go/lib/oidc
- op,rs
- golang.org/x/oauth2Go Packagegolang.org/x/oauth2Go
- caos/oidc笔记OIDCcaos/oidc · endpoints · /healthz · /ready · /.well-known/openid-configuration · /authorize - AuthorizationEndpoint · /authorize/callback?id - AuthorizationEndpoint打开:/notes/languages/go/lib/oidc
- 配置
- viper - 重量级
- 会 lowercase YAML key
- break space
- caarlos0/envGitHubcaarlos0/env
- knadh/koanfGitHubknadh/koanf
- 轻量 - 功能按需引入 - binary 小
- viper - 重量级
- 日志
- zerolog
- zap
- logrus
- HTTP Client
- Observerable
- Prometheus Metrics
- Jaeger
- Testing
- 参考
学习
- go-proverbs.github.io
- golang.org/doc/effective_go
- golang/go/wiki/CodeReviewCommentsGitHubgolang/go/wiki/CodeReviewComments
- golang/go/wiki/ModulesGitHubgolang/go/wiki/Modules
- golang/go/wikiGitHubgolang/go/wiki
- golang.org/ref/spec
- project layout
- Simple Pojrect Layout
- golang-standards/project-layoutGitHubgolang-standards/project-layout
- rsc: this is not a standard Go project layout - #117GitHub Issuegolang-standards/project-layout#117
- Network Programming with Go
- HNHacker NewsHacker News #28824996Hacker News
- Gotchas in the Go Network Packages Defaults
- Playground
日志
- rs/zerologGitHubrs/zerolog - ⭐️
- Zero Allocation JSON Logger
- 接口更友好
- ⚠️ 重复名字字段不会覆盖
- uber-go/zapGitHububer-go/zap - ⭐️
- 适用于生产、核心链路
- 需要更多的配置
- Suger 模式接口友好 - 些微影响性能
- sirupsen/logrusGitHubsirupsen/logrus
- 目前处于 维护模式 🚧 - 完成使命
- 适用于简单快速使用
- 默认即可使用
- benchmark
数据库驱动
- polarsignals/frostdbGitHubpolarsignals/frostdb
- Apache-2.0, Go
- embeddable columnar database
- 类似于 duckdb
- mattn/go-sqlite3GitHubmattn/go-sqlite3mattn/go-sqlite3 · 依赖 CGO · modernc.org/sqlite · pure go SQLite · Docs https://pkg.go.dev/modernc.org/sqlite · github.com/glebarez/go-sqlite笔记:SQLite
- 依赖 CGO
- DSN - www.sqlite.org/uri.html
file:test.db?cache=shared&mode=memory- mode ro, rw, rwc, memory
- rwc - Read, Write, Create
- cache shared, private - www.sqlite.org/sharedcache.html
_foreign_keys/_fk-PRAGMA foreign_keys- 外键约束
- cznic/sqliteLinkgitlab.com/cznic/sqlitemattn/go-sqlite3 · 依赖 CGO · modernc.org/sqlite · pure go SQLite · Docs https://pkg.go.dev/modernc.org/sqlite · github.com/glebarez/go-sqlite笔记:SQLite
- pure go SQLite
- github.com/jackc/pgx/v5GitHubjackc/pgx
- 推荐 - 纯 Go
- jackc/pgtypeGitHubjackc/pgtype
- 接口没有 pq 提供的类型方便操作
- vs pq
- go-redis/redisGitHubgo-redis/redis
- go-redis/redis#607GitHub Issuego-redis/redis#607
- 不支持 Prefix
- go-redis/redis#607GitHub Issuego-redis/redis#607
- lib/pqGitHublib/pq
- 已不推荐使用
数据库相关
- ent笔记entgoent/ent 是什么? · 项目源自 facebook, 加入 LF · 支持 RESTful 接口 · 基于代码生成的 ORM · 支持 MySQL, MariaDB, PostgreSQL, SQLite, Gremlin · 创建和更新使用 setter/getter打开:/notes/languages/go/lib/ent
- ariga/sqlcommentGitHubariga/sqlcomment
- 添加注释 - 用于 trace
- ariga/sqlcommentGitHubariga/sqlcomment
- gorm笔记GORMGolang 的 ORM 实现 · 基于 Entity 模型 · go-gorm/gorm · 执行过程 · 构建 Statement 对象 · 查询 - 执行 query 回调 · 几乎所有实际操作都是通过 callback 串联起来的 · callbacks 管理 processor 组打开:/notes/languages/go/lib/gorm
- guregu/nullGitHubguregu/null
- 包装 sql.Null 支持 序列化
- qustavo/sqlhooksGitHubqustavo/sqlhooks
- 添加 hook
- kyleconroy/sqlcGitHubkyleconroy/sqlckyleconroy/sqlc 是什么? · SQL 文件生成 Go 代码进行 DB 操作 · 适用于复杂 SQL 场景 · Playground · 参考 · How We Went All In on sqlc/pgx for Postgres + Go笔记:sqlc
- sql 生成 go 代码进行调用
- sosedoff/pgwebGitHubsosedoff/pgwebsosedoff/pgweb · PostgreSQL Web 管理 · Golang, MIT · 0 依赖 · 导出 CSV/JSON/XML · 不支持表结构修改 · 不支持数据编辑 · 不支持多 Tab笔记:pgweb
- Golang Web 管理工具 - MIT, 只读
- go-pg/pgGitHubgo-pg/pg
- ORM focus on PostgreSQL features and performance
- volatiletech/sqlboilerGitHubvolatiletech/sqlboiler
- database-first ORM
- xo/xoGitHubxo/xo
- DB 生成 Go
- jmoiron/sqlxGitHubjmoiron/sqlx
- 辅助 sql 操作
- xo/dburlGitHubxo/dburl
- Connect String
- SQL Builder
- 迁移
- atlas
- DSL based
- golang-migrate/migrateGitHubgolang-migrate/migrategolang-migrate/migrate · DB 迁移工具 · 可当做库来使用 · 支持较多的 Source 和 数据库 · 不支持 ENV 和 配置文件 配置 DB - 只能 flag笔记:migrate
- rubenv/sql-migrateGitHubrubenv/sql-migrate
- atlas
Web
- Go 本身的 HTTP 处理已经比较完备,选择框架和库尽量以增强为主,避免选择全新实现
- 兼容 Go HTTP 处理逻辑的库能够相互组合使用
路由/Router
- chi笔记chigo-chi/chi · 提供方法更适合用于 REST 接口 · 核心 < 1000 LOC · 0 外部依赖 - 自己实现 pattern 匹配逻辑 · 基于 Patricia Radix trie - 性能优于遍历 · 额外的 HTTP 方法需要先提前注册,否则不会路由打开:/notes/languages/go/lib/chi
- 标准接口
- 开发比 mux 活跃
- radix trie - 类似 httprouter - 性能优于 mux
- 自带较多 middleware
- gorilla/muxGitHubgorilla/mux
- 不推荐使用
- 非常便于使用路由,增强 go http 功能
- 变量匹配路由 -
O(n)
- julienschmidt/httprouterGitHubjulienschmidt/httprouter
- 牺牲功能换取性能
- 不适用于 RESTful 接口 - 不能区分路由
/users/like,/users/:userId
- 参考
框架/Framework
- kataras/irisGitHubkataras/iris
- BSD-3
- gin-gonic/ginGitHubgin-gonic/gingin-gonic/gin · GINMODE=release · debug,test笔记:gin
- 默认处理逻辑将请求和响应封装为了 Context
- 能 Wrap http 的 Handler
- 基于 httprouter 路由 - 不能区分路由
/users/like,/users/:userId- 不适用于 RESTful 接口
- gin#2016GitHub Issuegin-gonic/gin#2016
- gofiber/fiberGitHubgofiber/fiber
- 非 net/http 体系
- 基于 fasthttp
- cloudwego/hertzGitHubcloudwego/hertz
- 微服务
- 网络层基于 Netpoll
- 文档 www.cloudwego.io/zh/docs/hertz
- by 字节跳动
- emicklei/go-restfulGitHubemicklei/go-restful
- 辅助构建 RESTful 类型接口
- 抽象 Resource 概念
- 抽象 Entity 编码处理
- 支持 JSON 和 XML
- 支持定义 OpenAPI
- ogen-go/ogenGitHubogen-go/ogen
- 生成 OpenAPIv3
- beego
- 用于快速开发的完整框架 - All in one
- 不推崇,尽量避免使用
- 除非所有理念刚好匹配
- echo
- revel
- danielgtaylor/humaGitHubdanielgtaylor/huma
- Huma REST/GraphQL API Framework for Golang with OpenAPI 3
- swaggo/swag
- swaggo/http-swaggerGitHubswaggo/http-swagger
- goadesign/goaGitHubgoadesign/goa
增强处理
- go-chi/renderGitHubgo-chi/render
- 辅助处理请求响应内容
- unrolled/renderGitHubunrolled/render
- yuriizinets/kyotoGitHubyuriizinets/kyoto
- SSR :)
Websocket
- gorilla/websocketGitHubgorilla/websocket
- 实现 ws 的首选库
- 功能比
golang.org/x/net/websocket丰富完善
- olahol/melodyGitHubolahol/melody
- 基于 gorilla/websocket 封装的简单消息处理库
- 不再维护,如需修改可以拷贝出来使用
- gobwas/wsGitHubgobwas/ws Tiny WebSocket library for Go
Misc
- go-vgo/robotgoGitHubgo-vgo/robotgo
- RobotGo, Go Native cross-platform GUI automation
- valyala/fasthttpGitHubvalyala/fasthttp
- 重写的 net/http 处理
- 注重性能
- Zero memory allocations in hot paths. Up to 10x faster than net/http
- golobby/containerGitHubgolobby/container
- IoC Container
- zhenghaoz/gorseGitHubzhenghaoz/gorse recommender system service
- davidschlachter/embedded-struct-visualizerGitHubdavidschlachter/embedded-struct-visualizer
- struct 关系可视化
- orijtech/structslopGitHuborijtech/structslop
- struct 字段顺序调整优化
- tmc/reactssrGitHubtmc/reactssr
- React SSR
- razorpay/go-financialGitHubrazorpay/go-financial
- numpy-financial
- Go Financial — A pkg for elementary financial functions
- loov/godaGitHubloov/goda
- Go Dependency Analysis toolkit
GraphQL
- 99designs/gqlgenGitHub99designs/gqlgen99designs/gqlgen 是什么? · 基于生成的 GraphQL 引擎 · Schema first - 需要 DSL 定义 GraphQL Schema · 类型安全 · 支持 Plugin - 修改配置, 生成代码 · 缺点 · 库代码质量一般笔记:gqlgen
- GraphQL Schema 生成 Model/Resolver
- 静态类型,无法动态 Schema
- 参照 graphql-js 实现
- graph-gophers/graphql-goGitHubgraph-gophers/graphql-go
- BSD-2
- 类型自动绑定 Schema - 静态 Schema
- graphql-go/graphqlGitHubgraphql-go/graphqlgraphql-go/graphql 是什么? · Golang GraphQL 解析、执行库 · Code First - 先 Go 代码,然后生成 GraphQL · 通过 struct 构建内容生成 graphql schema · 通过 struct 构建 resolver 和类型字段处理笔记:graphql
- 代码动态生成 Schema - 动态 Schema
- Yamashou/gqlgencGitHubYamashou/gqlgenc
- gqlgen 客户端
- Khan/genqlientGitHubKhan/genqlient
- type-safe Go GraphQL client
网关
- ysugimoto/grpc-graphql-gatewayGitHubysugimoto/grpc-graphql-gateway
- 基于 pb 生成 graphql 网关
- 实现使用 graphql-go/graphqlGitHubgraphql-go/graphqlgraphql-go/graphql 是什么? · Golang GraphQL 解析、执行库 · Code First - 先 Go 代码,然后生成 GraphQL · 通过 struct 构建内容生成 graphql schema · 通过 struct 构建 resolver 和类型字段处理笔记:graphql
- movio/brambleGitHubmovio/bramblemovio/bramble · MIT, Golang · GraphQL Gateway · 包含简单的 AdminUI · 暂不支持 subscription笔记:bramble
- MIT, Golang
- 比 apollo 简单但功能更弱
- 基于 service 合成 - 支持部分简单 directive
- 不支持 subscriptions
- Introducing Bramble: A Federated GraphQL Gateway Implemented In Go
- nautilus/gatewayGitHubnautilus/gateway
- MIT, Golang
- Introspect schema,自动合并 - 不需要 directive
- 不支持 subscriptions
- A Guide to GraphQL Schema Federation, Part 1
代码生成/Generator
- cmd/stringer/stringer.goGitHub Filegolang/tools/cmd/stringer/stringer.go
- 为 int 枚举生成 String 方法
//go:generate stringer -type=Pill-type-output-trimprefix-tags-linecomment- String 返回 Comment 内容
- google/addlicenseGitHubgoogle/addlicense
- 添加 License
//go:generate go run github.com/google/addlicense -c Wener -y 2019-present ./
- fatih/gomodifytagsGitHubfatih/gomodifytags
- 添加 json tag
gomodifytags -file demo.go -struct Server -add-tags json -add-options json=omitempty -transform camelcase --skip-unexported- transform
- snakecase - base_domain
- camelcase - baseDomain
- lispcase - base-domain
- pascalcase - BaseDomain
- titlecase - Base Domain
- keep
- hexdigest/gowrapGitHubhexdigest/gowrap
- 生成 interface 实现,辅助实现修饰模式
- awalterschulze/goderiveGitHubawalterschulze/goderive
- 为 Struct 生成 Equal、Compare、DeepCopy、GoString、Hash
- 为类型生成 Set 操作
- 生成函数式编程方法
- 生成并发操作
- miku/zekGitHubmiku/zek
- XML -> Go Struct
- 在线生成
- mholt/json-to-goGitHubmholt/json-to-go
- JSON -> Go Struct
- 在线生成
- gzuidhof/tygoGitHubgzuidhof/tygo
- Go -> Typescript
- 功能性
- ent/entGitHubent/entent/ent 是什么? · 项目源自 facebook, 加入 LF · 支持 RESTful 接口 · 基于代码生成的 ORM · 支持 MySQL, MariaDB, PostgreSQL, SQLite, Gremlin · 创建和更新使用 setter/getter笔记:entgo - Schema -> CRUD, MySQL, PostgreSQL, SQLite
- uber-go/gopatchGitHububer-go/gopatch
- 根据规则转换代码
- ogen-go/ogenGitHubogen-go/ogen
- OpenAPI, Golang
JSON
- sclevine/yjGitHubsclevine/yj
- Convert between YAML, TOML, JSON, HCL
- json-iterator/goGitHubjson-iterator/gohttps://go-proverbs.github.io/ · mux · chi - ⭐️ · gin, mux · ORM · gorm - ⭐️ · 基于反射 · 目前 Go 里实现最为优美的 ORM · XORM 被 gogs 和 gitea 使用,是 gogs 原作者开发 - 但认为比不上 gorm笔记:Go Awesome
- 替代
encoding/json - 更好性能,更多功能
- 自定义类型解码
- 宽松名字处理
- 替代
- go-faster/jxGitHubgo-faster/jx
- 高性能 JSON encode,decode
- 不兼容 encoding/json - 因此才能提供性能优势
- 不支持反射
- 适用于代码生成场景
- tidwall/gjsonGitHubtidwall/gjson
- Get Json Path
- tidwall/sjsonGitHubtidwall/sjson
- Set Json Path
- qri-io/jsonschemaGitHubqri-io/jsonschema
- xeipuuv/gojsonschemaGitHubxeipuuv/gojsonschema
- ugorji/goGitHubugorji/gohttps://go-proverbs.github.io/ · mux · chi - ⭐️ · gin, mux · ORM · gorm - ⭐️ · 基于反射 · 目前 Go 里实现最为优美的 ORM · XORM 被 gogs 和 gitea 使用,是 gogs 原作者开发 - 但认为比不上 gorm笔记:Go Awesome diomatic codec and rpc lib for msgpack, cbor, json, etc.
数据处理/Data
- go-playground/validatorGitHubgo-playground/validator
- struct 标签注解校验 - 类似于 Java 的 Bean Validate
- 功能完善
- go-validator/validatorGitHubgo-validator/validator
- 实现简单 - 基础类型基础功能
- go-ozzo/ozzo-validationGitHubgo-ozzo/ozzo-validation
- 校验库
- mapstructure
- bytedance/go-tagexprGitHubbytedance/go-tagexpr
- 使用表达式 validate
- BWbwchen/MapReduceGitHubBWbwchen/MapReduce
AI/ML
- sjwhitworth/golearnGitHubsjwhitworth/golearn - Machine Learning for Go
- gorgonia/gorgoniaGitHubgorgonia/gorgonia - Go machine learning library
- galeone/tfgoGitHubgaleone/tfgo - TensorFlow bindings for Go
网络/Network
- cloudwego/netpollGitHubcloudwego/netpoll
- non-blocking I/O networking framework, focused on RPC
- inetafGitHub Orginetaf
- tidwall/evioGitHubtidwall/evio
- event-loop networking for Go
- panjf2000/gnetGitHubpanjf2000/gnet
- 高性能、轻量级、非阻塞的事件驱动 Go 网络框架。
- magma/magmaGitHubmagma/magma
- Platform for building access networks and modular network services
- koding/websocketproxyGitHubkoding/websocketproxy WebSocket reverse proxy
- soheilhy/cmuxGitHubsoheilhy/cmux
Connection multiplexer - serve different services on the same port
- grpc,ssh,http,https 同端口
- songgao/waterGitHubsonggao/water TUN/TAP library written in native Go
- name5566/leafGitHubname5566/leaf game server framework in Go
- xtaci/gonetGitHubxtaci/gonet Game Server Skeleton in golang.
- nadoo/gliderGitHubnadoo/glidernadoo/glider · GPLv3, Go · 类似 gost,但支持更多协议 · 只有 Listener 和 Forwarder · mix - http+socks5 · http · socks5 · ss · trojan · trojanc - cleartext笔记:glider
- forward proxy with multiple protocols support
- cilium/ebpfGitHubcilium/ebpf
- kevwan/tproxyGitHubkevwan/tproxy
- gvisor.dev/docs/user_guide/networking
- gvisor networking stack
- topfreegames/pitayaGitHubtopfreegames/pitaya
- MIT, Game server
协议/Protocol
- hacdias/webdavGitHubhacdias/webdavhttp://www.webdav.org/specs/rfc4918.html · 子协议 · CalDAV - 日历 · CardDAV - 联系人 · WebDAV 没有标准位置,常见位置 · /webdav · /dav · CalDAV /.well-known/caldav笔记:WebDAV
- Simple Go WebDAV server
事件驱动/Event
- temporal笔记temporaltemporalio/temporal · MIT, Go · cadence fork, 包含原始团队人员 · Persistence - Cassandra, PostgreSQL, MySQL · Workflow search - Elasticsearch v6.8+ - 高级搜索打开:/notes/service/workflow/temporal
- uber/cadence笔记Cadenceuber/cadence 是什么? · MIT, Golang · 分布式,大规模,持久化,高可用的异构调度引擎 · 用于异步长时间运行的业务逻辑 · Fault Tolerant Actor Framework · fault-oblivious stateful workflow打开:/notes/service/workflow/cadence
- distributed, scalable, durable, and highly available orchestration engine
- execute asynchronous long-running business logic
- tibcosoftware/flogoGitHubtibcosoftware/flogo
- 包含 Web UI
- 用于实现事件驱动编程
- 场景
- 集成 Flow 处理
- 流处理
- 上下文决策
- Microgateway
- ThreeDotsLabs/watermillGitHubThreeDotsLabs/watermill
- trustmaster/goflowGitHubtrustmaster/goflow
- flowbase/flowbaseGitHubflowbase/flowbase
服务框架/Service Framework
- dapr/daprGitHubdapr/daprDapr 提供云服务抽象,让实现底层解耦可替换。 · 虽然 Dapr 看似提取了很多常用的服务功能,但都是对标云平台服务的。 · 因为 Dapr 是 微软 和 阿里 联合开发的,也就是为了把 Azure 和 Aliyun 的功能集成进来。 · 不适用场景笔记:Dapr
portable, event-driven, runtime for building distributed applications
- Sidecar 模式
- 微软 项目
- AsynkronIT/protoactor-goGitHubAsynkronIT/protoactor-go
- Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
- wasmCloud/wasmCloudGitHubwasmCloud/wasmCloud
- wasm actor 平台 - 支持 tinygo
- RichardKnop/machineryGitHubRichardKnop/machineryRichardKnop/machinery 是什么? · 异步任务队列 · Lock - Redis · Broker - AMQP, Redis · ResultBackend - Redis, Memcache, AMQP, MongoDB笔记:machinery asynchronous task queue/job queue based on distributed message passing
- hibiken/asynqGitHubhibiken/asynq
- MIT, Golang
- Redis
- Simple, reliable, and efficient distributed task queue in Go
- twitchtv/twirpGitHubtwitchtv/twirptwitchtv/twirp · unary RPC · 支持 JSON 协议 · 使用 GRPC 定义,走 HTTP 协议 · 开发不活跃 · 官方支持语言: PHP, Ruby, Go · 参考 · SpecV7 · 不支持 streaming #3笔记:twirp
simple RPC framework with protobuf service definitions
- protobuf+net/http
- gogf/gfGitHubgogf/gf
微服务框架/Microservices Framework
大多微服务框架着重于 RPC、服务发现、配置,并提供基础的中间件 监控、Trace。
- stefanprodan/podinfoGitHubstefanprodan/podinfo
- go-kit/kitGitHubgo-kit/kitgo-kit/kit · 开发不活跃、设计可作参考 · 微服务开发套件/库 · Unopinioned · 三层 · Transport · Endpoint · Service · | Layer | Impl | · | Transport | httpbr/natsbr/jsonrpcbr/grpcbr/thriftbr/amqpbr/httprp |笔记:go-kit
standard library for microservices
- 简单灵活自由拼装 - 因此定位是 kit 和 库
- 很多抽象接口值得学习
- go-micro笔记go-microasim/go-micro · 基本接口定义+Plugins 提供平台相关实现 · Transport http :52980 · Broker http :52981 · GRPC server :53915 · 参考 · m3o/m3o打开:/notes/languages/go/lib/go-micro - asim/go-microGitHubasim/go-microasim/go-micro · 基本接口定义+Plugins 提供平台相关实现 · Transport http :52980 · Broker http :52981 · GRPC server :53915 · 参考 · m3o/m3o笔记:go-micro standalone framework for distributed systems development
- google/go-cloudGitHubgoogle/go-cloudgoogle/go-cloud · Go Cloud Development Kit · blob - 对象存储 · Google Cloud Storage · S3 · Azure Blob Storage · Local Storage笔记:go-cloud
- Go Cloud Development Kit
- nytimes/gizmoGitHubnytimes/gizmo
- ergo-services/ergoGitHubergo-services/ergo
- design patterns of Erlang/OTP
国产
- kratos笔记kratosgo-kratos/kratos · MIT, Go · by Bilibili, fork Gin · 微服务框架 · Code Gen, Web, RPC, Service Governance, Integrations · ⚠️ 目前开发不太活跃打开:/notes/languages/go/lib/kratos - go-kratos/kratosGitHubgo-kratos/kratosgo-kratos/kratos · MIT, Go · by Bilibili, fork Gin · 微服务框架 · Code Gen, Web, RPC, Service Governance, Integrations · ⚠️ 目前开发不太活跃笔记:kratos
- grpc,wire
- kratos 命令行工具
- 哔哩哔哩 RPC 框架
- go-zero笔记go-zerozeromicro/go-zero · 好未来科技 开源 RPC 框架 · 自定义的 DSL · 基于自定义的 goctl 进行生成 · 自定义 DSL 意味着 交互差、生态差、ROI 低 · 几乎是单人在开发打开:/notes/languages/go/lib/go-zero - zeromicro/go-zeroGitHubzeromicro/go-zerozeromicro/go-zero · 好未来科技 开源 RPC 框架 · 自定义的 DSL · 基于自定义的 goctl 进行生成 · 自定义 DSL 意味着 交互差、生态差、ROI 低 · 几乎是单人在开发笔记:go-zero
- 好未来技术
- 自定义 DSL + goctl 生成
- cloudwego/kitexGitHubcloudwego/kitex
- Apache-2.0, Go
- 字节跳动 RPC 框架
- rpcx笔记rpcxsmallnest/rpcx · 国产 RPC 框架 · smallnest/rpcx-java · Java 实现,不活跃 · 适用方便 · 设计上没有 go-micro 灵活 · 耦合了很多内容 · 通过 server.AuthFunc 设置认证处理而不是 middleware打开:/notes/languages/go/lib/rpcx - smallnest/rpcxGitHubsmallnest/rpcxsmallnest/rpcx · 国产 RPC 框架 · smallnest/rpcx-java · Java 实现,不活跃 · 适用方便 · 设计上没有 go-micro 灵活 · 耦合了很多内容 · 通过 server.AuthFunc 设置认证处理而不是 middleware笔记:rpcx
- go-chassis/go-chassisGitHubgo-chassis/go-chassis
- unionj-cloud/go-doudouGitHubunionj-cloud/go-doudou
国内环境
- wenerme/go-wecomGitHubwenerme/go-wecom参考 · 所有 JS 接口列表 · wenerme/go-wecom · MIT,Golang · 客户端,会话存档 · @wener/client · MIT, NodeJS · 客户端,会话存档,服务回调 · xen0n/go-workwx笔记:企业微信开发
- go-pay/gopayGitHubgo-pay/gopay
- shenghui0779/gochatGitHubshenghui0779/gochat
Markdown
- yuin/goldmarkGitHubyuin/goldmark
- 易于扩展 - 内建较多扩展
- 实现扩展需要阅读源码添加
- gomarkdown/markdownGitHubgomarkdown/markdown
- 自带部分扩展功能
- russross/blackfridayGitHubrussross/blackfriday
- 不兼容 CommonMark
- 无法扩展
- microcosm-cc/bluemondayGitHubmicrocosm-cc/bluemonday
- html sanitizer
认证授权/Auth
- dexidp/dexGitHubdexidp/dexdexidp/dex · OIDC, OAuth2 Provider - IdP · 支持插件式的 Connector · 存储 · sqlite3, mysql, postgres · etcd · kubernetes - CRD · 相当于无状态部署笔记:Dex - OIDC, IdP
- oryGitHub OrgoryOry Ecosystem · Hydra: OAuth2 & OIDC Server · Oathkeeper: Identity & Access Proxy · Keto: Access Control Policies as a Server (based on Google's Zanzibar)笔记:Ory
- hydra - OIDC, IdP
- kratos - 用户注册管理
- oathkeeper - 访问代理 - 注入授权信息
- keto - 访问控制服务
- fosite - Golang OAuth2 框架
- Permify/permify-gormGitHubPermify/permify-gorm
Plugin
- 扩展/插件/Extension/Plugin - 动态库
- pluginGo PackagepluginGo - Linux, FreeBSD, macOS
-buildmode=plugin- 只支持 Linux, FreeBSD, macOS - dlopen
- 需要 cgo - #19569GitHub Issuegolang/go#19569
- Lookup symbol 强转类型进行使用 - 类似 dlopen - 底层使用 dlopen
- main 下 exported 的符号都可以使用
- 加载时所有包的 init 都会触发
- plugin 不支持 close - go 涉及到 gc 和全局状态
- 交互不需要序列化 - 相同内存空间
- hashicorp/go-pluginGitHubhashicorp/go-plugin
- 基于 RPC 的插件系统
- 交互信息需要序列化
- 用于专门的场景 - 例如不能用于 Hook HTTP 请求
- 多进程
- 隔离 cgo
- 避免 crash
- 支持热升级
- 多语言
- 基于 RPC 的插件系统
语言/Language
- rogchap/v8goGitHubrogchap/v8go
- 内含预编译的静态 libv8
- alpine 需要额外构建 v8go#170GitHub Issuerogchap/v8go#170
- augustoroman/v8GitHubaugustoroman/v8
- V8 Binding
- 🚧 不再维护
- mvdan/shGitHubmvdan/shshell · bash - Bourne shell · ash - Almquist shell - 1989 NetBSD · Dash - bin 还是叫 ash - Debian Almquist shell - 1997 Debian Linux笔记:Shell Awesome
Shell parser, formatter, interpreter
- source APKBUILD gitlab.alpinelinux.org/kdaudt/atools-go
- mvdan/gofumptGitHubmvdan/gofumpt stricter gofmt
- burrowers/garbleGitHubburrowers/garble
- BSD-3
- 混淆 Go 代码 - 替代现有 go 工具
- mjibson/sqlfmtGitHubmjibson/sqlfmt
- d5/tengoGitHubd5/tengo
- MIT
- 自定义的语言
- dop251/gojaGitHubdop251/goja
- Javascript
- +6MB
- Shopify/go-luaGitHubShopify/go-lua
- MIT
- Lua 5.2 VM
- 兼容 luac 编译结果
- yuin/gopher-luaGitHubyuin/gopher-lua
- MIT
- Lua 5.1
- google/starlark-goGitHubgoogle/starlark-go
- Python
- used by Caddy, Bazel
- traefik/yaegiGitHubtraefik/yaegi
- by Traefik
- Apache-2.0
- +14MB
- 自定义类型需要源码 - 配置 GOPATH - 对依赖的模块进行 vendor
- 支持解释模式和编译模式
- Yaegi is Another Elegant Go Interpreter
- google/cel-goGitHubgoogle/cel-goCEL - Common Expression Language · Apache 2.0, 多语言 · Google 开发的表达式语言,用于配置和策略评估 · 支持类型安全、沙盒执行、高性能 · 广泛用于 Kubernetes、Envoy、Istio 等项目笔记:CEL
- Apache-2.0, Go
- Fast, portable, non-Turing complete expression evaluation with gradual typing
Template
- Masterminds/sprigGitHubMasterminds/sprig - 提供大量模板函数
有趣
- Zxilly/go-size-analyzerGitHubZxilly/go-size-analyzer
- fogleman/primitiveGitHubfogleman/primitive
- 将图像转换为原子图形
- esimov/triangleGitHubesimov/triangle
- 转换为三角形
- alecthomas/chromaGitHubalecthomas/chroma
- 代码高亮
- mugo
- rhu1/fggGitHubrhu1/fgg
- basic prototype of Featherweight Go and Featherweight Generic Go
- joewalnes/websocketdGitHubjoewalnes/websocketd
- Turn any program that uses STDIN/STDOUT into a WebSocket server
- jeromer/mumbojumboGitHubjeromer/mumbojumbo 字符串混淆
- esimov/caireGitHubesimov/caire 内容感知的图像缩放
- Go in a scratch VM
- 游戏
- 算法
- smarty-archives/mafsaGitHubsmarty-archives/mafsa
- Minimal Acyclic Finite State Automata
- blevesearch/vellumGitHubblevesearch/vellum
- FST
- smarty-archives/mafsaGitHubsmarty-archives/mafsa
控制理论 / Control theory
- Reactive planning and reconciliation in Go
- spotahome/gontrollerGitHubspotahome/gontroller
- gianarb/plannerGitHubgianarb/planner
- konimarti/ltiGitHubkonimarti/lti
Library
- cron
- adhocore/gronxGitHubadhocore/gronx cron parser
- vfs
- cache
- goroutine
- oklog/runGitHuboklog/run
- golang.org/x/sync/errgroupGo Packagegolang.org/x/sync/errgroupGo
- error
- compress/archive
- magic/mime
- charset
- golang.org/x/text/encoding/charmap
- golang.org/x/text/encoding/simplifiedchinese
- golang.org/x/net/html/charset
- saintfish/chardetGitHubsaintfish/chardet
- djimenez/iconv-goGitHubdjimenez/iconv-go
- iconv cgo binding
- nlp
- liuzl/goccGitHubliuzl/gocc
- BYVoid/OpenCCGitHubBYVoid/OpenCC
- C++
- BYVoid/OpenCCGitHubBYVoid/OpenCC
- liuzl/goccGitHubliuzl/gocc
- lang
- dsl
- distributed/分布式
- hash
- media
- http
- support content negotiation #19307GitHub Issuegolang/go#19307
- 解析 Accept markusthoemmes/goautoneg/accept.goGitHub Filemarkusthoemmes/goautoneg/accept.go
- elnormous/contenttypeGitHubelnormous/contenttype
- support content negotiation #19307GitHub Issuegolang/go#19307
- saas/paas
- tsuru/tsuru笔记tsurutsuru/tsuru · BSD-3, Go · extensible Platform as a Service · 依赖: MongoDB, Kubernetes, Registry, kubernetes-router打开:/notes/languages/go/lib/tsuru
- BSD-3
- PaaS
- Goxiaoy/go-saasGitHubGoxiaoy/go-saas
- geeks-accelerator/oss/saas-starter-kit
- 2019
- tsuru/tsuru笔记tsurutsuru/tsuru · BSD-3, Go · extensible Platform as a Service · 依赖: MongoDB, Kubernetes, Registry, kubernetes-router打开:/notes/languages/go/lib/tsuru
- semver
- 数据结构/算法
- kv/storage
- goroutine/concurrency
- oklog/run
- sourcegraph/concGitHubsourcegraph/conc
- Better structured concurrency for go
- cloudflare/tableflipGitHubcloudflare/tableflip
- Graceful process restarts in Go
- SimonWaldherr/golang-benchmarksGitHubSimonWaldherr/golang-benchmarks
Tool
- air-verse/airGitHubair-verse/airair-verse/air · GPLv3, Go · Live Reload · https://github.com/air-verse/air/blob/master/airexample.toml · air.toml 不能 extends笔记:air
- GPLv3, Go
- Live Reload
- DarthSim/overmindGitHubDarthSim/overmind
- MIT, Go
- process manager for Procfile-based applications
- 支持 tmux
- Procfile
- arl/statsvizGitHubarl/statsviz
- visualization of your Go application runtime statistics (GC, MemStats, etc.) in the browser
- mgechev/reviveGitHubmgechev/revive
- golint
- jondot/goweightGitHubjondot/goweight
- 分析 go 模块大小
- google/bloatyGitHubgoogle/bloaty
- 二进大小分析
- xo/usqlGitHubxo/usqlxo/usql · MIT, Go · Universal command-line interface for SQL databases · -笔记:usql
- SQL 命令行工具
- google/gopsGitHubgoogle/gops
- Go 进程诊断
- google/koGitHubgoogle/kogoogle/ko · Go source to Kubernetes · KODOCKERREPO · KODOCKERREPO=ko.local, -L, --local - 本地,不 push · KOCONFIGPATH=.ko.yaml笔记:ko Build and deploy Go applications on Kubernetes
- go-task/taskGitHubgo-task/taskgo-task/task · taskfile.dev · 特性 · 任务定义基于 Yaml · 支持 shell - mvdan/sh · 模板 · 变量 · https://taskfile.dev/reference/templating/#special-variables笔记:Task
- charmbracelet/wishGitHubcharmbracelet/wish
- Make SSH apps
- elves/elvishGitHubelves/elvish
- ssh
- golang.org/x/crypto/sshGo Packagegolang.org/x/crypto/sshGo
- x/crypto/ssh: rsa-sha2-256/rsa-sha2-512 #49952GitHub Issuegolang/go#49952
- 服务端 /etc/ssh/sshd_config 添加
PubkeyAcceptedAlgorithms +ssh-rsa可临时解决 - AlpineLinux 3.15 新版本 openssh server 默认不允许 ssh-rsa
- openssh 8.8 废弃 ssh-rsa
- k0sproject/rigGitHubk0sproject/rig
- appleboy/easyssh-proxyGitHubappleboy/easyssh-proxy
- owenthereal/uptermGitHubowenthereal/uptermowenthereal/upterm · Apache-2.0, Golang · 认证 · --authorized-key PATHTOPUBLICKEY · --github-user username · --gitlab-user username笔记:upterm
- gliderlabs/sshGitHubgliderlabs/ssh
- SSH Server
- golang.org/x/crypto/sshGo Packagegolang.org/x/crypto/sshGo
- shell
- google/shlexGitHubgoogle/shlex
go install github.com/jondot/goweight@latest
cd cmd/server
goweightDebug
- profiling
- log
- metrics
- felixge/httpsnoopGitHubfelixge/httpsnoop
- github.com/slok/go-http-metricsGitHubslok/go-http-metrics -prometheus 内置 handler 拦截
- GODEBUG=http1debug
- GODEBUG=http2debug=2
Service
- umputun/remark42GitHubumputun/remark42 comment egnine
- ortuman/jackalGitHubortuman/jackal
- XMPP
- google/martianGitHubgoogle/martian
- building custom HTTP/S proxies
Performance
- bspaans/jit-compilerGitHubbspaans/jit-compiler
- Writing a JIT compiler in Golang
- Go Performance Tools Cheat Sheet
- CPU Utilization is Wrong
OS/操作系统
- rainycape/governatorGitHubrainycape/governator
- process manager for UNIX systems
- ochinchina/supervisordGitHubochinchina/supervisord
- immortal/immortalGitHubimmortal/immortal
- willscott/go-nfsGitHubwillscott/go-nfs
- kahing/goofysGitHubkahing/goofys
- progrium/macdriverGitHubprogrium/macdriver
- Native Mac APIs for Go
- gokrazy/gokrazyGitHubgokrazy/gokrazy
- Go+Linux Kernel+RPi firmware on Board
- lmorg/murexGitHublmorg/murex
- Bash-like
Lower Level
- mmcloughlin/avoGitHubmmcloughlin/avo
- Generate x86 Assembly with Go
- twitchyliquid64/golang-asmGitHubtwitchyliquid64/golang-asm
ML/机器学习
- sjwhitworth/golearnGitHubsjwhitworth/golearn is a 'batteries included' machine learning library for Go. Simplicity, paired with customisability, is the goal.
- cdipaolo/gomlGitHubcdipaolo/goml is a machine learning library written entirely in Golang which lets the average developer include machine learning into their applications.
- chewxy/gorgoniaGitHubchewxy/gorgonia is a library that helps facilitate machine learning in Go. Write and evaluate mathematical equations involving multidimensional arrays easily.
- nlpodyssey/spagoGitHubnlpodyssey/spago
SIP/WebRTC
- rtctunnel/rtctunnelGitHubrtctunnel/rtctunnel network tunnels over WebRTC
- ghettovoice/gosipGitHubghettovoice/gosip SIP in GO
- jaroszan/sipGitHubjaroszan/sip SIP simulator in Go
- xiaochengtech/sip Go 实现的 RFC3261-SIP 协议
- KalbiProject/KalbiGitHubKalbiProject/Kalbi Golang SIP framework
- sip client.goGitHub Fileframsc/sip-client-in-golang/sip client.go
- 简单处理 Register
Command Line
- charmbracelet/bubbleteaGitHubcharmbracelet/bubbletea TUI framework
Office
Internal
- emluque/golang-internals-resourcesGitHubemluque/golang-internals-resources
- teh-cmc/go-internalsGitHubteh-cmc/go-internals
- www.altoros.com/blog/golang-internals-part-1-main-concepts-and-project-structure
- golang/go/src/cmd/compileGitHub Filegolang/go/src/cmd/compile
Tools
- natesales/qGitHubnatesales/q
参考
TBD
Utils
- jinzhu/nowGitHubjinzhu/now Now is a time toolkit for golang
- benmanns/goworkerGitHubbenmanns/goworker Go-based background worker
- dustin/go-humanizeGitHubdustin/go-humanize
- 格式化数据大小, 时间和数字等
- dropbox/godropboxGitHubdropbox/godropbox Common libraries for writing Go services/applications.
- asciimoo/wuzzGitHubasciimoo/wuzz Interactive cli tool for HTTP inspection
- goreleaser/goreleaserGitHubgoreleaser/goreleasergoreleaser/goreleaser · 无 cgo 时交叉编译 · CGO 问题 goreleaser/goreleaser#708 · monorepo 为 收费 功能笔记:goreleaser Deliver Go binaries as fast and easily as possible
Console
- jroimartin/gocuiGitHubjroimartin/gocui Minimalist Go package aimed at creating Console User Interfaces.
- nsf/termbox-goGitHubnsf/termbox-go Pure Go termbox implementation
Data
Web
- Auth
- markbates/gothGitHubmarkbates/goth
- Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications.
- markbates/gothGitHubmarkbates/goth
- gitea.com/lunny/tango
Misc
- geziyor/geziyorGitHubgeziyor/geziyor
- alexflint/go-restructureGitHubalexflint/go-restructure
- pointlander/pegGitHubpointlander/peg Peg, Parsing Expression Grammar
- hanwen/go-fuseGitHubhanwen/go-fuse
Hardware
-
ycoroneos/G.E.R.TGitHubycoroneos/G.E.R.T
- Golang Embedded Run-Time
- HN #15591847Hacker NewsHacker News #15591847Hacker News
- HN #14590847Hacker NewsHacker News #14590847Hacker News
-
bugs.alpinelinux.org/issues/4276
- gcc-arm-none-eabi
-
Logging / Rate Limit / Stream
- veqryn/slog-contextGitHubveqryn/slog-context
- 为 Go slog 提供 context 集成,支持 logger/attributes/trace id 等上下文值。
- bcicen/jstreamGitHubbcicen/jstream
- Go 实现的 streaming JSON parser。
- ulule/limiterGitHubulule/limiter
- 简单的 Go 限流 middleware。
- sethvargo/go-limiterGitHubsethvargo/go-limiter
- 高性能 Go 限流库,提供 HTTP middleware。
- veqryn/slog-contextGitHubveqryn/slog-context
Scripts
- peterh/linerGitHubpeterh/liner line editor with history
- dop251/gojaGitHubdop251/goja ECMAScript/JavaScript engine
- elves/elvishGitHubelves/elvish
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
- Cadence笔记 · uber/cadence
uber/cadence 是什么? · MIT, Golang · 分布式,大规模,持久化,高可用的异构调度引擎 · 用于异步长时间运行的业务逻辑 · Fault Tolerant Actor Framework · fault-oblivious stateful workflow
- chi笔记 · chi
go-chi/chi · 提供方法更适合用于 REST 接口 · 核心 < 1000 LOC · 0 外部依赖 - 自己实现 pattern 匹配逻辑 · 基于 Patricia Radix trie - 性能优于遍历 · 额外的 HTTP 方法需要先提前注册,否则不会路由
- entgo笔记 · ent
ent/ent 是什么? · 项目源自 facebook, 加入 LF · 支持 RESTful 接口 · 基于代码生成的 ORM · 支持 MySQL, MariaDB, PostgreSQL, SQLite, Gremlin · 创建和更新使用 setter/getter
- fx笔记 · fx
uber-go/fx · 基于反射的动态 IoC 容器 · 内部为 uber-go/dig - DI · fx.Supply 不能直接提供 interface · Go 类型检测不到, 使用 constructor 返回 · fx.In 和 fx.Out 要求字段 exported
- go-micro笔记 · go-micro
asim/go-micro · 基本接口定义+Plugins 提供平台相关实现 · Transport http :52980 · Broker http :52981 · GRPC server :53915 · 参考 · m3o/m3o
- go-zero笔记 · go-zero
zeromicro/go-zero · 好未来科技 开源 RPC 框架 · 自定义的 DSL · 基于自定义的 goctl 进行生成 · 自定义 DSL 意味着 交互差、生态差、ROI 低 · 几乎是单人在开发
- GORM笔记 · gorm
Golang 的 ORM 实现 · 基于 Entity 模型 · go-gorm/gorm · 执行过程 · 构建 Statement 对象 · 查询 - 执行 query 回调 · 几乎所有实际操作都是通过 callback 串联起来的 · callbacks 管理 processor 组
- kratos笔记 · kratos
go-kratos/kratos · MIT, Go · by Bilibili, fork Gin · 微服务框架 · Code Gen, Web, RPC, Service Governance, Integrations · ⚠️ 目前开发不太活跃
- OIDC笔记 · caos/oidc
caos/oidc · endpoints · /healthz · /ready · /.well-known/openid-configuration · /authorize - AuthorizationEndpoint · /authorize/callback?id - AuthorizationEndpoint
- rpcx笔记 · rpcx
smallnest/rpcx · 国产 RPC 框架 · smallnest/rpcx-java · Java 实现,不活跃 · 适用方便 · 设计上没有 go-micro 灵活 · 耦合了很多内容 · 通过 server.AuthFunc 设置认证处理而不是 middleware
- temporal笔记 · temporal
temporalio/temporal · MIT, Go · cadence fork, 包含原始团队人员 · Persistence - Cassandra, PostgreSQL, MySQL · Workflow search - Elasticsearch v6.8+ - 高级搜索
- tsuru笔记 · tsuru/tsuru
tsuru/tsuru · BSD-3, Go · extensible Platform as a Service · 依赖: MongoDB, Kubernetes, Registry, kubernetes-router
- wire笔记 · wire
项目进入维护状态 · google/wire · Compile-time DI · 编译时生成 DI 逻辑 · 逻辑清晰明确 · 不是 IoC 容器 · 透明 - IoC 容器是一个不透明的盒子 · 替代 · uber fx, dig
References
GitHub292 条
- dop251/gojagithub.com/dop251/goja
- elves/elvishgithub.com/elves/elvish
- graphql-go/graphqlgithub.com/graphql-go/graphql
- ogen-go/ogengithub.com/ogen-go/ogen
- sjwhitworth/golearngithub.com/sjwhitworth/golearn
- uber-go/zapgithub.com/uber-go/zap
- 99designs/gqlgengithub.com/99designs/gqlgen
- adhocore/gronxgithub.com/adhocore/gronx
- air-verse/airgithub.com/air-verse/air
- alecthomas/chromagithub.com/alecthomas/chroma
- alexflint/go-restructuregithub.com/alexflint/go-restructure
- andybalholm/brotligithub.com/andybalholm/brotli
- antonmedv/exprgithub.com/antonmedv/expr
- appleboy/easyssh-proxygithub.com/appleboy/easyssh-proxy
- ariga/sqlcommentgithub.com/ariga/sqlcomment
- arl/statsvizgithub.com/arl/statsviz
- asciimoo/wuzzgithub.com/asciimoo/wuzz
- asim/go-microgithub.com/asim/go-micro
- AsynkronIT/protoactor-gogithub.com/AsynkronIT/protoactor-go
- augustoroman/v8github.com/augustoroman/v8
- awalterschulze/goderivegithub.com/awalterschulze/goderive
- bcicen/jstreamgithub.com/bcicen/jstream
- benmanns/goworkergithub.com/benmanns/goworker
- blevesearch/vellumgithub.com/blevesearch/vellum
- brendonmatos/golivegithub.com/brendonmatos/golive
- bspaans/jit-compilergithub.com/bspaans/jit-compiler
- burrowers/garblegithub.com/burrowers/garble
- BWbwchen/MapReducegithub.com/BWbwchen/MapReduce
- bytedance/go-tagexprgithub.com/bytedance/go-tagexpr
- BYVoid/OpenCCgithub.com/BYVoid/OpenCC
- caarlos0/envgithub.com/caarlos0/env
- cdipaolo/gomlgithub.com/cdipaolo/goml
- charmbracelet/bubbleteagithub.com/charmbracelet/bubbletea
- charmbracelet/wishgithub.com/charmbracelet/wish
- chewxy/gorgoniagithub.com/chewxy/gorgonia
- cilium/ebpfgithub.com/cilium/ebpf
- cloudflare/tableflipgithub.com/cloudflare/tableflip
- cloudwego/hertzgithub.com/cloudwego/hertz
- cloudwego/kitexgithub.com/cloudwego/kitex
- cloudwego/netpollgithub.com/cloudwego/netpoll
- cockroachdb/errorsgithub.com/cockroachdb/errors
- coocood/freecachegithub.com/coocood/freecache
- d5/tengogithub.com/d5/tengo
- danielgtaylor/humagithub.com/danielgtaylor/huma
- dapr/daprgithub.com/dapr/dapr
- DarthSim/overmindgithub.com/DarthSim/overmind
- davidschlachter/embedded-struct-visualizergithub.com/davidschlachter/embedded-struct-visualizer
- dexidp/dexgithub.com/dexidp/dex
- djimenez/iconv-gogithub.com/djimenez/iconv-go
- dropbox/godropboxgithub.com/dropbox/godropbox
- dustin/go-humanizegithub.com/dustin/go-humanize
- elnormous/contenttypegithub.com/elnormous/contenttype
- emicklei/go-restfulgithub.com/emicklei/go-restful
- emirpasic/godsgithub.com/emirpasic/gods
- emluque/golang-internals-resourcesgithub.com/emluque/golang-internals-resources
- ent/entgithub.com/ent/ent
- ergo-services/ergogithub.com/ergo-services/ergo
- esimov/cairegithub.com/esimov/caire
- esimov/trianglegithub.com/esimov/triangle
- fatih/gomodifytagsgithub.com/fatih/gomodifytags
- felixge/httpsnoopgithub.com/felixge/httpsnoop
- flowbase/flowbasegithub.com/flowbase/flowbase
- fogleman/primitivegithub.com/fogleman/primitive
- framsc/sip-client-in-golang/sip client.gogithub.com/framsc/sip-client-in-golang/blob/master/sip%20client.go
- galeone/tfgogithub.com/galeone/tfgo
- geziyor/geziyorgithub.com/geziyor/geziyor
- ghettovoice/gosipgithub.com/ghettovoice/gosip
- gianarb/plannergithub.com/gianarb/planner
- gin-gonic/gingithub.com/gin-gonic/gin
- gin-gonic/gin#2016github.com/gin-gonic/gin/issues/2016
- gliderlabs/sshgithub.com/gliderlabs/ssh
- go-chassis/go-chassisgithub.com/go-chassis/go-chassis
- go-chi/rendergithub.com/go-chi/render
- go-cmd/cmdgithub.com/go-cmd/cmd
- go-faster/jxgithub.com/go-faster/jx
- go-kit/kitgithub.com/go-kit/kit
- go-kratos/kratosgithub.com/go-kratos/kratos
- go-ozzo/ozzo-validationgithub.com/go-ozzo/ozzo-validation
- go-pay/gopaygithub.com/go-pay/gopay
- go-pg/pggithub.com/go-pg/pg
- go-playground/validatorgithub.com/go-playground/validator
- go-redis/redisgithub.com/go-redis/redis
- go-redis/redis#607github.com/go-redis/redis/issues/607
- go-task/taskgithub.com/go-task/task
- go-validator/validatorgithub.com/go-validator/validator
- go-vgo/robotgogithub.com/go-vgo/robotgo
- goadesign/goagithub.com/goadesign/goa
- gobwas/wsgithub.com/gobwas/ws
- gofiber/fibergithub.com/gofiber/fiber
- gogf/gfgithub.com/gogf/gf
- gokrazy/gokrazygithub.com/gokrazy/gokrazy
- golang-jwt/jwtgithub.com/golang-jwt/jwt
- golang-migrate/migrategithub.com/golang-migrate/migrate
- golang-standards/project-layoutgithub.com/golang-standards/project-layout
- golang-standards/project-layout#117github.com/golang-standards/project-layout/issues/117
- golang/go/src/cmd/compilegithub.com/golang/go/tree/master/src/cmd/compile
- golang/go/wikigithub.com/golang/go/wiki
- golang/go/wiki/CodeReviewCommentsgithub.com/golang/go/wiki/CodeReviewComments
- golang/go/wiki/Modulesgithub.com/golang/go/wiki/Modules
- golang/go#19307github.com/golang/go/issues/19307
- golang/go#19569github.com/golang/go/issues/19569
- golang/go#49952github.com/golang/go/issues/49952
- golang/tools/cmd/stringer/stringer.gogithub.com/golang/tools/blob/master/cmd/stringer/stringer.go
- golobby/containergithub.com/golobby/container
- gomarkdown/markdowngithub.com/gomarkdown/markdown
- google/addlicensegithub.com/google/addlicense
- google/bloatygithub.com/google/bloaty
- google/cel-gogithub.com/google/cel-go
- google/go-cloudgithub.com/google/go-cloud
- google/gopsgithub.com/google/gops
- google/kogithub.com/google/ko
- google/martiangithub.com/google/martian
- google/shlexgithub.com/google/shlex
- google/starlark-gogithub.com/google/starlark-go
- goreleaser/goreleasergithub.com/goreleaser/goreleaser
- gorgonia/gorgoniagithub.com/gorgonia/gorgonia
- gorilla/muxgithub.com/gorilla/mux
- gorilla/websocketgithub.com/gorilla/websocket
- Goxiaoy/go-saasgithub.com/Goxiaoy/go-saas
- graph-gophers/graphql-gogithub.com/graph-gophers/graphql-go
- guregu/nullgithub.com/guregu/null
- gzuidhof/tygogithub.com/gzuidhof/tygo
- hacdias/webdavgithub.com/hacdias/webdav
- hack-pad/hackpadfsgithub.com/hack-pad/hackpadfs
- hanwen/go-fusegithub.com/hanwen/go-fuse
- hashicorp/go-multierrorgithub.com/hashicorp/go-multierror
- hashicorp/go-plugingithub.com/hashicorp/go-plugin
- hashicorp/go-versiongithub.com/hashicorp/go-version
- hashicorp/memberlistgithub.com/hashicorp/memberlist
- hexdigest/gowrapgithub.com/hexdigest/gowrap
- hibiken/asynqgithub.com/hibiken/asynq
- immortal/immortalgithub.com/immortal/immortal
- inetafgithub.com/inetaf
- jackc/pgtypegithub.com/jackc/pgtype
- jackc/pgxgithub.com/jackc/pgx
- jaroszan/sipgithub.com/jaroszan/sip
- jeromer/mumbojumbogithub.com/jeromer/mumbojumbo
- jfyne/livegithub.com/jfyne/live
- jinzhu/nowgithub.com/jinzhu/now
- jmoiron/sqlxgithub.com/jmoiron/sqlx
- joewalnes/websocketdgithub.com/joewalnes/websocketd
- jondot/goweightgithub.com/jondot/goweight
- jroimartin/gocuigithub.com/jroimartin/gocui
- json-iterator/gogithub.com/json-iterator/go
- julienschmidt/go-http-routing-benchmarkgithub.com/julienschmidt/go-http-routing-benchmark
- julienschmidt/httproutergithub.com/julienschmidt/httprouter
- k0sproject/riggithub.com/k0sproject/rig
- Kagami/go-avifgithub.com/Kagami/go-avif
- kahing/goofysgithub.com/kahing/goofys
- KalbiProject/Kalbigithub.com/KalbiProject/Kalbi
- kataras/irisgithub.com/kataras/iris
- kevwan/tproxygithub.com/kevwan/tproxy
- Khan/genqlientgithub.com/Khan/genqlient
- klauspost/compressgithub.com/klauspost/compress
- knadh/koanfgithub.com/knadh/koanf
- koding/websocketproxygithub.com/koding/websocketproxy
- konimarti/ltigithub.com/konimarti/lti
- kyleconroy/sqlcgithub.com/kyleconroy/sqlc
- Lallassu/bintrisgithub.com/Lallassu/bintris
- lestrrat-go/jwxgithub.com/lestrrat-go/jwx
- lib/pqgithub.com/lib/pq
- liuzl/goccgithub.com/liuzl/gocc
- lmorg/murexgithub.com/lmorg/murex
- loov/godagithub.com/loov/goda
- lotusdblabs/lotusdbgithub.com/lotusdblabs/lotusdb
- magma/magmagithub.com/magma/magma
- markbates/gothgithub.com/markbates/goth
- markusthoemmes/goautoneg/accept.gogithub.com/markusthoemmes/goautoneg/blob/master/accept.go
- maruel/panicparsegithub.com/maruel/panicparse
- Masterminds/spriggithub.com/Masterminds/sprig
- Masterminds/squirrelgithub.com/Masterminds/squirrel
- mattn/go-sqlite3github.com/mattn/go-sqlite3
- mgechev/revivegithub.com/mgechev/revive
- mholt/archivergithub.com/mholt/archiver
- mholt/json-to-gogithub.com/mholt/json-to-go
- microcosm-cc/bluemondaygithub.com/microcosm-cc/bluemonday
- miku/zekgithub.com/miku/zek
- mingrammer/go-web-framework-starsgithub.com/mingrammer/go-web-framework-stars
- minio/sha256-simdgithub.com/minio/sha256-simd
- mjibson/sqlfmtgithub.com/mjibson/sqlfmt
- mmcloughlin/avogithub.com/mmcloughlin/avo
- movio/bramblegithub.com/movio/bramble
- muesli/coralgithub.com/muesli/coral
- mvdan/gofumptgithub.com/mvdan/gofumpt
- mvdan/shgithub.com/mvdan/sh
- nadoo/glidergithub.com/nadoo/glider
- name5566/leafgithub.com/name5566/leaf
- natesales/qgithub.com/natesales/q
- nautilus/gatewaygithub.com/nautilus/gateway
- nlpodyssey/spagogithub.com/nlpodyssey/spago
- nsf/termbox-gogithub.com/nsf/termbox-go
- nwaples/rardecodegithub.com/nwaples/rardecode
- nytimes/gizmogithub.com/nytimes/gizmo
- ochinchina/supervisordgithub.com/ochinchina/supervisord
- ogham/doggithub.com/ogham/dog
- oklog/rungithub.com/oklog/run
- olahol/melodygithub.com/olahol/melody
- onsi/ginkgogithub.com/onsi/ginkgo
- orijtech/structslopgithub.com/orijtech/structslop
- ortuman/jackalgithub.com/ortuman/jackal
- orygithub.com/ory
- owenthereal/uptermgithub.com/owenthereal/upterm
- panjf2000/gnetgithub.com/panjf2000/gnet
- pdfcpu/pdfcpugithub.com/pdfcpu/pdfcpu
- Permify/permify-gormgithub.com/Permify/permify-gorm
- peterh/linergithub.com/peterh/liner
- pkg/errorsgithub.com/pkg/errors
- pointlander/peggithub.com/pointlander/peg
- polarsignals/frostdbgithub.com/polarsignals/frostdb
- progrium/macdrivergithub.com/progrium/macdriver
- pyroscope-io/pyroscopegithub.com/pyroscope-io/pyroscope
- qri-io/jsonschemagithub.com/qri-io/jsonschema
- qustavo/sqlhooksgithub.com/qustavo/sqlhooks
- rainycape/governatorgithub.com/rainycape/governator
- razorpay/go-financialgithub.com/razorpay/go-financial
- rhu1/fgggithub.com/rhu1/fgg
- RichardKnop/machinerygithub.com/RichardKnop/machinery
- rogchap/v8gogithub.com/rogchap/v8go
- rogchap/v8go#170github.com/rogchap/v8go/issues/170
- rs/logbenchgithub.com/rs/logbench
- rs/zerologgithub.com/rs/zerolog
- rtctunnel/rtctunnelgithub.com/rtctunnel/rtctunnel
- rubenv/sql-migrategithub.com/rubenv/sql-migrate
- russross/blackfridaygithub.com/russross/blackfriday
- saintfish/chardetgithub.com/saintfish/chardet
- sclevine/yjgithub.com/sclevine/yj
- sethvargo/go-limitergithub.com/sethvargo/go-limiter
- shenghui0779/gochatgithub.com/shenghui0779/gochat
- shivamMg/triegithub.com/shivamMg/trie
- Shopify/go-luagithub.com/Shopify/go-lua
- SimonWaldherr/golang-benchmarksgithub.com/SimonWaldherr/golang-benchmarks
- sirupsen/logrusgithub.com/sirupsen/logrus
- slok/go-http-metricsgithub.com/slok/go-http-metrics
- smallnest/rpcxgithub.com/smallnest/rpcx
- smarty-archives/mafsagithub.com/smarty-archives/mafsa
- smartystreets/goconveygithub.com/smartystreets/goconvey
- soheilhy/cmuxgithub.com/soheilhy/cmux
- songgao/watergithub.com/songgao/water
- sosedoff/pgwebgithub.com/sosedoff/pgweb
- sourcegraph/concgithub.com/sourcegraph/conc
- sourcegraph/sourcegraph#16575github.com/sourcegraph/sourcegraph/issues/16575
- spf13/cobragithub.com/spf13/cobra
- spotahome/gontrollergithub.com/spotahome/gontroller
- stefanprodan/podinfogithub.com/stefanprodan/podinfo
- swaggo/http-swaggergithub.com/swaggo/http-swagger
- teh-cmc/go-internalsgithub.com/teh-cmc/go-internals
- ThreeDotsLabs/watermillgithub.com/ThreeDotsLabs/watermill
- tibcosoftware/flogogithub.com/tibcosoftware/flogo
- tidwall/eviogithub.com/tidwall/evio
- tidwall/gjsongithub.com/tidwall/gjson
- tidwall/sjsongithub.com/tidwall/sjson
- tmc/reactssrgithub.com/tmc/reactssr
- topfreegames/pitayagithub.com/topfreegames/pitaya
- traefik/yaegigithub.com/traefik/yaegi
- trustmaster/goflowgithub.com/trustmaster/goflow
- twitchtv/twirpgithub.com/twitchtv/twirp
- twitchyliquid64/golang-asmgithub.com/twitchyliquid64/golang-asm
- uber-go/gopatchgithub.com/uber-go/gopatch
- uber-go/multierrgithub.com/uber-go/multierr
- ugorji/gogithub.com/ugorji/go
- ulule/limitergithub.com/ulule/limiter
- umputun/remark42github.com/umputun/remark42
- unionj-cloud/go-doudougithub.com/unionj-cloud/go-doudou
- unrolled/rendergithub.com/unrolled/render
- uptrace/bungithub.com/uptrace/bun
- urfave/cligithub.com/urfave/cli
- valyala/fasthttpgithub.com/valyala/fasthttp
- veqryn/slog-contextgithub.com/veqryn/slog-context
- volatiletech/sqlboilergithub.com/volatiletech/sqlboiler
- wasmCloud/wasmCloudgithub.com/wasmCloud/wasmCloud
- wenerme/go-magicgithub.com/wenerme/go-magic
- wenerme/go-reqgithub.com/wenerme/go-req
- wenerme/go-wecomgithub.com/wenerme/go-wecom
- willscott/go-nfsgithub.com/willscott/go-nfs
- wolfeidau/hotwire-golang-websitegithub.com/wolfeidau/hotwire-golang-website
- Workiva/go-datastructuresgithub.com/Workiva/go-datastructures
- x1unix/go-playgroundgithub.com/x1unix/go-playground
- xeipuuv/gojsonschemagithub.com/xeipuuv/gojsonschema
- xo/dburlgithub.com/xo/dburl
- xo/usqlgithub.com/xo/usql
- xo/xogithub.com/xo/xo
- xtaci/gonetgithub.com/xtaci/gonet
- Yamashou/gqlgencgithub.com/Yamashou/gqlgenc
- ycoroneos/G.E.R.Tgithub.com/ycoroneos/G.E.R.T
- ycoroneos/golang_embeddedgithub.com/ycoroneos/golang_embedded
- ysugimoto/grpc-graphql-gatewaygithub.com/ysugimoto/grpc-graphql-gateway
- yuin/goldmarkgithub.com/yuin/goldmark
- yuin/gopher-luagithub.com/yuin/gopher-lua
- yuriizinets/kyotogithub.com/yuriizinets/kyoto
- zeromicro/go-zerogithub.com/zeromicro/go-zero
- zhenghaoz/gorsegithub.com/zhenghaoz/gorse
- Zxilly/go-size-analyzergithub.com/Zxilly/go-size-analyzer
Hacker News3 条
- Hacker News #14590847HN #14590847
- Hacker News #15591847HN #15591847
- Hacker News #28824996HN #28824996
Packages5 条
- golang.org/x/crypto/sshpkg.go.dev/golang.org/x/crypto/ssh
- golang.org/x/oauth2pkg.go.dev/golang.org/x/oauth2
- golang.org/x/sync/errgrouppkg.go.dev/golang.org/x/sync/errgroup
- golang.org/x/text/languagepkg.go.dev/golang.org/x/text/language
- pluginpkg.go.dev/plugin
其他外链35 条
- go-proverbs.github.iogo-proverbs.github.io/
- benhoyt.com/writings/mugobenhoyt.com/writings/mugo
- bugs.alpinelinux.org/issues/4276bugs.alpinelinux.org/issues/4276
- eli.thegreenplace.net/2019/simple-go-project-layout-with-moduleseli.thegreenplace.net/2019/simple-go-project-layout-with-modules
- engineering.razorpay.com/892b1532eb2eengineering.razorpay.com/892b1532eb2e
- gianarb.it/blog/reactive-planning-and-reconciliation-in-gogianarb.it/blog/reactive-planning-and-reconciliation-in-go
- gitea.com/lunny/tangogitea.com/lunny/tango
- gitee.com/xiaochengtech/sipgitee.com/xiaochengtech/sip
- github.com/orgs/google/repositories?q=&type=all&language=go&sort=stargazersgithub.com/orgs/google/repositories?language=go&q=&sort=stargazers&type=all
- gitlab.alpinelinux.org/kdaudt/atools-gogitlab.alpinelinux.org/kdaudt/atools-go
- gitlab.com/cznic/sqlitegitlab.com/cznic/sqlite
- gitlab.com/geeks-accelerator/oss/saas-starter-kitgitlab.com/geeks-accelerator/oss/saas-starter-kit
- go.dev/blog/matchlanggo.dev/blog/matchlang
- golang.org/doc/effective_gogolang.org/doc/effective_go
- golang.org/ref/specgolang.org/ref/spec
- goplay.toolsgoplay.tools/
- gvisor.dev/docs/user_guide/networkinggvisor.dev/docs/user_guide/networking
- hackemist.com/logbenchhackemist.com/logbench
- itnext.io/a-guide-to-graphql-schema-federation-part-1-995b639ac035itnext.io/a-guide-to-graphql-schema-federation-part-1-995b639ac035
- martin.baillie.id/wrote/gotchas-in-the-go-network-packages-defaultsmartin.baillie.id/wrote/gotchas-in-the-go-network-packages-defaults
- medium.com/kokster/964b61295fmedium.com/kokster/964b61295f
- mholt.github.io/json-to-gomholt.github.io/json-to-go
- movio.co/blog/building-a-new-api-platform-for-moviomovio.co/blog/building-a-new-api-platform-for-movio
- play.golang.orgplay.golang.org/
- product.spotahome.com/832d4a9522eaproduct.spotahome.com/832d4a9522ea
- steveazz.xyz/blog/go-performance-tools-cheat-sheetsteveazz.xyz/blog/go-performance-tools-cheat-sheet
- syslog.ravelin.com/a28c14e82a51syslog.ravelin.com/a28c14e82a51
- tumregels.github.io/Network-Programming-with-Gotumregels.github.io/Network-Programming-with-Go
- www.akmittal.dev/posts/hotwire-gowww.akmittal.dev/posts/hotwire-go
- www.altoros.com/blog/golang-internals-part-1-main-concepts-and-project-structurewww.altoros.com/blog/golang-internals-part-1-main-concepts-and-project-structure
- www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.htmlwww.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html
- www.cloudwego.io/zh/docs/hertzwww.cloudwego.io/zh/docs/hertz
- www.onlinetool.io/xmltogowww.onlinetool.io/xmltogo
- www.sqlite.org/sharedcache.htmlwww.sqlite.org/sharedcache.html
- www.sqlite.org/uri.htmlwww.sqlite.org/uri.html