Logo

#Go语言

Logo of gorgonia
gorgonia
Gorgonia是专为Go语言开发的机器学习库,提供自动微分、符号微分、梯度下降优化和数值稳定功能。用户可以轻松编写和评估多维数组的数学方程,并利用CUDA进行快速计算。其目标是成为高性能、可扩展的机器学习和图计算库,适合多机部署,同时支持非标准深度学习和神经网络研究。
Logo of gse
gse
Gse是一款支持多种分词模式及多语言(包括英文、中文、日文等)的高效NLP和文本分词工具。它采用双数组Trie和动态规划等算法,并通过ElasticSearch和Bleve集成,提供强大的文本处理能力。项目内还支持TensorFlow的NLP和命名实体识别(NER)功能,支持用户自定义词典和词性标注。作为一个开源项目,Gse在简体中文、传统中文和其他语言的文本处理上有优异表现。
Logo of genqlient
genqlient
genqlient库用于生成类型安全的Go语言代码以查询GraphQL API,确保编译时验证查询合法性和正确使用结果。它提供编译时验证与类型安全的响应对象,已在Khan Academy的生产环境中应用,支持全球数百万学习者和教师。通过简单的设置和详细文档,可以轻松集成到项目中。
Logo of weaver
weaver
Service Weaver是一个开源编程框架,旨在简化分布式应用的开发、部署和管理流程。该框架支持在本地环境进行应用的运行、测试和调试,并提供单一命令实现云端部署。通过实现从本地到云端的无缝过渡,Service Weaver有助于提升分布式系统的开发效率和可维护性。
Logo of go-txdb
go-txdb
go-txdb是一个为Go语言开发的单事务数据库SQL驱动。它在建立连接时自动启动事务,确保所有操作在同一事务内执行,特别适合快速且隔离的功能测试。该驱动兼容任何sql.Driver连接,可以注册为不同的驱动名称。通过事务回滚机制,go-txdb能够在测试结束后保持数据库状态不变,显著提升测试效率。这个工具主要用于需要数据库访问的测试场景,目前支持MySQL和PostgreSQL数据库。
Logo of spinner
spinner
Spinner是一个Go语言开发的终端动画库,提供90种字符集用于创建加载动画和进度指示器。该库支持自定义动画速度、颜色和文本属性,允许启动、停止和重启动画,添加前缀后缀文本,以及输出最终状态。Spinner主要用于CLI应用程序中展示长时间运行任务的进度,为终端界面增添动态效果。
Logo of sqinn-go
sqinn-go
sqinn-go是一个Go语言库,用于在不使用cgo的情况下访问SQLite数据库。它通过启动Sqinn子进程并通过标准输入输出进行通信来执行SQLite操作。该库提供简洁的API,支持跨平台编译,具有较快的构建速度和较小的二进制体积。sqinn-go的性能与基于cgo的解决方案相当,适合需要SQLite功能但希望避免使用cgo的项目。
Logo of 100-go-mistakes
100-go-mistakes
100-go-mistakes是一个关于Go语言编程的开源项目,基于Manning出版社2022年8月发布的同名图书。该项目探讨了100个常见的Go编程错误及其解决方案,提供源代码示例和社区交流平台。项目旨在帮助各级Go开发者提高代码质量和编程效率,是学习Go最佳实践的宝贵资源。项目内容可在100go.co在线阅读。
Logo of hollywood
hollywood
Hollywood是一个Go语言开发的高性能Actor引擎,专注于低延迟应用。每秒可处理1000万条消息,适用于游戏服务器、广告系统和交易引擎等场景。它提供消息投递保证、远程通信和集群支持,并使用protobuf进行高效序列化。Hollywood易用且高度可定制,是构建高并发分布式系统的有力工具。
Logo of backoff
backoff
Backoff是一个Go语言实现的指数退避算法库,源自Google的Java HTTP客户端库。它通过反馈机制逐步降低进程速率,以找到可接受的执行频率。该库提供简洁的API,适用于需要实现重试逻辑的场景。Backoff保持小巧精简,专注于常见用例,在网络请求、任务调度等场景中有广泛应用。
Logo of gofeed
gofeed
gofeed是一个Go语言开发的多功能Feed解析库,支持RSS、Atom和JSON格式。它可以处理非标准元素、已知扩展和常见feed问题。该库提供通用解析器和专用解析器,具备无效feed处理和扩展支持等功能,适合开发人员处理各类订阅源。
Logo of viper
viper
Viper是Go语言的全能配置管理库,支持JSON、TOML、YAML等多种格式。它能从文件、环境变量、命令行标志和远程系统读取配置,提供默认值设置、实时监控、别名注册等功能。Viper采用优先级处理机制,简单易用yet功能强大,适用于各类Go项目的配置需求。
Logo of pond
pond
pond是一个Go语言编写的goroutine工作池库,提供API以限制并发。支持固定和动态大小池,具备自动扩缩容、任务分组、优雅关闭等特性。适用于数据库查询、API请求等场景,可有效管理资源使用。无外部依赖,易于集成,支持自定义池大小策略和panic处理,并提供完整的指标监控。
Logo of langchaingo
langchaingo
LangChain Go 是 LangChain 的 Go 语言实现,专注于通过模块化方式构建 LLM 应用程序。详细文档和丰富示例帮助用户在 Go 环境中轻松使用 LangChain 开发 LLM 应用。项目提供与 OpenAI 的集成示例,展示生成创意公司名称的功能。丰富的资源和博客文章助力开发者快速上手,实现 ChatGPT 克隆等实际应用,是 Go 开发者构建 LLM 应用的理想选择。
Logo of gomarkov
gomarkov
此开源项目使用Go语言实现Markov链,专门用于文本数据处理。通过训练数据生成概率序列和新文本,并支持JSON序列化。适用于生成随机用户名、虚假新闻标题和宝可梦名字等应用场景。
Logo of oto
oto
Oto是一个Go驱动的RPC代码生成工具,可通过Go接口描述来生成服务器和客户端代码,涵盖现成的生产模板,并支持用户自定义。已被Grafana Labs、Pace.dev和Firesearch.dev等公司采用。
Logo of news
news
news项目汇集全球Go语言相关新闻、开发技巧和社区动态,由多位贡献者共同维护。该平台每日更新,为Go开发者提供最新行业资讯和技术信息,助力开发者紧跟技术趋势。
Logo of nilaway
nilaway
NilAway是一款静态分析工具,专门用于在编译时检测Go代码中的nil指针异常。它无需额外注释,能够跨包分析nil流,并提供详细错误报告。NilAway以低开销和高精度著称,适合大型Go项目使用。该工具支持独立运行,也可与golangci-lint和Bazel/nogo集成,为开发者提供灵活的使用方式。
Logo of rueidis
rueidis
rueidis是一个高性能的Go语言Redis客户端库,实现了自动流水线和服务器辅助的客户端缓存机制。该库支持非阻塞Redis命令的自动流水线处理,提供通用对象映射和分布式锁等功能。rueidis集成了OpenTelemetry,支持Pub/Sub、Redis集群和哨兵模式,为开发者提供全面的Redis客户端解决方案。其优化设计显著提升了吞吐量和降低了延迟,适用于各种高性能Redis应用场景。
Logo of jwt
jwt
jwt-go是一个Go语言实现的JSON Web Token库。该库支持JWT的解析、验证、生成和签名,兼容HMAC SHA、RSA、RSA-PSS和ECDSA等多种签名算法。jwt-go提供简洁的API,符合RFC 7519标准,注重安全性。它允许自定义签名方法和密钥函数,便于集成第三方签名服务。作为一个稳定的生产级库,jwt-go持续更新以适配最新的Go版本。
Logo of ksql
ksql
KSQL是一个开源的Go语言SQL数据库交互库,提供简洁API设计以简化数据库操作。支持Postgres、MySQL、SQLite等多种数据库,具备简化错误处理、泛型查询、事务支持等特性。KSQL易于学习和调试,有助于避免常见陷阱,旨在提高Go开发者的数据库操作效率。
Logo of lf
lf
lf是一款Go语言开发的终端文件管理器,受ranger启发。它支持多平台,采用单一二进制文件结构,具有快速启动和低内存占用优势。lf实现了异步IO操作、服务器/客户端架构和远程命令功能,并可通过shell命令扩展。该工具提供自定义键绑定选项和实用功能集,为用户提供高效的文件管理体验。
Logo of 1brc
1brc
本文介绍了一个使用Go语言实现1BRC(10亿行挑战)的开源项目。通过13次迭代优化,项目将数据处理时间从6分13秒缩短至12秒。文章详细记录了并发处理、内存管理、数据类型转换等优化技巧,为大规模数据处理提供了实用的性能优化方案。项目展示了Go语言在处理大数据时的高效性,为相关领域的开发者提供了valuable参考。
Logo of client-go
client-go
作为Istio APIs的Go语言客户端库,client-go简化了Kubernetes集群中Istio资源的管理。兼容Go 1.11+,支持获取最新或特定版本。此库与Istio官方版本保持一致,是操作Istio资源的实用工具。
Logo of mimetype
mimetype
mimetype是一个Go语言包,用于基于魔数检测MIME类型和文件扩展名。该库支持多种MIME类型,可区分文本和二进制文件,并优先处理常见格式。mimetype提供API从字节、读取器或文件路径中检测MIME类型,具有协程安全和可扩展性。它无需C语言绑定,适用于需要文件类型识别功能的Go项目。
Logo of bytom
bytom
Bytom是一种区块链协议,支持用户定义、发行和转移数字资产。其官方golang实现提供关键管理、账户及资产管理、交易发送等功能,可通过Homebrew或源码安装。项目正在积极开发中,提供详细的安装和运行指南,并欢迎社区贡献。
Logo of nvidia_gpu_exporter
nvidia_gpu_exporter
nvidia_gpu_exporter是一个开源的Nvidia GPU监控工具,通过nvidia-smi命令收集和导出GPU指标数据,支持Windows、Linux和MacOS系统。无需Docker或Kubernetes环境,适合游戏和非企业使用。支持远程命令执行,并提供与Grafana集成的可视化仪表板,方便实时监控GPU性能。
Logo of onnx-go
onnx-go
onnx-go项目提供了一个Go语言接口,用于解析和运行ONNX二进制模型,帮助开发者轻松集成机器学习功能。虽然其API仍然是实验性的,但它不需要数据科学方面的专业知识。该项目已停止维护,且随着深度学习领域的发展,预计会被新的解决方案取代。
Logo of moq
moq
Moq是一款用于Go语言的接口生成结构体工具,适用于测试代码中的接口模拟。它能够从任意接口生成对应的结构体,帮助开发者轻松控制模拟对象行为,进而编写高效的单元测试。Moq支持多种格式化选项,并提供灵活的命令行标志配置输出文件和包名。安装简单,即可开始使用,并兼容Go 1.18+版本及预编译的二进制文件,适用于较旧版本的Go。通过Moq,开发者可以生成可复位的函数,追踪方法调用,保持测试代码中的模拟逻辑易于维护。
Logo of delve
delve
Delve是Go语言的开源调试工具,提供简洁而全面的调试功能。支持命令行接口和主流编辑器集成,安装便捷,操作直观。具备断点设置、单步执行、变量检查等核心调试特性,帮助开发者快速定位和解决Go程序问题。适合各层级开发者使用,提高Go程序开发效率。
Logo of golang-set
golang-set
golang-set为Go语言提供了通用集合功能。该库支持泛型语法,提供线程安全和非线程安全实现,模仿Python的set功能。它拥有完整的测试套件,被以太坊和Docker等项目采用。golang-set简化了集合数据管理,减少了冗余代码,适用于多种可比较类型数据。
Logo of go-arg
go-arg
go-arg 是一个基于结构体的 Go 语言命令行参数解析库。开发者可通过定义结构体来声明程序的命令行参数,支持必需参数、位置参数、环境变量和默认值等功能。该库还提供自定义验证、版本字符串和子命令等特性,适用于构建简单到复杂的命令行接口。go-arg 设计简洁,易于集成,适合各种规模的 Go 项目使用。
Logo of advanced-go-programming-book
advanced-go-programming-book
《Go语言高级编程》一书详细探讨了Go语言的高级主题,涵盖CGO、Go汇编、RPC、Web框架和分布式系统等内容。该书面向具有Go语言基础的开发者,深入阐述了Go语言高级特性的应用。作者从专业角度展示了Go语言在复杂系统开发中的实践技巧,为读者提供了全面的Go语言高级编程指南。
Logo of ooze
ooze
ooze 是一个 Go 语言变异测试工具,通过在代码中引入受控变化来评估测试套件质量和覆盖率。它支持多种变异类型,包括修改运算符和替换常量等,还允许自定义变异。ooze 生成详细报告,帮助识别测试覆盖不足的区域。该工具易于集成,支持并行执行,有助于开发健壮的代码库和可靠的测试套件。
Logo of caddy
caddy
Caddy是一款现代化的Web服务器平台,默认启用TLS加密。它支持Caddyfile、JSON和API多种配置方式,具备自动HTTPS、多协议支持和高扩展性。Caddy无需外部依赖,已在大规模生产环境中得到验证,可轻松扩展到数十万个站点。作为安全、高效的Web服务器解决方案,Caddy正受到越来越多开发者的青睐。
Logo of hugo
hugo
Hugo是一款基于Go语言的开源静态网站生成框架,以高性能和灵活性著称。它采用先进的模板系统和高效的资源处理流程,能够在数秒内完成网站渲染。Hugo适用于构建多种类型的网站,如企业、政府、非营利组织、教育机构、新闻媒体、活动策划和项目展示等。此外,Hugo还支持多语言内容管理、完善的分类系统,并集成了便于开发的Web服务器。
Logo of gorse
gorse
Gorse 是一款基于 Go 语言的开源推荐系统引擎,提供多源推荐、自动机器学习、分布式预测和 RESTful API 等功能。该系统能自动训练模型,为用户生成个性化推荐。Gorse 还具备在线评估和可视化仪表盘,便于数据管理、系统监控和集群状态检查。它适合寻求高性能、可扩展推荐解决方案的开发者和企业使用。
Logo of bigcache
bigcache
BigCache是一个Go语言编写的高性能内存缓存库,专为大规模数据存储设计。通过优化内存管理,BigCache有效减少了垃圾回收对性能的影响。它支持并发操作,提供灵活配置,相比同类库具有更快的速度和更低的GC暂停时间。BigCache适用于要求高吞吐量和低延迟的场景,并提供HTTP服务器实现便于部署。
Logo of git2gpt
git2gpt
git2gpt是一款通过命令行将Git仓库转换为文本格式的工具,方便在ChatGPT和其他NLP模型中加载。支持添加`.gptignore`文件以忽略特定文件,操作简单。只需安装Go语言并运行`git2gpt`命令生成结构化文本文件,支持多种命令行标志。项目开源,采用MIT许可证,欢迎贡献。
Logo of wire
wire
Wire是一款代码生成工具,通过依赖注入技术在不依赖运行时状态或反射的情况下自动连接组件,提倡显式初始化而非全局变量。用户可通过教程、用户指南、最佳实践和FAQ文档了解使用方法。此项目现处于Beta版本,功能已完善,只接受漏洞报告和修复。有关问题请访问GitHub Discussions进行交流。
Logo of generic
generic
Generic是一个Go语言实现的通用数据结构库。它提供了2D数组、AVL树、B树、哈希映射、堆、区间树、链表、集合、队列和栈等多种数据结构。这些实现经过优化,支持高效操作和内存管理。该库还包括双向映射、缓存、绳索等特殊数据结构,以及持久化版本的绳索结构。Generic库的所有实现都是通用的,可以处理不同类型的数据。它提供了详细的文档和示例,便于开发者快速上手使用。Generic库适合需要高性能数据处理的Go项目,为开发者提供了丰富的选择。
Logo of toml
toml
TOML是一个为Go语言开发的轻量级配置文件解析库。它提供类似Go标准库json和xml包的反射接口,兼容TOML v1.0.0版本。该库特点包括简洁API、强大解析能力,以及支持自定义unmarshaler接口,简化了复杂数据结构的解析过程。此外,TOML库还配备命令行验证工具,便于开发者快速检查TOML文件格式。
Logo of progressbar
progressbar
progressbar是一个用Go语言开发的进度条库,支持多操作系统和各种I/O操作。该库线程安全,实现了io.Writer接口,可自动检测写入流字节数,并支持未知长度的进度显示。progressbar提供丰富的自定义选项,易于使用且性能优良,适合开发人员在处理长时间运行任务时使用。
Logo of faker
faker
faker是一个Go语言假数据生成库,可根据结构体定义自动生成测试数据。支持多种数据类型、自定义标签和单一数据生成函数,易于集成到测试和开发流程。该库性能高效,操作简便,适合开发人员进行数据模拟和测试。
Logo of go-food-delivery-microservices
go-food-delivery-microservices
该项目是一个基于Go语言的食品配送微服务系统,采用垂直切片架构、CQRS模式和领域驱动设计。系统使用RabbitMQ进行异步通信,提供REST和gRPC接口,并集成分布式追踪和指标监控功能。项目展示了可扩展微服务应用的构建方法,可作为Go后端微服务的参考模板。
Logo of conc
conc
conc 是一个 Go 语言结构化并发工具集,提供 WaitGroup、Pool、Stream 等组件,简化常见并发任务。该工具集有助于管理 goroutine、处理 panic、控制并发数量和实现并行处理。conc 致力于减少 goroutine 泄漏、优雅处理 panic,并提高并发代码的可读性和可维护性。
Logo of goval
goval
goval是一个Go语言表达式求值库,支持评估算术、字符串和逻辑表达式。该库允许访问变量和调用自定义函数,提供数组、对象和位操作等多种类型支持。goval采用直观语法,性能优化,并提供详细错误信息。目前已在生产环境中使用,是一个稳定的表达式求值工具。
Logo of go-fast-cdn
go-fast-cdn
go-fast-cdn是一款基于Go语言的开源CDN系统,集成SQLite数据库、GORM和Gin web框架。该项目采用Vite、React和wouter构建用户界面,提供高性能、易部署的内容分发服务。go-fast-cdn支持Docker快速启动,适合需要轻量级CDN解决方案的开发者和企业。项目文档详尽,有助于用户快速搭建和管理CDN网络。
Logo of incubator-seata-go
incubator-seata-go
Seata-go是Apache Seata的Go语言实现,为Go开发者提供分布式事务解决方案。项目架构包含TM、RM和TC,目前支持TCC和AT模式,未来将实现XA和SAGA模式。Seata-go提供事务反挂起、空补偿等功能,并支持配置中心和压缩算法。该项目与Seata-Java原理一致,实现了Java和Go的互操作性,目前正在积极开发中。
Logo of lura
lura
Lura是一个开源API网关构建框架,源自KrakenD框架。它聚合多个后端服务数据,提供单一访问端点,降低客户端复杂度。Lura支持HTTP(S)和RPC协议,提供丰富的中间件和插件扩展。该框架能够转换和精简响应,并集成授权和安全功能。开发者可利用Lura库构建定制化API网关或代理,灵活应对各种场景需求。