Awesome Go
Мы используем сообщество Slack для мгновенного общения, следуйте форме здесь, чтобы присоединиться.
Спонсорство:
Особая благодарность
У Awesome Go нет ежемесячной платы, но у нас есть сотрудники, которые усердно работают, чтобы поддерживать его работу. На собранные деньги мы можем отплатить усилия каждого вовлечённого человека! Вы можете увидеть, как мы рассчитываем наши счета и распределение, поскольку это открыто для всего сообщества. Хотите поддержать проект, нажмите здесь.
Кураторский список замечательных фреймворков, библиотек и программного обеспечения Go. Вдохновлён awesome-python.
Вклад:
Пожалуйста, сначала ознакомьтесь с руководством по вкладу. Спасибо всем участникам; вы молодцы!
Если вы видите в этом списке пакет или проект, который больше не поддерживается или не подходит, пожалуйста, отправьте запрос на улучшение этого файла. Спасибо!
Cookiestxt (https://github.com/mengzhuo/cookiestxt) — предоставляет парсер формата файлов cookies.txt.
Go-Guardian (https://github.com/shaj13/go-guardian) — библиотека на языке Golang, которая обеспечивает простой, чистый и идиоматический способ создания мощного современного API и веб-аутентификации с поддержкой LDAP, Basic, Bearer token и аутентификации на основе сертификата.
Go-Jose (https://github.com/go-jose/go-jose) — достаточно полная реализация спецификаций JSON Web Token, JSON Web Signatures и JSON Web Encryption рабочей группы JOSE.
Goiabada (https://github.com/leodip/goiabada) — сервер аутентификации и авторизации с открытым исходным кодом, поддерживающий OAuth2 и OpenID Connect.
Gologin (https://github.com/dghubble/gologin) — подключаемые обработчики для входа с поставщиками аутентификации OAuth1 и OAuth2.
Gorbac (https://github.com/mikespook/gorbac) — обеспечивает лёгкую реализацию контроля доступа на основе ролей (RBAC) в Golang.
Gosession (https://github.com/Kwynto/gosession) — это быстрый сеанс для net/http в GoLang. Этот пакет является, пожалуй, лучшей реализацией механизма сеанса или, по крайней мере, пытается им стать.
Goth (https://github.com/markbates/goth) — обеспечивает простой, чистый и идиоматический способ использования OAuth и OAuth2. Обрабатывает несколько провайдеров из коробки.
Jeff (https://github.com/abraithwaite/jeff) — простое, гибкое, безопасное и идиоматическое управление веб-сессиями с подключаемыми бэкендами.
JWT (https://github.com/pascaldekloe/jwt) — облегчённая библиотека JSON Web Token (JWT).
JWT (https://github.com/cristalhq/jwt) — безопасные, простые и быстрые JSON Web Tokens для Go.
Jwt-auth (https://github.com/adam-hanna/jwt-auth) — промежуточное ПО JWT для серверов HTTP Golang с множеством опций конфигурации.
Jwt-go (https://github.com/golang-jwt/jwt) — полнофункциональная реализация JSON Web Tokens (JWT). Эта библиотека поддерживает синтаксический анализ и проверку, а также генерацию и подписание JWT.
Jwx (https://github.com/lestrrat-go/jwx) — модуль Go, реализующий различные технологии JWx (JWA/JWE/JWK/JWS/JWT, иначе известные как JOSE).
Keto (https://github.com/ory/keto) — реализация с открытым исходным кодом (Go) «Zanzibar: Google's Consistent, Global Authorization System». Поставляется с gRPC, REST API, newSQL и простым и детализированным языком разрешений. Поддерживает ACL, RBAC и другие модели доступа.
Loginsrv (https://github.com/tarent/loginsrv) — микросервис JWT login с подключаемыми бэкэндами, такими как OAuth2 (Github), htpasswd, osiam.
Oauth2 (https://github.com/golang/oauth2) — преемник goauth2. Универсальный пакет OAuth 2.0 с поддержкой JWT, Google APIs, Compute Engine и App Engine.
Oidc (https://github.com/zitadel/oidc) — простая в использовании библиотека сервера и клиента OpenID Connect, написанная для Go и сертифицированная OpenID Foundation.
Openfga (https://github.com/openfga/openfga) — реализация детальной авторизации на основе статьи «Zanzibar: Google's Consistent, Global Authorization System». При поддержке CNCF.
Osin (https://github.com/openshift/osin) — библиотека сервера OAuth2 Golang.
Otpgen (https://github.com/grijul/otpgen) — библиотека для генерации кодов TOTP/HOTP.
Ottgo (https://github.com/jltorresm/otpgo) — библиотека TOTP и HOTP для Golang.
Paseto (https://github.com/o1egl/paseto) — реализация Golang платформонезависимых токенов безопасности (PASETO).
Permissions2 (https://github.com/xyproto/permissions2) — библиотека для отслеживания пользователей, состояний входа и разрешений. Использует защищённые файлы cookie и bcrypt.
Scope (https://github.com/SonicRoshan/scope) — легко управляйте областями OAuth2 в Go.
Scs (https://github.com/alexedwards/scs) — менеджер сеансов для HTTP-серверов.
Securecookie (https://github.com/chmike/securecookie) — эффективное безопасное кодирование/декодирование файлов cookie.
Session (https://github.com/icza/session) — управление сеансами Go для веб-серверов (включая поддержку Google App Engine — GAE). Sessions
Dead simple, highly performant, highly customizable sessions service for Go HTTP servers.
Sessionup
Simple, yet effective HTTP session management and identification package.
SJWT
Simple JWT generator and parser.
Инструменты для создания блокчейнов.
CometBFT
Распределённый, устойчивый к византийским ошибкам, детерминированный механизм репликации конечного автомата. Это форк Tendermint Core, который реализует алгоритм консенсуса Tendermint.
Cosmos-SDK
Фреймворк для создания публичных блокчейнов в экосистеме Cosmos.
Gno
Комплексный набор смарт-контрактов, созданный с использованием Golang и Gnolang — детерминированного варианта Go, специально разработанного для блокчейнов.
Go-Ethereum
Официальная реализация протокола Ethereum на языке Go.
Gosemble
Основанный на Go фреймворк для разработки совместимых с Polkadot/Substrate сред выполнения.
Gossamer
Реализация узла Polkadot на Go.
Kubo
Блокчейн-фреймворк, реализованный на Go. Предоставляет адресуемое по содержимому хранилище, которое можно использовать для децентрализованного хранения в DApps. Основан на протоколе IPFS.
LND
Полная реализация узла Lightning Network.
Solana-Go
Библиотека Go для взаимодействия с Solana JSON RPC и WebSocket интерфейсами.
Tendermint
Высокопроизводительное промежуточное ПО для преобразования конечного автомата, написанного на любом языке программирования, в реплицированный конечный автомат, устойчивый к византийским ошибкам, с использованием протоколов консенсуса и блокчейна Tendermint.
Библиотеки для создания и работы с ботами.
Bot
Telegram-бот с нулевыми зависимостями и дополнительными компонентами пользовательского интерфейса.
Echotron
Элегантная и параллельная библиотека для Telegram-ботов на Go.
Ephemeral-roles
Бот Discord для управления эфемерными ролями на основе присутствия участников голосового канала.
Go-Chat-Bot
IRC, Slack & Telegram бот, написанный на Go.
Go-Joe
Универсальная библиотека ботов, вдохновлённая Hubot, но написанная на Go.
Go-Sarah
Платформа для создания бота для желаемых чат-сервисов, включая LINE, Slack, Gitter и другие.
Go-TG
Сгенерированная из официальной документации клиентская библиотека Go для доступа к API Telegram Bot, со встроенными батареями для создания сложных ботов.
Go-Tgbot
Обёртка API Telegram Bot на чистом Golang, сгенерированная из файла swagger, маршрутизатор на основе сеансов и промежуточное ПО.
Go-twitch-irc
Библиотека для написания ботов для twitch.tv.
Golang CryptoTrading Bot
Голанг-реализация консольного торгового бота для криптовалютных бирж.
Govkbot
Простая библиотека ботов VK.
Hanu
Фреймворк для написания Slack-ботов.
Kelp
Официальный торговый и маркетмейкерский бот для DEX Stellar. Работает «из коробки», написан на Golang, совместим с централизованными биржами и пользовательскими торговыми стратегиями.
Larry
Larry 🐦 — это действительно простой генератор Twitter-ботов, который публикует случайные репозитории из Github, написанные на Go.
Margelet
Фреймворк для создания Telegram-ботов. Micha — библиотека Go для Telegram Bot API.
Olivia — чат-бот, созданный с использованием искусственной нейронной сети.
Slack-bot — готовый к использованию Slack-бот для ленивых разработчиков: пользовательские команды, Jenkins, Jira, Bitbucket, GitHub и т. д.
Slacker — простая в использовании платформа для создания Slack-ботов.
Slackscot — ещё одна платформа для разработки Slack-ботов.
Tbot — сервер Telegram-бота с API, похожим на net/http.
Telebot — фреймворк Telegram-бота, написанный на Go.
Telego — библиотека API Telegram Bot для Golang с полной реализацией API один к одному.
Telegram-bot-api — простой и понятный клиент Telegram-бота.
Teleterm — команда терминала выполнения Telegram-бота.
Tenyks — сервис-ориентированный IRC-бот с использованием Redis и JSON для обмена сообщениями.
Wayback — бот для архивирования веб-страниц в Telegram, Mastodon, Slack и других платформах обмена сообщениями.
Библиотеки и инструменты помогают автоматизировать сборку.
1build — инструмент командной строки для беспроблемного управления специфичными для проекта командами.
Air — Live reload для приложений Go.
Anko — простой наблюдатель за приложениями для нескольких языков программирования.
Gaper — строит и перезапускает проект Go при его сбое или изменении некоторых наблюдаемых файлов.
Gilbert — система сборки и средство запуска задач для проектов Go.
GoB — Gradle/Maven-подобный инструмент сборки для проектов Go.
Goyek — создание конвейеров сборки в Go.
Mage — Mage — это инструмент сборки, подобный make/rake, использующий Go.
MMake — современный Make.
Realize — сборка Go с системой наблюдения за файлами и live to reload. Запуск, сборка и наблюдение за изменениями файлов с настраиваемыми путями.
Task — простая альтернатива «Make».
Taskctl — параллельный исполнитель задач.
XC — исполнитель задач с задачами, определёнными в README.md, исполняемый Markdown.
Библиотеки для создания консольных приложений и консольных интерфейсов пользователя.
AsciiGraph — пакет Go для создания облегчённых ASCII-графиков ╭┈╯ в приложениях командной строки без дополнительных зависимостей.
Aurora — ANSI-цвета терминала, поддерживающие fmt.Printf/Sprintf.
Box-cli-maker — создавайте высоконастраиваемые блоки для вашего CLI.
Bubble-table — интерактивный табличный компонент для bubbletea.
Bubbles — компоненты TUI для bubbletea.
Bubbletea — Go-фреймворк для создания терминальных приложений, основанный на архитектуре The Elm.
Cfmt — контекстуальный fmt, вдохновлённый классами цветов bootstrap.
Cfmt — простой и удобный форматированный стилизованный вывод, полностью совместимый с библиотекой fmt.
Chalk — интуитивно понятный пакет для улучшения вывода в терминал/консоль.
Colourize — библиотека Go для цветного текста ANSI в терминалах.
Crab-config-files-templating — динамическое шаблонирование конфигурационных файлов. Carapace — генератор завершения команд для spf13/cobra.
Carapace-bin — многооболочечный многокомандный завершитель аргументов.
Carapace-spec — определение простых завершений с помощью файла спецификации.
Climax — альтернативный интерфейс командной строки (CLI) с «человеческим лицом», в духе команды Go.
Clîr — простая и понятная библиотека CLI. Не зависит от других библиотек.
Cmd — расширяет стандартный пакет flag, чтобы поддерживать подкоманды и многое другое в идиоматическом стиле.
Cmdr — библиотека интерфейса командной строки в стиле POSIX/GNU, getopt-подобная.
Cobra — Commander для современных взаимодействий с CLI на Go.
Command-chain — библиотека Go для настройки и запуска цепочек команд — таких как конвейеризация в Unix-оболочках.
Commandeer — дружественные к разработке приложения CLI: настраивает флаги, значения по умолчанию и использование на основе полей структуры и тегов.
Complete — написание завершений bash на Go + завершение команд Go.
Dnote — простой блокнот командной строки с синхронизацией между несколькими устройствами.
Elvish — выразительный язык программирования и универсальная интерактивная оболочка.
Env — конфигурация среды на основе тегов для структур.
Flag — простая, но мощная библиотека анализа параметров командной строки для Go с поддержкой подкоманд.
Flaggy — надёжный и идиоматический пакет флагов с отличной поддержкой подкоманд.
Flagvar — набор типов аргументов флага для стандартного пакета flag в Go.
Go-andotp — программа CLI для шифрования/дешифрования файлов andOTP. Может использоваться как библиотека.
Go-arg — анализ аргументов на основе структуры в Go.
Go-commander — библиотека Go, упрощающая рабочий процесс CLI.
Go-flags — анализатор параметров командной строки Go.
Go-getoptions — анализатор опций Go, вдохновлённый гибкостью Perl’s GetOpt::Long.
Gocmd — библиотека Go для создания приложений командной строки.
Hiboot cli — фреймворк приложения CLI с автоматической конфигурацией и внедрением зависимостей.
Job — JOB, превращает вашу краткосрочную команду в долгосрочное задание.
Kingpin — анализатор командной строки и флагов, поддерживающий подкоманды (заменён на kong; см. ниже).
Liner — библиотека readline-like для интерфейсов командной строки на Go.
Mcli — минимальная, но очень мощная библиотека CLI для Go.
Mitchellh/cli — библиотека Go для реализации интерфейсов командной строки.
Mkideal/cli — многофункциональный и простой в использовании пакет командной строки, основанный на тегах структуры golang.
Mow.cli — библиотека Go для создания приложений CLI со сложным анализом и проверкой флагов и аргументов.
Ops — Unikernel Builder/Orchestrator.
Pflag — замена для пакета флагов Go, реализующая POSIX/GNU-стиль — флаги.
Readline — библиотека оболочки с современным и простым в использовании интерфейсом.
Sand — простой API для создания интерпретаторов и многого другого.
Sflags — генератор флагов на основе структуры для flag, urfave/cli, pflag, cobra. Кингпин и другие библиотеки.
Библиотеки для анализа конфигурации.
go-conf — простая библиотека для конфигурации приложения на основе аннотированных структур. Поддерживает чтение конфигурации из переменных среды, конфигурационных файлов и параметров командной строки.
go-ini — пакет Go, который маршалирует и демаршалирует INI-файлы.
go-ssm-config — утилита Go для загрузки параметров конфигурации из AWS SSM (Parameter Store).
go-up — простая библиотека конфигурации с рекурсивным разрешением заполнителей и без магии.
GoCfg — менеджер конфигурации со структурными тегами на основе контрактов, пользовательскими поставщиками значений, парсерами и генерацией документации. Настраиваемый, но простой.
goConfig — анализирует структуру как входные данные и заполняет поля этой структуры параметрами из командной строки, переменных среды и файла конфигурации.
godotenv — порт Go библиотеки dotenv на Ruby (загружает переменные среды из .env).
gofigure — упрощает настройку приложения Go.
GoLobby/Config — GoLobby Config — это лёгкий, но мощный менеджер конфигурации для языка программирования Go.
gone/jconf — модульная конфигурация JSON. Храните свои конфигурационные структуры вместе с кодом, который они настраивают, и делегируйте разбор подмодулям, не жертвуя полной сериализацией конфигурации.
gonfig — основанный на тегах парсер конфигурации, который загружает значения из разных провайдеров в типобезопасную структуру.
gookit/config — управление конфигурацией приложения (загрузка, получение, установка). Поддержка JSON, YAML, TOML, INI, HCL. Загрузка нескольких файлов, слияние данных при переопределении.
harvester — Harvester, простой в использовании пакет статической и динамической конфигурации, поддерживающий заполнение, переменные окружения и интеграцию с Consul.
hjson — Human JSON, формат файла конфигурации для людей. Расслабленный синтаксис, меньше ошибок, больше комментариев.
hocon — библиотека конфигурации для работы с форматом HOCON (удобный для человека набор расширений JSON), поддерживает такие функции, как переменные среды, ссылки на другие значения, комментарии и несколько файлов.
ingo — флаги сохраняются в файле конфигурации, похожем на ini.
ini — пакет Go для чтения и записи INI-файлов.
joshbetz/config — небольшая библиотека конфигурации для Go, которая анализирует переменные среды, файлы JSON и автоматически перезагружается при получении сигнала SIGHUP.
kelseyhightower/envconfig — библиотека Go для управления данными конфигурации из переменных окружения.
koanf — лёгкая расширяемая библиотека для чтения конфигурации в приложениях Go. Встроенная поддержка JSON, TOML, YAML, env, командной строки.
konf — простейший API для чтения/просмотра конфигурации из файла, env, флага и облаков (например, AWS, Azure, GCP).
konfig — компонуемая, наблюдаемая и производительная обработка конфигурации для Go в эпоху распределённой обработки.
kingpin — парсер командной строки с поддержкой произвольно сложных структур командной строки и дополнительных источников конфигурации, таких как YAML, JSON, TOML и т. д. (преемник kingpin).
mini — пакет Golang для анализа конфигурационных файлов в стиле ini.
nasermirzaei89/env — простой полезный пакет для чтения переменных среды. nfigure — конфигурация на основе тегов структуры для каждой библиотеки из командной строки (Posix и Go-стиль); поддерживает окружение, JSON, YAML.
onion — конфигурационный слой для Go, поддерживает JSON, TOML, YAML, свойства, etcd, env и шифрование с использованием PGP.
piper — оболочка Viper с наследованием конфигурации и генерацией ключей.
sonic — невероятно быстрая библиотека сериализации и десериализации JSON.
store — облегчённый менеджер конфигурации для Go.
swap — рекурсивное создание и настройка структур на основе среды сборки. Поддерживает YAML, TOML, JSON и env.
typenv — минималистичная библиотека переменных окружения с нулевой зависимостью и типизацией.
uConfig — лёгкая, расширяемая система управления конфигурацией с нулевыми зависимостями.
viper — Go-конфигурация с клыками.
xdg — реализация спецификации XDG Base Directory Specification и пользовательских каталогов XDG в Go.
yamagiconf — «безопасное подмножество» YAML для конфигураций Go.
Инструменты для непрерывной интеграции.
abstruse — распределённая платформа CI.
Bencher — набор инструментов непрерывного бенчмаркинга, предназначенный для выявления регрессий производительности в CI.
CDS — корпоративная платформа автоматизации CI/CD и DevOps с открытым исходным кодом.
dot — минимальная локальная система непрерывной интеграции, использующая Docker для параллельного выполнения заданий на этапах.
drone — платформа непрерывной интеграции на базе Docker, написанная на Go.
go-beautiful-html-coverage — действие GitHub для отслеживания покрытия кода в запросах на вытягивание с красивым предварительным просмотром HTML бесплатно.
go-fuzz-action — использование встроенного тестирования методом перебора в действиях GitHub.
go-semver-release — автоматизация семантического версионирования репозиториев Git.
go-test-coverage — инструмент и действие GitHub, которое сообщает о проблемах, когда покрытие тестами ниже установленного порога.
gomason — тестирование, сборка, подписание и публикация двоичных файлов Go из чистой рабочей области.
gotestfmt — вывод go test для людей.
goveralls — интеграция Go для системы непрерывного отслеживания покрытия кода Coveralls.io.
muffet — быстрый веб-сайт в Go, проверяющий ссылки, см. альтернативы.
overalls — мультипакетный проект go с coverprofile для таких инструментов, как goveralls.
roveralls — инструмент рекурсивного тестирования покрытия.
woodpecker — Woodpecker — это общественная вилка системы Drone CI.
⬆ back to top](https://github.com/muir/nfigure)
Библиотеки для препроцессинга CSS-файлов.
gcss — чистый CSS-препроцессор Go.
go-libsass — обёртка Go для 100% совместимого с Sass проекта libsass. Benthos — мост потоковой передачи сообщений между различными протоколами.
CloudQuery — высокопроизводительная платформа интеграции данных ETL с подключаемой архитектурой.
Omniparser — универсальная библиотека ETL, которая анализирует текстовый ввод (CSV/txt/JSON/XML/EDI/X12/EDIFACT и т. д.) в потоковом режиме и преобразует данные в вывод JSON с использованием управляемой данными схемы.
См. также Базы данных для более сложных хранилищ ключ-значение и Деревья для дополнительных упорядоченных реализаций карт.
interface{}
в качестве ключа и автоматическое масштабирование сегментов.— Конкретный язык исходного текста определить не удалось.
Перевод на русский язык:
bleve (https://github.com/blevesearch/bleve) — современная библиотека индексации текста для Go;
go-adaptive-radix-tree (https://github.com/plar/go-adaptive-radix-tree) — реализация Adaptive Radix Tree на Go;
go-edlib (https://github.com/hbollon/go-edlib) — строка Go. Кэширующие библиотеки и базы данных, реализованные на Go
go-mcache — библиотека для хранения данных в оперативной памяти. Поддерживает указатели.
gocache — комплексная библиотека кэширования с несколькими хранилищами (память, memcache, redis), возможностью объединения, загрузки, метриками кэша и многим другим.
gocache — библиотека кэширования без гонок данных с высокой производительностью и функцией автоматического удаления устаревших данных.
groupcache — библиотека кеширования и заполнения кеша, предназначенная для замены memcached во многих случаях.
icache — высокопроизводительный, универсальный, потокобезопасный пакет кэша с нулевой зависимостью.
imcache — универсальная библиотека кэша в оперативной памяти с поддержкой истечения срока действия, скользящего истечения срока действия, ограничения максимального количества записей, обратных вызовов вытеснения и сегментирования.
nscache — фреймворк кэширования на Go, поддерживающий несколько драйверов источников данных.
otter — высокопроизводительный кеш без блокировок для Go. Во много раз быстрее, чем Ristretto и аналогичные решения.
pocache — минимальный пакет кэширования, ориентированный на упреждающую оптимистичную стратегию кэширования.
sturdyc — библиотека кэширования с расширенными функциями параллелизма, разработанная для повышения надёжности и производительности приложений с интенсивным вводом-выводом.
theine — высокопроизводительный почти оптимальный кэш в оперативной памяти с проактивным истечением срока действия TTL и дженериками.
timedmap — карта с парами ключ-значение с истекающим сроком действия.
ttlcache — кэш в оперативной памяти со сроком действия элементов и дженериками.
ttlcache — хранилище пар ключ-значение в оперативной памяти с TTL для каждой записи.
Базы данных, реализованных на Go:
badger — быстрое хранилище ключей и значений в Go.
bbolt — встроенная база данных ключ/значение для Go.
Bitcask — встраиваемая, постоянная и быстрая база данных «ключ-значение» (KV), написанная на чистом Go с предсказуемой производительностью чтения/записи, низкой задержкой и высокой пропускной способностью благодаря битовому расположению на диске (LSM+WAL).
buntdb — быстрая, встраиваемая база данных «ключ/значение» в оперативной памяти для Go с настраиваемым индексированием и пространственной поддержкой.
clover — лёгкая документоориентированная база данных NoSQL, написанная на чистом Golang.
cockroach — масштабируемый, геореплицированный транзакционный датастор.
Coffer — простая ACID база данных «ключ-значение», поддерживающая транзакции.
column — высокопроизводительное, столбцовое, встраиваемое хранилище в оперативной памяти с растровым индексированием и транзакциями.
CovenantSQL — база данных SQL на блокчейне.
Databunker — сервис хранения личных данных (PII), созданный в соответствии с GDPR и CCPA.
dgraph — масштабируемая, распределённая, низкозатратная, высокопроизводительная графовая база данных.
diskv — самодельный дисковый магазин «ключ-значение».
dolt — это Git для данных.
dtf — распределённый менеджер транзакций. Поддержка XA, TCC, SAGA, надёжных сообщений.
eliasdb — независимая от зависимостей транзакционная графовая база данных с REST API, поиском по фразам и языком запросов, подобным SQL.
godis — высокопроизводительный сервер и кластер Redis, реализованный на Go.
goleveldb — реализация ключевой/значной базы данных LevelDB в Go. Системы управления базами данных:
Hare — простая система управления базой данных, в которой каждая таблица хранится в виде текстового файла с разделением JSON по строкам.
ImmuDB — лёгкая и высокоскоростная неизменяемая база данных для систем и приложений, написанных на Go.
InfluxDB — масштабируемое хранилище данных для метрик, событий и аналитики в реальном времени.
LedisDB — высокопроизводительная база данных NoSQL, подобная Redis, основанная на LevelDB.
Levigo — оболочка Go для LevelDB.
LibraDB — простая база данных с менее чем 1000 строк кода для обучения.
LinDB — масштабируемая, высокопроизводительная и высокодоступная распределённая база данных временных рядов.
LotusDB — быстрая база данных k/v, совместимая с LSM и B+tree.
Milvus — векторная база данных для управления встраиванием, аналитики и поиска.
Moss — простой механизм хранения ключей и значений LSM, полностью написанный на Go.
NutsDB — простое, быстрое, встраиваемое, постоянное хранилище ключей и значений, написанное на чистом Go. Поддерживает полностью сериализуемые транзакции и множество структур данных, таких как список, набор, отсортированный набор.
Objectbox-Go — высокопроизводительная встроенная объектная база данных (NoSQL) с API Go.
Pebble — база данных типа ключ-значение, вдохновлённая RocksDB/LevelDB, на языке Go.
Piladb — облегчённый RESTful движок базы данных на основе стековых структур данных.
Pogreb — встроенное хранилище ключей и значений для рабочих нагрузок с интенсивным чтением.
Prometheus — система мониторинга и база данных временных рядов.
Pudge — быстрое и простое хранилище ключей и значений, использующее стандартную библиотеку Go.
Redka — Redis, переписанный с использованием SQLite.
RoseDB — встроенная база данных k-v на основе LSM+WAL, поддерживает строки, списки, хэши, наборы, zset.
Rotom — крошечный сервер Redis, созданный с помощью Golang, совместимый с протоколами RESP.
RQLite — облегчённая, распределённая реляционная база данных, построенная на SQLite.
TempDB — хранилище ключей и значений для временных элементов.
TiDB — распределённая SQL-база данных, вдохновлённая дизайном Google F1.
Tiedot — ваша база данных NoSQL на базе Golang.
UnitDB — быстрая временная база данных для IoT, приложений обмена сообщениями в реальном времени. Доступ к unitdb с pubsub через TCP или веб-сокет с помощью приложения github.com/unit-io/unitd.
Vasto — распределённое высокопроизводительное хранилище ключей и значений. На диске. Возможная согласованность. HA. Возможность расти или уменьшаться без прерывания обслуживания.
VictoriaMetrics — быстрая, ресурсоэффективная и масштабируемая база данных временных рядов с открытым исходным кодом. Может использоваться в качестве долгосрочного удалённого хранилища для Prometheus. Поддерживает PromQL.
Миграция схемы базы данных:
Atlas — инструментарий базы данных. CLI, разработанный для того, чтобы помочь компаниям лучше работать со своими данными.
Avro — обнаружение схем SQL и их преобразование в схемы AVRO. Запрос записей SQL в байты AVRO.
Bytebase — безопасное изменение схемы базы данных и контроль версий для команд DevOps.
Darwin — библиотека эволюции схемы базы данных для Go.
DBMate — лёгкий, независимый от фреймворка инструмент миграции базы данных. Инструменты для работы с базами данных
go-fixtures — Django style fixtures для Golang's excellent built-in database/sql library.
go-pg-migrate — CLI-friendly пакет для управления миграциями go-pg.
go-pg-migrations — пакет Go, помогающий писать миграции с помощью go-pg/pg.
goavro — пакет Go для кодирования и декодирования данных Avro.
godfish — менеджер миграций баз данных, работает с нативным языком запросов. Поддерживает cassandra, mysql, postgres, sqlite3.
goose — инструмент для работы с миграциями баз данных. Можно управлять развитием базы данных с помощью создания инкрементальных SQL или скриптов на Go.
gorm-seeder — простой сеялка базы данных для ORM Gorm.
gormigrate — помощник по миграции схемы базы данных для GORM ORM.
libschema — определение миграций отдельно в каждой библиотеке. Миграции для библиотек с открытым исходным кодом. MySQL & PostgreSQL.
migrate — миграции баз данных. CLI и библиотека Golang.
migrator — простая библиотека миграции баз данных Go.
migrator — MySQL-мигратор баз данных, предназначенный для запуска миграций для ваших функций и управления обновлением схемы базы данных с интуитивно понятным кодом Go.
schema — библиотека для встраивания миграций схем для баз данных, совместимых с database/sql, в ваши двоичные файлы Go.
skeema — система управления чистыми схемами SQL для MySQL с поддержкой шардинга и внешних онлайн-инструментов изменения схем.
soda — миграция баз данных, создание, ORM и т. д. для MySQL, PostgreSQL и SQLite.
sql-migrate — инструмент миграции баз данных. Позволяет встраивать миграции в приложение с помощью go-bindata.
sqlize — генератор миграций баз данных. Позволяет генерировать миграцию SQL из модели и существующего SQL путём их сравнения.
Инструменты для работы с базой данных ClickHouse
chproxy — HTTP-прокси для базы данных ClickHouse.
clickhouse-bulk — собирает небольшие вставки и отправляет большие запросы на серверы ClickHouse.
Другие инструменты для работы с базами данных
dbench — инструмент для тестирования производительности баз данных с поддержкой нескольких баз данных и скриптов.
db — быстрый генератор данных, который создаёт CSV-файлы из сгенерированных реляционных данных.
dynago — упрощает работу с AWS DynamoDB.
gatewayd — облачный шлюз баз данных и фреймворк для создания приложений, управляемых данными. Как API-шлюзы, но для баз данных.
go-mysql — набор инструментов Go для обработки протокола MySQL и репликации.
hasql — библиотека доступа к многоузловым установкам SQL-баз данных.
octillery — пакет Go для сегментирования баз данных (поддерживает все ORM или необработанный SQL).
onedump — резервное копирование баз данных от разных драйверов в разные места назначения одной командой и конфигурацией.
pg_timetable — расширенное планирование для PostgreSQL.
pgweb — веб-браузер для баз данных PostgreSQL.
prep — использование подготовленных операторов SQL без изменения кода.
pREST — упрощение и ускорение разработки, мгновенная работа в реальном времени, высокая производительность любого приложения на базе Postgres. Kivik предоставляет общую клиентскую библиотеку Go и GopherJS для CouchDB, PouchDB и аналогичных баз данных.
Библиотеки для работы с датами и временем.
Tarmac — фреймворк для написания функций, микросервисов или монолитов с использованием WebAssembly.
Temporal — система надёжного выполнения кода, которая делает его устойчивым к сбоям и простым в использовании.
Torrent — пакет клиента BitTorrent.
trpc-go — реализация tRPC на языке Go, это подключаемая высокопроизводительная RPC-инфраструктура.
Динамический DNS
Инструменты для обновления динамических DNS-записей:
DDNS — персональный клиент DDNS с Digital Ocean Networking DNS в качестве бэкенда.
Dyndns — фоновый процесс Go для регулярного автоматического отслеживания IP-адреса и обновления (одного или нескольких) динамических DNS-записей для доменов Google при изменении адреса.
GoDNS — инструмент динамического DNS-клиента, поддерживает DNSPod & HE.net, написан на Go.
Электронная почта
Библиотеки и инструменты для создания и отправки электронной почты:
Chasquid — SMTP-сервер, написанный на Go.
Douceur — CSS-инлайнер для ваших HTML-писем.
Email — надёжная и гибкая библиотека электронной почты для Go.
Email-verifier — библиотека Go для проверки электронной почты без отправки каких-либо писем.
go-dkim — DKIM-библиотека для подписи и проверки электронной почты.
go-email-normalizer — библиотека Golang для предоставления канонического представления адреса электронной почты.
go-email-validator — модульный валидатор электронной почты для синтаксиса, одноразовых номеров, SMTP и т. д.
go-imap — IMAP-библиотека для клиентов и серверов.
go-mail — простая библиотека Go для отправки писем.
go-message — потоковая библиотека для формата интернет-сообщений и почтовых сообщений.
go-premailer — инлайн-стилизация для HTML-почты в Go.
go-simple-mail — очень простой пакет для отправки электронных писем с SMTP Keep Alive и двумя таймаутами: Connect и Send.
Hectane — лёгкий SMTP-клиент, предоставляющий HTTP API.
Hermes — пакет Golang, который генерирует чистые, отзывчивые HTML-письма.
Maddy — универсальный (SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE) почтовый сервер.
Mailchain — отправка зашифрованных писем на блокчейн-адреса, написано на Go.
mailgun-go — библиотека Go для отправки почты с помощью API Mailgun.
MailHog — тестирование электронной почты и SMTP с веб-интерфейсом и интерфейсом API.
Mailpit — инструмент тестирования электронной почты и SMTP для разработчиков.
mailx — библиотека Mailx упрощает отправку электронной почты через SMTP. Это улучшение стандартной библиотеки golang net/smtp.
mox — современный полнофункциональный защищённый почтовый сервер для малообслуживаемых, автономных почтовых сервисов.
SendGrid — библиотека SendGrid для отправки электронной почты.
smtp — протокол состояния машины SMTP-сервера.
smtpmock — лёгкий настраиваемый многопоточный поддельный SMTP-сервер. Имитирует любое поведение SMTP для вашей тестовой среды.
truemail-go — настраиваемый валидатор/верификатор электронной почты Golang. Проверяет электронную почту с помощью регулярных выражений, DNS, SMTP и многого другого. Языки
Внедрение других языков в код Go.
Библиотеки для обработки ошибок.
Библиотеки для работы с файлами и файловыми системами.
afero — система абстракции файловой системы для Go.
AFS — абстрактное хранилище файлов (mem, scp, zip, tar, cloud: s3, gs) для Go.
baraka — библиотека для удобной обработки HTTP-загрузок файлов.
bigfile — система передачи файлов, поддержка управления файлами с помощью HTTP API, вызовов RPC и FTP-клиента.
checksum — вычисление дайджеста сообщений, таких как MD5, SHA256, SHA1, CRC или BLAKE2s, для больших файлов.
copy — копирование каталога рекурсивно.
flop — библиотека файловых операций, которая стремится отразить функциональность GNU cp.
gdu — анализатор использования диска с консольным интерфейсом.
go-csv-tag — загрузка CSV-файла с использованием тегов.
go-decent-copy — копирование файлов для людей.
go-exiftool — привязки Go для ExifTool, известной библиотеки, используемой для извлечения как можно большего количества метаданных (EXIF, IPTC и т. д.) из файлов (изображения, PDF, офисные документы и т. д.).
go-gtfs — загрузка файлов GTFS в Go.
go-wkhtmltopdf — пакет для преобразования HTML-шаблона в файл PDF.
goes — кроссплатформенный инструмент синхронизации файлов в реальном времени.
gut/yos — простой и надёжный пакет для файловых операций, таких как копирование/перемещение/различие/список файлов, каталогов и символических ссылок.
higgs — крошечная кроссплатформенная библиотека Go для скрытия/отображения файлов и каталогов.
iso9660 — пакет для чтения и создания образов дисков ISO9660.
notify — библиотека уведомлений о событиях файловой системы с простым API, похожим на os/signal.
opc — загрузка файлов Open Packaging Conventions (OPC) для Go.
parquet — чтение и запись файлов Parquet.
pathtype — обработка путей как собственного типа вместо использования строк.
pdfcpu — процессор PDF.
skywalker — пакет, позволяющий легко перемещаться по файловой системе одновременно.
todotxt — библиотека Go для файлов todo.txt Джины Трапани, поддерживает синтаксический анализ и манипулирование списками задач в формате todo.txt.
vfs — подключаемый, расширяемый и основанный на мнении набор... Full map support
formam — декодирует значения форм в структуру.
forms — библиотека, не зависящая от фреймворка, для анализа и проверки данных форм/JSON, поддерживает многочастные формы и файлы.
gbind — привязывает данные к любому значению Go. Может использовать встроенные и пользовательские возможности привязки выражений; поддерживает проверку данных.
gorilla/csrf — защита CSRF для веб-приложений и сервисов Go.
httpin — декодирует HTTP-запрос в пользовательскую структуру, включая строку запроса, формы, заголовки HTTP и т. д.
nosurf — промежуточное ПО для защиты от CSRF для Go.
qs — модуль Go для кодирования структур в параметры URL-запроса.
queryparam — декодирует url.Values в полезные значения структуры стандартных или пользовательских типов.
Функциональное программирование
Пакеты для поддержки функционального программирования в Go.
Разработка игр
Отличные библиотеки для разработки игр.
Raylib-go (raylib-go) — Go-обвязки для библиотеки raylib, простой и удобной в использовании библиотеки для изучения программирования видеоигр.
Termloop (termloop) — игровой движок на основе терминала для Go, построенный на базе Termbox.
Tile (tile) — ориентированная на данные и дружественная к кэшу 2D-библиотека сеток (TileMap), включает поиск пути, наблюдателей и импорт/экспорт.
Инструменты, генерирующие код Go.
Инструменты для компиляции Go на другие языки.
Goroutines
Инструменты управления и работы с Goroutines.
conc
— это ваш набор инструментов для структурированной параллельности в go, который делает общие задачи проще и безопаснее.sync.WaitGroup
с обработкой ошибок и контролем параллелизма.Gowl — инструмент для управления процессами и мониторинга процессов одновременно. Бесконечный пул рабочих позволяет контролировать пул и процессы, а также отслеживать их состояние.
Goworker — фоновый рабочий на основе Go.
GOWP — пул горутин с ограничением параллелизма.
Gpool — управляет изменяемым пулом горутин, учитывающих контекст, чтобы ограничить параллелизм.
Grpool — облегчённый пул горутин.
Hands — контроллер процессов, используемый для контроля выполнения и стратегий возврата нескольких горутин.
Hunch — предоставляет такие функции, как All, First, Retry, Waterfall и т. д., которые делают асинхронное управление потоком более интуитивным.
Kyoo — обеспечивает неограниченную очередь заданий и пулы одновременных рабочих.
Errgroup — альтернатива sync/errgroup, ограниченная пулом из N рабочих горутин.
Nursery — структурированный параллелизм в Go.
Oversight — полная реализация деревьев супервизора Erlang.
Parallel-fn — запускает функции параллельно.
Pond — минималистичный и высокопроизводительный пул горутин, написанный на Go.
Pool — ограниченный потребительский пул горутин или неограниченный пул горутин для упрощения обработки и отмены горутин.
Rill — набор инструментов Go для чистого, компонуемого параллелизма на основе каналов.
Routine — это ThreadLocal для библиотеки Go. Он инкапсулирует и предоставляет некоторые простые в использовании, неконкурентные, высокопроизводительные интерфейсы доступа к контексту горутины, которые могут помочь вам более изящно получить доступ к информации о контексте сопрограммы.
Semaphore — реализация шаблона семафора с тайм-аутом операций блокировки/разблокировки на основе канала и контекста.
STL — программные транзакционные блокировки на основе механизма управления параллелизмом программной транзакционной памяти (STM).
Threadpool — реализация пула потоков в Golang.
Tunny — пул горутин для Golang.
Worker-pool — простой асинхронный пул работников goworker.
Workerpool — пул горутин, который ограничивает параллелизм выполнения задач, а не количество поставленных в очередь задач.
Библиотеки для создания приложений с графическим интерфейсом пользователя.
Инструментарии
App — пакет для создания приложений на GO, HTML и CSS. Поддерживает: MacOS, Windows в разработке.
Cimgui-go — автоматически сгенерированная оболочка Go для Dear ImGui через cimgui.
Cogent Core — фреймворк для создания 2D- и 3D-приложений, работающих на macOS, Windows, Linux, iOS, Android и в Интернете.
DarwinKit — создание собственных приложений macOS с использованием Go.
Energy — кроссплатформенный инструментарий на основе LCL (Native System UI Control Library) и CEF (Chromium Embedded Framework) (Windows/macOS/Linux). Fyne — кроссплатформенные нативные графические интерфейсы пользователя (GUI), разработанные для Go на основе Material Design. Поддерживает Linux, macOS, Windows, BSD, iOS и Android.
Gio — библиотека для написания кроссплатформенных графических интерфейсов пользователя в режиме реального времени на Go. Gio поддерживает все основные платформы: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD и WebAssembly.
Go-gtk — привязки Go для GTK.
Go-sciter — привязки Go для Sciter: встраиваемый движок HTML/CSS/script для разработки современных настольных пользовательских интерфейсов. Кроссплатформенный.
Goey — набор инструментов для кроссплатформенного пользовательского интерфейса, агрегирующий GTK, Cocoa, Windows API для Windows / Linux / Mac.
Goradd/html5tag — библиотека для вывода тегов HTML5.
Gotk3 — привязки Go для GTK3.
Gowd — быстрое и простое создание настольных пользовательских интерфейсов с использованием GO, HTML, CSS и NW.js. Кроссплатформенность.
Qt — привязка Qt для Go (поддержка Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi).
Spot — реактивный кроссплатформенный инструментарий для создания настольных графических интерфейсов.
Ui — библиотека графического интерфейса для Go, работающая на разных платформах.
Unison — унифицированный инструментарий графического пользовательского опыта для настольных приложений Go. Поддерживаются macOS, Windows и Linux.
Wails — приложения для Mac, Windows и Linux с графическим интерфейсом HTML с использованием встроенного рендерера HTML ОС.
Walk — комплект библиотек для приложений Windows на Go.
Webview — окно веб-просмотра с кроссплатформенными возможностями и простыми двусторонними привязками JavaScript (Windows / macOS / Linux).
AppIndicator Go — привязки Go для библиотеки libappindicator3 C.
Gosx-notifier — библиотека уведомлений для рабочего стола OSX на Go.
Mac-activity-tracker — библиотека OSX для уведомления о любой (подключаемой) активности на вашем компьютере.
Mac-sleep-notifier — уведомления о переходе в спящий режим и выходе из него на OSX в Golang.
Robotgo — система автоматизации графического интерфейса пользователя на Go Native, кроссплатформенная. Управление мышью, клавиатурой и прочим.
Systray — кроссплатформенная библиотека Go для размещения значка и меню в области уведомлений.
Trayhost — кроссплатформенная библиотека Go для размещения иконки на панели задач операционной системы хоста.
Zenity — кроссплатформенная библиотека и CLI на Go для создания простых диалогов, которые графически взаимодействуют с пользователем.
Библиотеки, инструменты и учебные пособия для взаимодействия с аппаратным обеспечением.
Arduino-cli — официальный Arduino CLI и библиотека. Может работать автономно или быть включён в более крупные проекты Go.
Emgo — язык, похожий на Go, для программирования встраиваемых систем (например, микроконтроллеры STM32).
Ghw — библиотека обнаружения и проверки оборудования Golang.
Go-osc — привязки Open Sound Control (OSC) для Go.
Go-rpio — GPIO для Go, не требует cgo.
Goroslib — библиотека Robot Operating System (ROS) для Go.
Joystick — опрошенный API для чтения состояния подключённого джойстика.
Sysinfo — чистая библиотека Go, предоставляющая информацию о системе, ядре и оборудовании Linux OS.
Библиотеки для работы с изображениями.
Bild — коллекция алгоритмов обработки изображений в чистом виде. - bimg — небольшой пакет для быстрой и эффективной обработки изображений с использованием libvips.
В тексте упоминаются библиотеки и инструменты для работы с форматами изображений, библиотеки для программирования устройств интернета вещей (IoT), а также библиотеки для планирования заданий.
В запросе нет информации о том, как использовать эти инструменты. Для получения более подробных сведений рекомендуется обратиться к документации или примерам использования каждого инструмента.
Примечание: в запросе есть ссылки на ресурсы GitHub. В ответе они не представлены, поскольку не являются частью исходного текста. ↑ back to top
Библиотеки для машинного обучения.
Библиотеки, реализующие системы обмена сообщениями.
Uniqush-Push — унифицированный push-сервис с поддержкой Redis для серверных уведомлений на мобильные устройства.
Watermill — эффективная работа с потоками сообщений. Разработка приложений, управляемых событиями, поддержка event sourcing, RPC через сообщения, саги. Может использовать традиционные реализации pub/sub, такие как Kafka или RabbitMQ, а также HTTP или MySQL binlog.
Zmq4 — интерфейс Go к ZeroMQ версии 4. Также доступен для версий 3 и 2.
Microsoft Office
Unioffice — чистая библиотека Go для создания и обработки документов Microsoft Word (.docx), Excel (.xlsx) и PowerPoint (.pptx).
Excel
Библиотеки для работы с Microsoft Excel.
Excelize — библиотека Golang для чтения и записи файлов Microsoft Excel™ (XLSX).
Exl — привязка Excel к структуре, написанной на Go. (Поддерживает только Go1.18+).
Go-excel — простой и лёгкий считыватель, который читает Excel как таблицу.
Goxlsxwriter — привязки Golang к libxlsxwriter для записи файлов XLSX (Microsoft Excel).
Xlsx — библиотека для упрощения чтения формата XML, используемого последними версиями Microsoft Excel в программах Go.
Xlsx — быстрый и безопасный способ чтения/обновления существующих файлов Microsoft Excel в программах Go.
Word
Библиотеки для работы с Microsoft Word.
Godocx — библиотека для чтения и записи файлов Microsoft Word (Docx).
Разное
Внедрение зависимостей
Библиотеки для внедрения зависимостей.
Alice — аддитивный контейнер внедрения зависимостей для Golang.
Autowire — внедрение зависимостей с использованием дженериков и рефлексии.
Boot-go — компонентная разработка с внедрением зависимостей и использованием рефлексий для разработчиков Go.
Componego — фреймворк внедрения зависимостей на основе компонентов, позволяющий динамически заменять зависимости без дублирования кода в тестах.
Cosban/di — инструмент для подключения зависимостей, основанный на генерации кода.
Di — контейнер внедрения зависимостей для языка программирования Go.
Dig — набор инструментов внедрения зависимостей, основанных на рефлексии, для Go.
Dingo — инструментарий внедрения зависимостей для Go, основанный на Guice.
Do — фреймворк внедрения зависимостей, основанный на дженериках.
Fx — фреймворк приложения на основе внедрения зависимостей для Go (построен поверх dig).
Gocontainer — простой контейнер внедрения зависимостей.
Goioc/di — контейнер внедрения зависимостей в стиле Spring.
Golobby/Container — Golobby Container — это лёгкий, но мощный контейнер внедрения зависимостей IoC для языка программирования Go.
Gontainer — контейнер внедрения зависимостей от NVIDIA для проектов Go.
Gontainer/gontainer — основанный на YAML контейнер внедрения зависимостей для GO. Поддерживает области зависимостей и автоматическое обнаружение циклических зависимостей. Gontainer является безопасным для параллельного выполнения.
Google/wire — автоматизированная инициализация в Go.
HnH/di — библиотека контейнеров DI с акцентом на чистый API и... Гибкость
Структура проекта Неофициальный набор шаблонов для структурирования проектов.
Строки Библиотеки для работы со строками.
{}
, в формате строк.strutil — набор утилит для работы со строками.
sttr — кроссплатформенное приложение с интерфейсом командной строки для выполнения различных операций над строками.
xstrings — коллекция полезных функций для работы со строками, портированных из других языков.
Эти библиотеки были помещены сюда, потому что ни одна из других категорий не подошла.
anagent — минималистичный подключаемый обработчик evloop/timer в Golang с внедрением зависимостей.
antch — быстрый, мощный и расширяемый фреймворк для веб-сканирования и парсинга.
archiver — библиотека и команда для создания и извлечения архивов .zip и .tar.gz.
autoflags — пакет Go для автоматического определения флагов командной строки на основе полей структуры.
avgRating — вычисление среднего балла и рейтинга на основе уравнения Уилсона.
banner — добавление красивых баннеров в приложения на Go.
base64Captcha — поддержка base64captch для цифровых, числовых, буквенных, арифметических, аудио и цифробуквенных капч.
basexx — преобразование в и из строк цифр в различных системах счисления.
battery — кроссплатформенная нормализованная библиотека информации о батарее.
bitio — высокооптимизированные битовые Reader и Writer для Go.
browscap_go — библиотека GoLang для проекта Browser Capabilities.
captcha — простой в использовании API для генерации капчи.
common — библиотека для серверной инфраструктуры.
conv — быстрые и интуитивно понятные преобразования между типами Go.
datacounter — счётчики Go для читателей/писателей/http.ResponseWriter.
faker — генератор поддельных данных.
ffmt — улучшение отображения данных для людей.
gatus — автоматизированная панель мониторинга работоспособности сервисов.
go-commandbus — лёгкая и подключаемая шина команд для Go.
go-commons-pool — общий пул объектов для Golang.
go-openapi — набор пакетов для анализа и использования схем open-api.
go-resiliency — шаблоны отказоустойчивости для golang.
go-unarr — библиотека распаковки для архивов RAR, TAR, ZIP и 7z.
gofakeit — генератор случайных данных, написанный на go.
gommit — анализ сообщений git commit на соответствие определённым шаблонам.
gopsutil — кроссплатформенный пакет для получения информации об использовании процессов и системы (CPU, память, диски и т. д.).
gosh — предоставляет обработчик статистики Go, структуру, метод измерения.
gosms — собственный локальный SMS-шлюз на Go, который можно использовать для отправки SMS.
gotoprom — типобезопасная библиотека-обёртка для построения метрик для официального клиента Prometheus.
gountries — пакет, предоставляющий данные о странах и регионах.
gtree — предоставление CLI, пакета и веб для вывода дерева и создания каталогов. Из Markdown или программно.
Библиотеки для работы с человеческими языками.
См. также Обработка текста и Анализ текста.
detectlanguage — клиент API определения языка Go. Поддерживает пакетные запросы, определение коротких фраз или отдельных слов.
getlang — быстрый пакет обнаружения естественного языка.
guesslanguage — функции для определения естественного языка текста Unicode.
lingua-go — точная библиотека обнаружения естественных языков, подходящая как для длинных, так и для коротких текстов. Поддерживает обнаружение нескольких языков в смешанном тексте.
whatlanggo — пакет обнаружения естественных языков для Go. Поддерживает 84 языка и 24 сценария (системы письма, например, латиница, кириллица и др.). Морфологический анализ
go-stem — реализация алгоритма стемминга Портера.
go2vec — функции чтения и утилиты для векторных представлений слов word2vec.
golibstemmer — привязки Go к библиотеке snowball libstemmer, включая Портер 2.
gosentiwordnet — анализатор тональности с использованием лексикона sentiwordnet на языке Go.
govader — реализация Go анализа тональности VADER.
govader-backend — микросервисная реализация Govader.
kagome — морфологический анализатор на чистом Go, написанный на японском языке.
libtextcat — привязка Cgo для библиотеки C libtextcat. Гарантированная совместимость с версией 2.2.
nlp — извлечение значений из строк и заполнение ваших структур с помощью nlp.
nlp — библиотека обработки естественного языка Go, поддерживающая LSA (латентно-семантический анализ).
paicehusk — реализация на Golang алгоритма стемминга Paice/Husk.
porter — это довольно простой порт реализации на C алгоритма стемминга Мартина Портера.
porter2 — очень быстрый стеммер Портер 2.
RAKE.go — порт на Go алгоритма быстрого автоматического извлечения ключевых слов (RAKE).
snowball — стемминг Snowball (обёртка cgo) для Go. Предоставляет функциональность извлечения основ слов Snowball native.
spaGO — самодостаточная библиотека машинного обучения и обработки естественного языка в Go.
spelling-corrector — корректор орфографии для испанского языка или создание собственного.
Слагфайеры
Токенизаторы
Перевод
ctx18n — контекстно-зависимый i18n с коротким и лаконичным API. Поддержка плюрализации, интерполяции и fs.FS. Определения локалей YAML основаны на Rails i18n (https://guides.rubyonrails.org/i18n.html).
go-i18n (https://github.com/nicksnyder/go-i18n/) — пакет и сопутствующий инструмент для работы с локализованным текстом.
go-mystem (https://github.com/dveselov/mystem) — привязки CGo к Yandex.Mystem — анализатору русской морфологии.
go-pinyin (https://github.com/mozillazg/go-pinyin) — конвертер китайских иероглифов в пиньинь.
go-words (https://github.com/saleh-rahimzadeh/go-words) — библиотека ресурсов слов и таблиц для проектов Golang.
gotext (https://github.com/leonelquinteros/gotext) — утилиты GNU gettext для Go.
iuliia-go (https://github.com/mehanizm/iuliia-go) — транслитерация кириллицы в латиницу всеми возможными способами.
spreak (https://github.com/vorlif/spreak) — гибкая библиотека перевода и гуманизации для Go, основанная на концепциях gettext.
t (https://github.com/youthlin/t) — ещё один пакет i18n для golang, который следует стилю GNU gettext и поддерживает файлы .po/.mo: t.T (gettext), t.N (ngettext) и т. д. Также содержит инструмент cmd xtemplate, который может извлекать сообщения в виде файла pot из шаблона text/html.
Библиотеки для работы с различными уровнями сети.
arp (https://github.com/mdlayher/arp) — пакет arp реализует протокол ARP, описанный в RFC 826.
buffstreams (https://github.com/stabbycutyou/buffstreams) — упрощённый потоковый протокол данных по протоколу TCP.
canopus (https://github.com/zubairhamed/canopus) — реализация CoAP Client/Server (RFC 7252).
cidranger (https://github.com/yl2chen/cidranger) — быстрый поиск IP-адресов по CIDR для Go.
cloudflared (https://github.com/cloudflare/cloudflared) — клиент Cloudflare Tunnel (ранее Argo Tunnel).
dhcp6 (https://github.com/mdlayher/dhcp6) — пакет dhcp6 реализует сервер DHCPv6, как описано в RFC 3315.
dns (https://github.com/miekg/dns) — библиотека Go для работы с DNS.
dnsmonster (https://github.com/mosajjal/dnsmonster) — пассивный фреймворк для сбора и мониторинга DNS.
easytcp (https://github.com/DarthPestilane/easytcp) — облегчённая структура TCP, написанная на Go (Golang), построенная с маршрутизатором сообщений. EasyTCP помогает быстро и легко создать TCP-сервер.
ether (https://github.com/songgao/ether) — кроссплатформенный пакет Go для отправки и получения кадров Ethernet.
ethernet (https://github.com/mdlayher/ethernet) — пакет ethernet реализует маршалинг и демаршалинг кадров IEEE 802.3 Ethernet II и тегов VLAN IEEE 802.1Q.
event (https://github.com/cheng-zhongliang/event) — простая библиотека уведомлений о событиях ввода-вывода, написанная на Golang.
fasthttp (https://github.com/valyala/fasthttp) — пакет fasthttp представляет собой быструю реализацию HTTP для Go, до 10 раз быстрее, чем net/http.
fortio (https://github.com/fortio/fortio) — библиотека нагрузочного тестирования и инструмент командной строки, продвинутый эхо-сервер и веб-интерфейс. Позволяет указать нагрузку запросов в секунду и записывать гистограммы задержки и другие полезные статистические данные, а также графически их отображать. Tcp, Http, gRPC.
ftp (https://github.com/jlaffaye/ftp) — пакет ftp реализует FTP-клиент, как описано в RFC 959.
ftpserverlib (https://github.com/fclairamb/ftpserverlib) — полнофункциональный FTP-сервер.
fullproxy (https://github.com/shoriwe/fullproxy) — полностью функциональный инструментарий прокси и поворота с возможностью настройки сценариев и демонов. СОКС5, HTTP, raw ports и протоколы обратного прокси.
fwdctl — простой и понятный CLI для управления IPTables forwards на вашем Linux-сервере.
gaio — высокопроизводительная асинхронная сетевая библиотека для Golang в проакторном режиме.
gev — лёгкая и быстрая неблокирующая TCP-сеть на основе реакторного режима.
gldap — предоставляет реализацию сервера LDAP, и вы предоставляете обработчики для его операций LDAP.
gmqtt — гибкая, высокопроизводительная библиотека брокера MQTT, полностью реализующая протокол MQTT версии 3.1.1.
gnet — высокопроизводительный, лёгкий, неблокирующий сетевой фреймворк, управляемый событиями, написанный на чистом Go.
gnxi — набор инструментов для управления сетью, использующих протоколы gNMI и gNOI.
go-getter — библиотека Go для загрузки файлов или каталогов из различных источников с использованием URL.
go-multiproxy — библиотека для выполнения HTTP-запросов через пул прокси-серверов, предлагающая отказоустойчивость, балансировку нагрузки, автоматические повторы, управление файлами cookie и многое другое, через замену http.Get/Post или http.Client RoundTripper.
go-powerdns — привязки API PowerDNS для Golang.
go-sse — клиентская и серверная реализация HTML-событий, отправленных сервером, на Go.
go-stun — реализация STUN-клиента на Go (RFC 3489 и RFC 5389).
gobgp — BGP, реализованный на языке программирования Go.
gopacket — библиотека Go для обработки пакетов с привязками libpcap.
goshark — пакет goshark использует tshark для декодирования IP-пакетов и создания структуры данных для анализа пакета.
gosnmp — собственная библиотека Go для выполнения SNMP-действий.
gotcp — пакет Go для быстрого написания TCP-приложений.
grab — пакет Go для управления загрузками файлов.
graval — экспериментальный FTP-сервер.
gws — высокопроизводительный веб-сокет-сервер и клиент с поддержкой AsyncIO.
HTTPLab — HTTPLabs позволяет вам проверять HTTP-запросы и подделывать ответы.
httpproxy — обработчик HTTP-прокси и номеронабиратель.
iplib — библиотека для работы с IP-адресами (net.IP, net.IPNet), вдохновлённая python ipaddress и ruby ipaddr.
jazigo — инструмент, написанный на Go, для получения конфигурации для нескольких сетевых устройств.
kcp-go — KCP — быстрый и надёжный протокол ARQ.
kcptun — чрезвычайно простой и быстрый UDP-туннель на основе протокола KCP.
lhttp — мощная веб-сокетная структура, упрощающая создание вашего IM-сервера.
linkio — моделирование скорости сетевого соединения для интерфейсов Reader/Writer.
llb — это очень простой, но быстрый бэкенд для прокси-серверов. Может быть полезен для быстрого перенаправления на предопределённый домен с нулевым выделением памяти и быстрым ответом.
mdns — простая mDNS (Multicast DNS) клиент/серверная библиотека на Golang. MQTT Paho (The Paho Go Client) — предоставляет клиентскую библиотеку MQTT для подключения к брокерам MQTT через TCP, TLS или WebSockets.
Natiu-mqtt — простая, не требующая выделения памяти низкоуровневая реализация MQTT, хорошо подходящая для встраиваемых систем.
NBIO — решение на чистом Go с поддержкой 1000+ соединений, поддерживает TLS/HTTP1.x/WebSockets и в основном совместимо с net/http, с высокой производительностью и низкой стоимостью памяти, неблокирующее, управляемое событиями, простое в использовании.
Библиотеки для выполнения HTTP-запросов.
Fast-shot — поражайте цели API с молниеносной точностью, используя самый быстрый и надёжный инструмент Go. Simple HTTP Client
gentleman — полнофункциональная библиотека HTTP-клиента на основе подключаемых модулей.
go-cleanhttp — простой клиент stdlib HTTP, который не разделяет состояние с другими клиентами.
go-http-client — упрощает выполнение HTTP-вызовов.
go-otelroundtripper — Go http.RoundTripper, который генерирует открытые метрики телеметрии для HTTP-запросов.
go-req — декларативный HTTP-клиент Golang.
go-retryablehttp — повторяемый HTTP-клиент в Go.
go-zoox/fetch — мощный, лёгкий и простой HTTP-клиент, вдохновлённый Web Fetch API.
grequests — «клон» библиотеки Requests на языке Go.
heimdall — улучшенный HTTP-клиент с возможностями повтора и Hystrix.
httpretry — обогащает стандартный HTTP-клиент Go функцией повтора.
pester — вызовы HTTP-клиентов Golang с повторами, отсрочкой и параллелизмом.
req — простой HTTP-клиент на Go с чёрной магией (меньше кода и больше эффективности).
request — HTTP-клиент для Golang. Если у вас есть опыт работы с axios или requests, он вам понравится. Нет 3-й зависимости.
requests — запросы HTTP для Gophers. Использует context.Context и не скрывает базовый net/http.Client, что делает его совместимым со стандартными API Go. Также включает инструменты тестирования.
resty — простой HTTP и REST-клиент для Go, вдохновлённый Ruby rest-client.
rq — более приятный интерфейс для стандартного HTTP-клиента Golang.
sling — Sling — это библиотека HTTP-клиента Go для создания и отправки запросов API.
OpenGL
Библиотеки для использования OpenGL в Go:
gl — привязки Go для OpenGL (сгенерированы через glow).
glfw — привязки Go для GLFW 3.
go-glmatrix — порт Go glMatrix библиотеки.
goxjs/gl — кроссплатформенные привязки OpenGL для Go (OS X, Linux, Windows, браузеры, iOS, Android).
goxjs/glfw — кроссплатформенная библиотека glfw для создания контекста OpenGL и получения событий.
mathgl — математический пакет Pure Go, специализирующийся на 3D-математике, с вдохновением от GLM.
ORM
Библиотеки, реализующие методы объектно-реляционного отображения или datamapping:
bob — построитель SQL-запросов и ORM/Factory-генератор для Go. Преемник SQLBoiler.
bun — ORM Golang, ориентированный на SQL. Преемник go-pg.
cacheme — основанная на схеме типизированная структура кэширования/мемоизации Redis для Go.
CQL — построен на основе GORM, добавляет проверенные во время компиляции запросы на основе автоматически сгенерированного кода.
ent — фреймворк сущностей для Go. Простой, но мощный ORM для моделирования и запроса данных.
go-dbw — простой пакет, инкапсулирующий операции с базой данных.
go-firestorm — простой ORM для Google/Firebase Cloud Firestore.
go-sql — лёгкий ORM для MySQL.
go-sqlbuilder — гибкий и мощный построитель строк SQL плюс ORM с нулевой конфигурацией.
go-store — простое и быстрое хранилище значений ключей Redis с поддержкой Redis для Go. Управление пакетами
Официальные инструменты для управления зависимостями и пакетами:
— go modules — модули являются единицей обмена исходным кодом и управления версиями. Команда go имеет прямую поддержку работы с модулями, включая запись и разрешение зависимостей от других модулей.
Экспериментальные официальные инструменты для управления пакетами:
— dep — инструмент управления зависимостями в Go. — vgo — версионированный Go.
Неофициальные библиотеки для управления пакетами и зависимостями:
— glide — легко управляйте вендорными и вендоризованными пакетами golang. Вдохновлён такими инструментами, как Maven, Bundler и Pip. — godep — помогает создавать пакеты воспроизводимо, фиксируя их зависимости. — gom — Go Manager — пакет для Go. — goop — простой менеджер зависимостей для Go, вдохновлённый Bundler. — gop — создавайте и управляйте приложениями Go вне GOPATH. — gopm — менеджер пакетов Go. — govendor — менеджер пакетов Go, работает со стандартным файлом вендора. — gpm — минималистичный менеджер зависимостей для Go. — gup — обновляет двоичные файлы, установленные командой «go install». — johnny-deps — минимальная версия зависимостей с использованием Git. — modgv — преобразует вывод «go mod graph» в язык DOT Graphviz. — mvn-golang — плагин, который обеспечивает способ автоматической загрузки Golang SDK, управление зависимостями и запуск среды сборки в инфраструктуре проекта Maven. — syft — CLI-инструмент и библиотека Go для создания списка материалов программного обеспечения (SBOM) из образов контейнеров и файловых систем. — VenGO — создание и управление изолированными виртуальными средами Go, которые можно экспортировать. Производительность
Язык запросов
AND
и OR
в запросе.Отражение
Встраивание ресурсов
embed.FS
из существующего подкаталога embed.FS
.Go.rice (https://github.com/GeertJohan/go.rice) — пакет Go, который упрощает работу с такими ресурсами, как HTML, JS, CSS, изображения и шаблоны.
Mule (https://github.com/wlbr/mule) — встраивает внешние ресурсы, такие как изображения, фильмы, в исходный код Go для создания однофайловых двоичных файлов с использованием go generate. Ориентирован на простоту.
Packr (https://github.com/gobuffalo/packr) — простой и лёгкий способ встраивания статических файлов в двоичные файлы Go.
Rebed (https://github.com/soypat/rebed) — воссоздаёт структуры папок и файлы из типа embed.FS в Go 1.16.
Statics (https://github.com/go-playground/statics) — внедряет статические ресурсы в файлы Go для компиляции в один двоичный файл + работает с http.FileSystem + символическими ссылками.
Statik (https://github.com/rakyll/statik) — внедряет статические файлы в исполняемый файл Go.
Templify (https://github.com/wlbr/templify) — внедрение внешних файлов шаблонов в код Go для создания однофайловых двоичных файлов.
Vfsgen (https://github.com/shurcooL/vfsgen) — генерирует файл vfsdata.go, который статически реализует заданную виртуальную файловую систему.
Библиотеки для научных вычислений и анализа данных.
Assocentity (https://github.com/ndabAP/assocentity) — пакет assocentity возвращает среднее расстояние от слов до заданной сущности.
BradleyTerry (https://github.com/seanhagen/bradleyterry) — предоставляет модель Брэдли-Терри для попарных сравнений.
CalendarHeatmap (https://github.com/nikolaydubina/calendarheatmap) — тепловая карта календаря в простом Go, вдохновлённая активностью вклада Github.
Chart (https://github.com/vdobler/chart) — простая библиотека построения графиков для Go. Поддерживает множество типов графиков.
Dataframe-go (https://github.com/rocketlaunchr/dataframe-go) — фреймы данных для машинного обучения и статистики (аналогично pandas).
Decimal (https://github.com/db47h/decimal) — пакет decimal реализует арифметику с плавающей запятой произвольной точности.
Evaler (https://github.com/soniah/evaler) — простой вычислитель выражений с плавающей точкой.
Ewma (https://github.com/VividCortex/ewma) — экспоненциально взвешенные скользящие средние.
Geom (https://github.com/skelterjohn/geom) — 2D геометрия для golang.
Go-dsp (https://github.com/mjibson/go-dsp) — цифровая обработка сигналов для Go.
Go-estimate (https://github.com/milosgajdos/go-estimate) — алгоритмы оценки состояния и фильтрации в Go.
Go-gt (https://github.com/ThePaw/go-gt) — алгоритмы теории графов, написанные на языке «Go».
Go-hep (https://github.com/go-hep/hep) — набор библиотек и инструментов для проведения анализов физики высоких энергий с лёгкостью.
Godesim (https://github.com/soypat/godesim) — расширенный/многомерный решатель ОДУ для моделирования событий с простым API.
Goent (https://github.com/kzahedi/goent) — GO Реализация мер энтропии.
Gograph (https://github.com/hmdsefi/gograph) — универсальная библиотека графов Golang, предоставляющая математическую теорию графов и алгоритмы.
Gohistogram (https://github.com/VividCortex/gohistogram) — приблизительные гистограммы для потоков данных.
Gonum (https://github.com/gonum/gonum) — Gonum — это набор числовых библиотек для языка программирования Go. Он содержит библиотеки для матриц, статистики, оптимизации и многого другого.
Goraph (https://github.com/gyuho/goraph) — чистая библиотека теории графов Go (структура данных, визуализация алгоритмов).
Gosl (https://github.com/cpmech/gosl) — научная библиотека Go для линейной алгебры, БПФ, геометрии, NURBS, численных методов, вероятностей, оптимизации, дифференциальных уравнений и многого другого.
GoStats (https://github.com/OGFris/GoStats) — GoStats — это библиотека Open Source GoLang для математической статистики, в основном используемая в областях машинного обучения, она охватывает большинство функций статистических измерений.
Graph (https://github.com/yourbasic/graph) — библиотека основных... Граф-алгоритмы
Библиотеки, которые помогают сделать ваше приложение более безопасным.
Cbor (CBOR) — небольшая, безопасная и простая библиотека кодирования и декодирования CBOR.
Колфер (Colfer) — генерация кода для двоичного формата Colfer.
Csvutil — высокая производительность, идиоматическое кодирование и декодирование записей CSV в структуры Go.
Эластик (Elastic) — конвертация срезов, карт или любых других неизвестных значений между разными типами во время выполнения, независимо от типа.
Фиксвед (Fixedwidth) — форматирование текста с фиксированной шириной (поддерживается UTF-8).
Фвэнкодер (Fwencoder) — парсер файлов с фиксированной шириной (библиотека кодирования и декодирования) для Go.
Го-капнпрото (Go-capnproto) — библиотека Cap'n Proto и парсер для Go.
Го-кодек (Go-codec) — высокопроизводительная, многофункциональная, идиоматическая библиотека кодирования, декодирования и RPC для msgpack, cbor и json с поддержкой времени выполнения и генерации кода.
Гоу-сивиэл (Go-csvlib) — библиотека сериализации/десериализации CSV с высоким уровнем и богатыми функциональными возможностями.
Гоопротобуф (Gogoprotobuf) — Protocol Buffers для Go с гаджетами.
Гопротобуф (goprotobuf) — поддержка Go в виде библиотеки и плагина компилятора протокола для Google Protocol Buffers.
Готиний (Gotiny) — эффективная библиотека сериализации Go, которая почти так же быстра, как библиотеки сериализации, генерирующие код.
Джсонитер (jsoniter) — высокопроизводительный 100% совместимый заменитель «encoding/json».
Мапструктур (mapstructure) — библиотека Go для декодирования общих значений карты в структуры Go.
Пхп_сессион_декодер (php_session_decoder) — библиотека Golang для работы с форматом PHP-сессий и функциями PHP Serialize/Unserialize.
Плетер (pletter) — стандартный способ обернуть сообщение proto для брокеров сообщений.
Структуомэп (structomap) — библиотека для простого и динамического создания карт из статических структур.
Юнитпэкинг (unitpacking) — библиотека для упаковки единичных векторов в наименьшее количество байт.
Альгернон (algernon) — HTTP/2 веб-сервер со встроенной поддержкой Lua, Markdown, GCSS и Amber.
Кэдди (Caddy) — альтернативный HTTP/2 веб-сервер, который легко настроить и использовать.
Клас (Clace) — делает развёртывание и управление внутренними инструментами простыми, реализуя сервер приложений для контейнерных веб-приложений.
Консул (Consul) — инструмент для обнаружения служб, мониторинга и настройки.
Кортекс-тенант (cortex-tenant) — прокси удалённой записи Prometheus, добавляющий заголовок идентификатора арендатора Cortex на основе меток метрик.
Девд (devd) — локальный веб-сервер для разработчиков.
Дискавери (discovery) — реестр для отказоустойчивой балансировки нагрузки и аварийного переключения.
Дудельду (dudeldu) — простой сервер SHOUTcast.
Дамми (dummy) — запуск фиктивного сервера на основе контракта API одной командой.
Изигресс (Easegress) — облачная система управления трафиком высокой доступности/производительности с наблюдаемостью и расширяемостью.
Бифрёст (Engity's Bifröst) — настраиваемый SSH-сервер с несколькими способами авторизации пользователя для выполнения сеанса (локально или в контейнерах).
Этцд (etcd) — высокодоступное хранилище ключей и значений для общей конфигурации и обнаружения служб.
Эйтерпи (Euterpe) — собственный хостинг музыки. streaming server с встроенным web UI и REST API
Библиотеки и инструменты для потоковой обработки и реактивного программирования.
Библиотеки и инструменты для шаблонирования и лексирования.
Gomponents (https://www.gomponents.com) — компоненты HTML 5 на чистом Go, которые выглядят примерно так:
func(name string) g.Node {
return Div(Class("headline"), g.Textf("Hi %v!", name))
}
Got (https://github.com/goradd/got) — генератор кода Go, вдохновлённый Hero и Fasttemplate. Имеет включаемые файлы, пользовательские определения тегов, внедряемый код Go, перевод на другие языки и многое другое.
Goview (https://github.com/foolin/goview) — лёгкая, минималистичная и идиоматическая библиотека шаблонов, основанная на golang html/template для создания веб-приложений на Go.
Htmgo (https://htmgo.dev) — создание простых и масштабируемых систем с использованием Go + htmx.
Jet (https://github.com/CloudyKit/jet) — движок шаблонов Jet.
Liquid (https://github.com/osteele/liquid) — реализация шаблонов Shopify Liquid на Go.
Maroto (https://github.com/johnfercher/maroto) — способ создания PDF с помощью Maroto. Maroto вдохновлён Bootstrap и использует gofpdf. Быстрый и простой.
Pongo2 (https://github.com/flosch/pongo2) — шаблонизатор, похожий на Django, для Go.
Quicktemplate (https://github.com/valyala/quicktemplate) — быстрый, мощный, но простой в использовании шаблонизатор. Преобразует шаблоны в код Go и затем компилирует его.
Raymond (https://github.com/aymerick/raymond) — полная реализация handlebars на Go.
Razor (https://github.com/sipin/gorazor) — механизм просмотра Razor для Golang.
Soy (https://github.com/robfig/soy) — шаблоны Closure (также известные как шаблоны Soy) для Go, следующие официальной спецификации (https://developers.google.com/closure/templates/).
Sprout (https://github.com/go-sprout/sprout) — полезные функции шаблонов для шаблонов Go.
Tbd (https://github.com/lucasepe/tbd) — очень простой способ создавать текстовые шаблоны с заполнителями — предоставляет дополнительную встроенную метаинформацию репозитория Git.
Templ (https://github.com/a-h/templ) — язык шаблонов HTML, который имеет отличные инструменты разработчика.
Библиотеки для тестирования кодовых баз и генерации тестовых данных.
Apitest (https://apitest.dev) — простая и расширяемая библиотека поведенческого тестирования для служб REST или обработчиков HTTP, которая поддерживает имитацию внешних вызовов HTTP и рендеринг диаграмм последовательности.
Arch-go (https://github.com/fdaines/arch-go) — инструмент для архитектурного тестирования проектов Go.
Assert (https://github.com/go-playground/assert) — базовая библиотека утверждений, используемая вместе с собственным тестированием Go, с конструкциями для пользовательских утверждений.
Baloo (https://github.com/h2non/baloo) — выразительное и универсальное сквозное тестирование API HTTP стало проще.
Be (https://github.com/carlmjohnson/be) — минималистичный универсальный тестовый модуль утверждений.
Biff (https://github.com/fulldump/biff) — фреймворк для бифуркационного тестирования, совместимый с BDD.
Charlatan (https://github.com/percolate/charlatan) — инструмент для генерации поддельных реализаций интерфейса для тестов.
Commander (https://github.com/SimonBaeumer/commander) — инструмент для тестирования cli-приложений в Windows, Linux и OSX.
Cupaloy (https://github.com/bradleyjkemp/cupaloy) — простой аддон для тестирования снимков для вашей тестовой среды.
Dbcleaner (https://github.com/khaiql/dbcleaner) — очистка базы данных для целей тестирования, вдохновлённая database_cleaner в Ruby.
Dft (https://github.com/abecodes/dft) — лёгкие контейнеры Docker с нулевыми зависимостями для тестирования (или более).
DSunit (https://github.com/viant/dsunit) — тестирование хранилища данных для SQL, NoSQL, структурированных файлов.
Embedded-postgres (https://github.com/fergusstrange/embedded-postgres) — запуск реальной базы данных Postgres локально в Linux, OSX или Windows как часть другого приложения Go или теста.
Endly (https://github.com/viant/endly) — декларативное функциональное тестирование «конец-в-конец».
Envite (https://github.com/PerimeterX/envite) — среда разработки и тестирования.
Fixenv (https://github.com/rekby/fixenv) — система управления фикстурами, вдохновлённая фикстурами pytest.
Fluentassert (https://github.com/fluentassert/verify) — расширяемая, типобезопасная, свободная библиотека утверждений Go.
Flute (https://github.com/suzuki-shunsuke/flute) — тестирование HTTP-клиента. Фреймворк.
Frisby — REST API testing framework.
Gherkingen — BDD boilerplate generator and framework.
Ginkgo — BDD Testing Framework for Go.
Gnomock — integration testing with real dependencies (database, cache, even Kubernetes or AWS) running in Docker, without mocks.
Go-carpet — tool for viewing test coverage in terminal.
Go-cmp — package for comparing Go values in tests.
Go-hit — Hit is an http integration test framework written in golang.
Go-mutesting — mutation testing for Go source code.
Go-mysql-test-container — Golang MySQL testcontainer to help with MySQL integration testing.
Go-snaps — Jest-like snapshot testing in Golang.
Go-testdeep — extremely flexible golang deep comparison, extends the go testing package.
Go-testpredicate — test predicate style assertions library with extensive diagnostics output.
Go-vcr — record and replay your HTTP interactions for fast, deterministic and accurate tests.
Goblin — Mocha like testing framework of Go.
Goc — comprehensive coverage testing system for The Go Programming Language.
Gocheck — more advanced testing framework alternative to gotest.
GoConvey — BDD-style framework with web UI and live reload.
Gocrest — composable hamcrest-like matchers for Go assertions.
Godog — Cucumber BDD framework for Go.
GoFight — API Handler Testing for Golang Router framework.
Gogiven — YATSPEC-like BDD testing framework for Go.
Gomatch — library created for testing JSON against patterns.
Gomega — Rspec like matcher/assertion library.
Gont — Go network testing toolkit for testing building complex network topologies using Linux namespaces.
Gospecify — provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec.
Gosuite — brings lightweight test suites with setup/teardown facilities to testing by leveraging Go1.7's Subtests.
Got — an enjoyable golang test framework.
Gotest.tools — a collection of packages to augment the go testing package and support common patterns.
Hamcrest — fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
Httpexpect — concise, declarative, and easy to use end-to-end HTTP and REST API testing.
Is — professional lightweight testing mini-framework for Go.
Jsonassert — package for verifying that your JSON payloads are serialized correctly.
Keploy — generate Testcase and Data Mocks from API calls automatically.
OMG.testingtools — the simple library for change a values of private fields for testing.
Restit — Go micro framework to help writing RESTful API integration test.
Schema — quick and easy. Выражение, соответствующее схемам JSON, используемым в запросах и ответах.
Stop-and-go — помощник для тестирования параллелизма.
— Тестирование на основе поведения (Behavior Driven Development).
— Динамическое создание самозаверяющих сертификатов и центров сертификации в функциях тестирования.
— Простой способ создания и очистки зависимостей на основе контейнеров для автоматизированных интеграционных/дымовых тестов. Чистый и простой в использовании API позволяет разработчикам программно определять контейнеры, которые должны запускаться как часть теста, и очищать эти ресурсы после завершения теста.
— Помощник для Rails-подобных тестовых фикстур для тестирования приложений баз данных.
— Sacred расширение стандартного пакета тестирования go.
— Генерация тестовых данных из файлов SQL перед тестированием и их очистка после завершения.
— Полнофункциональная тестовая среда с красивым цветным выводом.
— Быстрые и простые расширяемые утверждения без введения большого количества шаблонов.
— Простые и красочные инструменты тестирования.
— Клиент Websocket для модульного тестирования веб-сокета http.Handler.
Инструмент для создания автономных фиктивных объектов.
Система насмешек Go с генератором кода для построения вызовов методов интерфейса.
Инструмент для использования localstack в тестировании AWS.
Фиктивный драйвер SQL для тестирования взаимодействия с базой данных.
Однотранзакционный драйвер базы данных в основном для целей тестирования.
Универсальный HTTP-фиктивный объект.
Фреймворк для насмешек для языка программирования Go.
HTTP-фиктив для Golang: запись и воспроизведение HTTP-взаимодействий для автономного тестирования.
Прокси-сервер HTTP(S) для записи и имитации REST/SOAP API с расширяемым промежуточным программным обеспечением и простым в использовании CLI.
Лёгкое издевательство над ответами HTTP от внешних ресурсов.
Генератор фиктивных объектов для интерфейсов Go.
Инструмент для генерации интерфейсов Go.
Объект-макет для Go http.ResponseWriter.
Простой способ создания макетов для различных целей.
Утилита, которая генерирует структуру из любого интерфейса. Структуру можно использовать в тестовом коде в качестве макета интерфейса.
Тест-дружественная замена нативного пакета time.
Общая библиотека фиктивных функций.
Рандомизированная система тестирования.
Библиотека для заполнения объектов Go случайными значениями.
Универсальная среда фаззинга и дельта-отладки.
Типобезопасные привязки для протокола отладки Chrome, который можно использовать с браузерами или другими целями отладки, реализующими его.
Способ управления/тестирования Chrome, Safari. Edge, Android Webviews и другие браузеры, поддерживающие протокол Chrome Debugging
ggr — облегчённый сервер, который маршрутизирует и проксирует запросы Selenium WebDriver к нескольким хабам Selenium.
playwright-go — библиотека автоматизации браузера для управления Chromium, Firefox и WebKit с помощью единого API.
rod — Devtools-драйвер, упрощающий автоматизацию веб-приложений и парсинг.
selenoid — альтернативный сервер Selenium hub, запускающий браузеры в контейнерах.
Fail injection
Библиотеки для анализа и обработки текстов.
См. также «Обработка естественного языка» и «Анализ текста».
colly — Быстрый и элегантный фреймворк для скрапинга от Gophers.
dataflowkit — Фреймворк веб-скрапинга для превращения веб-сайтов в структурированные данные.
go-recipe — Пакет для сбора рецептов с веб-сайтов.
GoQuery — GoQuery привносит синтаксис и набор функций, аналогичных jQuery, в язык Go.
pagser — Простой, расширяемый, настраиваемый парсинг и десериализация html-страницы в структуру на основе goquery и тегов структуры для сканера Golang.
Tagify — Создаёт набор тегов из заданного источника.
walker — Беспрепятственно извлекает данные с разбивкой на страницы из любого источника. Включен простой и высокопроизводительный API-скрапинг.
xurls — Извлекает URL-адреса из... ### RSS
podcast — генератор подкастов, совместимый с iTunes и RSS 2.0, на Golang.
Библиотеки для доступа к сторонним API.
Библиотеки Go для доступа к API различных сервисов:
Утилиты
Общие утилиты и инструменты, которые облегчат вашу жизнь.
В Go:
go-astitodo — анализ TODO в коде на GO.
go-bind-plugin — инструмент go:generate для обёртки символов, экспортированных плагинами golang (только 1.8).
go-bsdiff — библиотеки и инструменты CLI bsdiff и bspatch на чистом Go.
go-clip — минималистичный менеджер буфера обмена для Mac.
go-convert — пакет go-convert позволяет преобразовывать значение в другой тип.
go-countries — облегчённый поиск по кодам ISO-3166.
go-dry — DRY (не повторяйся) пакет для Go.
go-events — пакет событий и подписки на события в Go, похожий на функции хуков WordPress.
go-funk — современная утилитарная библиотека Go с помощниками (map, find, contains, filter, chunk, reverse и т. д.).
go-health — пакет health упрощает добавление проверки работоспособности в ваши сервисы.
go-httpheader — библиотека Go для кодирования структур в поля Header.
go-lambda-cleanup — CLI для удаления неиспользуемых или предыдущих версий AWS Lambdas.
go-lock — go-lock — это библиотека блокировок, реализующая мьютекс чтения-записи и блокировку чтения-записи без голодания.
go-pattern-match — библиотека сопоставления шаблонов, вдохновлённая ts-pattern.
go-pkg — набор инструментов Go.
go-problemdetails — пакет Go для работы с Problem Details.
go-qr — собственный генератор QR-кодов высокого качества и минималистичного размера.
go-rate — ограничитель скорости с таймером для Go.
go-sitemap-generator — генератор XML Sitemap, написанный на Go.
go-trigger — глобальный триггер событий в Go. Регистрируйте события с идентификатором и запускайте событие из любой точки вашего проекта.
go-tripper — Tripper — это пакет выключателя цепи для Go, который позволяет вам контролировать состояние цепей.
go-type — библиотека, предоставляющая типы Go для хранения/проверки и передачи ISO-4217, ISO-3166 и других типов.
goback — простой экспоненциальный откат в Go.
goctx — получайте значения контекста с высокой производительностью.
godaemon — утилита для написания демонов.
godropbox — общие библиотеки для написания сервисов/приложений Go от Dropbox.
gofn — высокопроизводительные служебные функции, написанные с использованием Generics для Go 1.18+.
gohper — различные инструменты/модули для разработки.
golarm — пожарная сигнализация с системными событиями.
golog — лёгкий и удобный инструмент командной строки для отслеживания времени выполнения задач.
gopencils — небольшой и простой пакет для лёгкого использования REST API.
goplaceholder — небольшая библиотека Golang для создания изображений-заполнителей.
goreadability — экстрактор сводок веб-страниц с использованием Facebook Open Graph и читаемости arc90.
goreleaser — доставка двоичных файлов Go как можно быстрее и проще.
goreporter — Инструмент Golang, который выполняет статический анализ, модульное тестирование, проверку кода и генерирует отчёт о качестве кода.
goseaweedfs — клиентская библиотека SeaweedFS с почти полным набором функций.
gostrutils — набор функций для работы со строками и их преобразования.
gotenv — загрузка переменных окружения из .env
или любого io.Reader
в Go.
goval — вычисление произвольных выражений в Go.
graterm — предоставляет примитивы для выполнения упорядоченного (последовательного/параллельного) ГРАциозного ЗАвершения (также известного как завершение работы) в приложении Go.
grofer — инструмент мониторинга системы и ресурсов, написанный на Golang!
gubrak — служебная библиотека Golang с синтаксическим сахаром. Это как lodash, но для golang.
handy — множество утилит и помощников, таких как обработчики/форматировщики строк и валидаторы.
hostctl — CLI-инструмент для управления /etc/hosts с помощью простых команд.
htcat — параллельная и конвейерная утилита HTTP GET.
hub — оболочка над командами git с дополнительной функциональностью для взаимодействия с github из терминала.
hystrix-go — реализует шаблоны Hystrix для программируемых откатов, также известных как прерыватель цепи.
immortal — кроссплатформенный (независимый от ОС) супервизор.
intrinsic — использование x86 SIMD без написания ассемблерного кода.
jsend — реализация JSend, написанная на Go.
json-log-viewer — интерактивный просмотрщик журналов JSON.
jump — Jump помогает вам быстрее ориентироваться, изучая ваши привычки.
just — просто набор полезных функций для работы с общими структурами данных.
koazee — библиотека, вдохновлённая ленивой оценкой и функциональным программированием, которая упрощает работу с массивами.
lancet — комплексная, эффективная и многократно используемая библиотека служебных функций Go.
lets-go — модуль Go, предоставляющий общие утилиты для разработки облачных REST API. Также содержит утилиты AWS.
limiters — ограничители скорости для распределённых приложений в Golang с настраиваемыми бэкендами и распределёнными блокировками.
lo — библиотека Lodash для Go, основанная на дженериках Go 1.18+ (map, filter, contains, find...).
loncha — высокопроизводительные утилиты для срезов.
lrserver — сервер LiveReload для Go.
mani — CLI-инструмент, помогающий управлять несколькими репозиториями.
mc — Minio Client предоставляет минимальные инструменты для работы с облачными хранилищами и файловыми системами, совместимыми с Amazon S3.
mergo — помощник для слияния структур и карт в Golang. Полезен для настройки значений по умолчанию, избегая запутанных if-операторов.
mimemagic — ультрапроизводительная библиотека/утилита MIME-снятия отпечатков пальцев в чистом Go.
mimesniffer — сниффер MIME-типов для Go.
mimetype — пакет для обнаружения MIME-типа на основе магических чисел.
minify — быстрые минификаторы для форматов файлов HTML, CSS, JS, XML, JSON и SVG.
minquery — запрос MongoDB / mgo.v2, поддерживающий эффективную нумерацию страниц (курсоры для продолжения перечисления документов с того места, где мы остановились).
moldova — утилита для генерации... Рандомные данные на основе входного шаблона.
Mole — CLI-приложение для простого создания SSH-туннелей.
Mongo-go-pagination — пагинация MongoDB для официального пакета mongodb/mongo-go-driver, который поддерживает как обычные запросы, так и конвейеры агрегации.
Mssqlx — клиентская библиотека базы данных, прокси для любой структуры master-slave, master-master. Лёгкая и с учётом автоматической балансировки.
Multitick — мультиплексор для выровненных тикеров.
Myhttp — простой API для выполнения HTTP GET-запросов с поддержкой таймаута.
Netbug — простое удалённое профилирование ваших сервисов.
Nfdump — чтение файлов nfdump netflow.
Nostromo — CLI для создания мощных псевдонимов.
Okrun — go run error steamroller.
Olaf — Twitter Snowflake реализован на Go.
Onecache — библиотека кэширования с поддержкой нескольких бэкенд-хранилищ (Redis, Memcached, файловая система и т. д.).
Panicparse — группирует похожие горутины и раскрашивает дамп стека.
Pattern-match — библиотека сопоставления с образцом.
Peco — упрощённый интерактивный инструмент фильтрации.
Pgo — удобные функции для сообщества PHP.
PM — менеджер процессов (то есть горутин) с HTTP API.
Pointer — пакет pointer содержит вспомогательные процедуры для упрощения создания необязательных полей базового типа.
Ptr — пакет, предоставляющий функции для упрощённого создания указателей из констант базовых типов.
Rclient — читаемый, гибкий, простой в использовании клиент для REST API.
Remote-touchpad — управление мышью и клавиатурой со смартфона.
Repeat — реализация различных стратегий отсрочки в Go, полезных для повторных операций и сердцебиения.
Request — HTTP-запросы Go для людей™.
Rerun — перекомпиляция и повторный запуск приложений Go при изменении исходного кода.
Rest-go — пакет, предлагающий множество полезных методов для работы с rest api.
Retry — самый продвинутый функциональный механизм для многократного выполнения действий до успеха.
Robustly — запускает функции устойчиво, перехватывая и перезапуская панику.
RoSpo — простые и надёжные SSH-туннели со встроенным SSH-сервером в Golang.
Scan — сканирование golang sql.Rows
напрямую в структуры, срезы или примитивные типы.
Serve — статический HTTP-сервер где угодно.
Sesh — Sesh — это CLI, который помогает быстро и легко создавать и управлять сеансами tmux с помощью zoxide. FastUUID — быстрая генерация UUIDv4 в виде строки или байтов.
Goid — генерация и парсинг UUID, соответствующих RFC 4122, версии 4.
Gouid — генерация криптографически безопасных случайных строковых идентификаторов с одним выделением памяти.
Nanoid — небольшой и эффективный генератор уникальных строковых ID в Go.
Sno — компактные, сортируемые и быстрые уникальные идентификаторы со встроенной метаинформацией.
ULID — реализация ULID (универсального лексикографически сортируемого идентификатора) в Go.
Uniq — безопасные и быстрые уникальные идентификаторы с командами без лишних сложностей.
UUID (agext) — генерация, кодирование и декодирование UUID версии 1 с быстрым или криптографическим качеством случайного идентификатора узла.
UUID (gofrs) — реализация универсального уникального идентификатора (UUID). Поддерживает создание и анализ UUID. Активно поддерживаемая вилка satori uuid.
UUID (google) — пакет Go для работы с UUID на основе RFC 4122 и DCE 1.1: служб аутентификации и безопасности. Генераторы уникальных номеров и идентификаторов
wuid — генератор чрезвычайно быстрых глобально уникальных чисел.
xid — библиотека генератора глобально уникальных идентификаторов, готовая к безопасному использованию непосредственно в серверном коде.
Библиотеки для валидации.
checkdigit — предоставляет алгоритмы контрольных цифр (Luhn, Verhoeff, Damm) и калькуляторы (ISBN, EAN, JAN, UPC и др.).
go-validator — библиотека валидации с использованием дженериков.
gody — облегчённый валидатор структур для Go.
govalid — быстрый валидатор на основе тегов для структур.
govalidator — валидаторы и дезинфицирующие средства для строк, чисел, срезов и структур.
hvalid — лёгкая библиотека валидации, написанная на языке Go. Предоставляет пользовательский интерфейс валидатора и ряд общих функций валидации.
jio — валидатор JSON-схем, похожий на joi.
ozzo-validation — поддерживает валидацию различных типов данных (структуры, строки, карты, срезы и т. д.) с настраиваемыми и расширяемыми правилами валидации, указанными в обычных конструкциях кода вместо тегов структур.
validate — пакет Go для валидации и фильтрации данных. Поддерживает валидацию карт, структур, запросов (формы, JSON, url.Values, загруженные файлы) и другие функции.
validator — валидация структур и полей в Go, включая кросс-полевую, кросс-структурную, карту, срез и массив.
Validator — лёгкий валидатор моделей, написанный на Go. Содержит VFs: Min, Max, MinLength, MaxLength, Length, Enum, Regex.
valix — пакет Go для проверки запросов.
Zog — инструмент построения схем для анализа и валидации значений во время выполнения, вдохновлённый Zod.
Библиотеки контроля версий.
cli — открытый инструмент командной строки GitLab, который переносит интересные функции GitLab в командную строку.
froggit-go — библиотека Go, позволяющая выполнять действия с поставщиками VCS.
git2go — привязки Go для libgit2.
githooks — хуки для каждого репозитория и общие хуки Git с контролем версий и автоматическим обновлением.
go-git — расширяемая реализация Git на чистом Go.
go-vcs — манипулирование и проверка репозиториев VCS в Go.
hercules — получение расширенных сведений из истории репозитория Git.
hgo — набор пакетов Go, предоставляющих доступ для чтения к локальным репозиториям Mercurial.
Библиотеки для работы с видео.
gmf — привязки Go для библиотек FFmpeg av*.
go-astiav — улучшенные привязки C для ffmpeg в GO.
go-astisub — работа с субтитрами в GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi и др.).
go-astits — анализ и демультиплексирование MPEG Transport Streams (.ts) в GO.
go-m3u8 — обработка списков воспроизведения M3U8 в Go. Библиотека для парсинга и генерации плейлистов Apple m3u8.
Активно поддерживаемая версия quangngotan95/go-m3u8 с улучшениями и совместимостью с последними версиями парсинга плейлистов HLS.
Полные веб-фреймворки.
muxchain — облегчённое промежуточное ПО для net/http.
negroni — идиоматическое HTTP-промежуточное ПО для Golang.
render — пакет Go для простого рендеринга ответов JSON, XML и HTML шаблонов.
renderer — простой, лёгкий и быстрый пакет рендеринга ответов (JSON, JSONP, XML, YAML, HTML, File) для Go.
rye — крошечная библиотека промежуточного ПО для Go (с готовыми промежуточными программами), которая поддерживает JWT, CORS, Statsd и контекст Go 1.7.
stats — промежуточное ПО Go, которое хранит различную информацию о вашем веб-приложении.
alien — лёгкий и быстрый HTTP-маршрутизатор из космоса.
bellt — простой маршрутизатор HTTP от Go.
Bone — молниеносный HTTP-мультиплексор.
Bxog — простой и быстрый маршрутизатор HTTP для Go. Он работает с маршрутами различной сложности, длины и вложенности. И он знает, как создать URL из полученных параметров.
chi — небольшой, быстрый и выразительный HTTP-маршрутизатор, построенный на net/context.
fasthttprouter — высокопроизводительный маршрутизатор, ответвлённый от httprouter. Первый маршрутизатор, подходящий для fasthttp.
FastRouter — быстрый, гибкий HTTP-маршрутизатор, написанный на Go.
goblin — маршрутизатор HTTP на основе дерева trie.
gocraft/web — мультиплексор и пакет промежуточного программного обеспечения в Go.
Goji — минималистичный и гибкий мультиплексор HTTP-запросов с поддержкой net/context.
GoLobby/Router — GoLobby Router — это лёгкий, но мощный HTTP-маршрутизатор для языка программирования Go.
goroute — простой, но мощный мультиплексор HTTP-запросов.
GoRouter — микрофреймворк Server/API, маршрутизатор HTTP-запросов, мультиплексор, mux, который предоставляет маршрутизатор запросов с промежуточным программным обеспечением, поддерживающим net/context.
gowww/router — высокоскоростной маршрутизатор HTTP, полностью совместимый с интерфейсом net/http.Handler.
httprouter — высокопроизводительный маршрутизатор. Используйте его и стандартные обработчики HTTP для создания очень высокопроизводительного веб-фреймворка.
httptreemux — высокоскоростной, гибкий основанный на дереве HTTP-маршрутизатор для Go. Вдохновение от httprouter.
lars — это лёгкий, быстрый и расширяемый маршрутизатор HTTP с нулевым распределением для Go, используемый для создания настраиваемых фреймворков.
mux — мощный маршрутизатор URL и диспетчер для golang.
nchi — маршрутизатор, похожий на chi, построенный на httprouter с обёртками промежуточного программного обеспечения на основе внедрения зависимостей.
ngamux — простой HTTP-маршрутизатор для Go.
ozzo-routing — чрезвычайно быстрый маршрутизатор Go (golang) HTTP, который поддерживает сопоставление маршрутов с регулярными выражениями. Поставляется с полной поддержкой создания RESTful API.
pure — это облегчённый маршрутизатор HTTP, который придерживается стандартной реализации «net/http».
Siesta — компонуемый фреймворк для написания промежуточного программного обеспечения и обработчиков.
vestigo — производительный, автономный, совместимый с HTTP маршрутизатор URL для веб-приложений Go.
violetear — маршрутизатор HTTP Go.
xmux — высокопроизводительный мультиплексор. based on httprouter
with net/context
support.
Библиотеки для создания рабочих процессов.
Библиотеки и инструменты для работы с XML.
Библиотеки и инструменты для реализации архитектур нулевого доверия.
Анализ исходного кода. Инструменты, также известные как инструменты статического тестирования безопасности приложений (SAST), включают:
unconvert — инструмент для удаления ненужных преобразований типов из исходного кода на Go.
usestdlibvars — линтер, который обнаруживает возможность использования переменных и констант из стандартной библиотеки Go.
vacuum — ультрабыстрый, лёгкий инструмент для проверки качества и линтинга OpenAPI.
validate — автоматически проверяет поля структур с тегами.
wrapcheck — линтер для проверки того, что ошибки из внешних пакетов обернуты.
Плагины для текстовых редакторов и интегрированных сред разработки.
coc-go language server extension for Vim/Neovim — плагин добавляет функции gopls в Vim/Neovim.
Go Doc — расширение Visual Studio Code для отображения определений в выводе и генерации документации Go.
Go plugin for JetBrains IDEs — плагин Go для JetBrains IDE.
go-language-server — оболочка для превращения расширения VSCode go в языковой сервер, поддерживающий протокол языкового сервера.
go-mode — режим Go для GNU/Emacs.
go-plus — пакет Go (Golang) для Atom, который добавляет автозаполнение, форматирование, проверку синтаксиса, линтинг и проверку.
gocode — демон автозаполнения для языка программирования Go.
goimports-reviser — средство форматирования для импорта.
goprofiling — это расширение добавляет поддержку профилирования тестов для языка Go в VS Code.
GoSublime — коллекция плагинов Golang для текстового редактора SublimeText 3, предоставляющая завершение кода и другие функции, подобные IDE.
gounit-vim — плагин Vim для создания тестов Go на основе сигнатуры функции или метода.
theia-go-extension — поддержка языка Go для Theia IDE.
vim-compiler-go — плагин Vim, выделяющий синтаксические ошибки при сохранении.
vim-go — плагин для разработки Go для Vim.
vscode-go — расширение для Visual Studio Code (VS Code), которое обеспечивает поддержку языка Go.
Watch — запускает команду в окне acme при изменении файла.
[⬆ back to top]
envdoc — генерирует документацию для переменных среды из исходных файлов Go.
generic — гибкий тип данных для Go.
genny — элегантные дженерики для Go.
gocontracts — добавляет контрактное программирование в Go путем синхронизации кода с документацией.
godal — генерировать модели orm, соответствующие golang, указав файл sql ddl, который можно использовать с gorm.
gonerics — идиоматические дженерики в Go.
gotests — генерация тестов Go из исходного кода.
gounit — создание тестов Go с использованием собственных шаблонов.
hasgo — генерация функций, вдохновленных Haskell, для ваших срезов.
options-gen — функциональные параметры, описанные в посте Дэйва Чини «Функциональные параметры для дружественных API».
re2dfa — преобразование регулярных выражений в конечные автоматы и вывод исходного кода Go.
sqlgen — кросс-компиляция и упаковка.
grapes — лёгкий инструмент, предназначенный для простого распространения команд по ssh.
GVM — GVM предоставляет интерфейс для управления версиями Go.
Hey — крошечная программа, которая отправляет некоторую нагрузку на веб-приложение.
httpref — удобный CLI-справочник по HTTP-методам, кодам состояния, заголовкам, а также портам TCP и UDP.
jcli — Jenkins CLI позволяет легко управлять Jenkins.
k3d — небольшой помощник для запуска CNCF k3s в Docker.
k3s — облегчённый Kubernetes.
k6 — современный инструмент нагрузочного тестирования, использующий Go и JavaScript.
kala — упрощённый, современный и производительный планировщик заданий.
kcli — инструмент командной строки для проверки тем/разделов/сообщений Kafka.
kind — Kubernetes IN Docker — локальные кластеры для тестирования Kubernetes.
ko — инструмент командной строки для сборки и развёртывания приложений Go на Kubernetes.
kool — инструмент командной строки для удобного управления средами Docker.
kubeblocks — KubeBlocks — это диспетчер с открытым исходным кодом, который запускает и управляет базами данных, очередями сообщений и другой инфраструктурой данных в K8s.
kubernetes — менеджер контейнерных кластеров от Google.
kubeshark — анализатор трафика API для Kubernetes, вдохновлённый Wireshark, специально созданный для Kubernetes.
KubeVela — доставка облачных нативных приложений.
KubeVPN — KubeVPN предлагает облачную среду разработки Dev, которая беспрепятственно подключается к сети кластера Kubernetes.
KusionStack — унифицированный программируемый технологический стек конфигурации для доставки современных приложений в подходах «платформа как код» и «инфраструктура как код».
kwatch — мониторинг и обнаружение сбоев в вашем кластере Kubernetes (K8s) мгновенно.
lstags — инструмент и API для синхронизации образов Docker в разных реестрах.
lwc — живая версия команды UNIX wc.
manssh — manssh — это инструмент командной строки для лёгкого управления конфигурацией псевдонимов ssh.
Mantil — специфичный для Go фреймворк для создания бессерверных приложений на AWS, который позволяет сосредоточиться на чистом коде Go, пока Mantil заботится об инфраструктуре.
minikube — запуск Kubernetes локально.
Moby — совместный проект для экосистемы контейнеров по сборке систем на основе контейнеров.
Mora — REST-сервер для доступа к документам MongoDB и метаданным.
ostent — собирает и отображает системные метрики и при необходимости передаёт их в Graphite и/или InfluxDB.
Packer — Packer — это инструмент для создания идентичных машинных образов для нескольких платформ из одной исходной конфигурации.
Pewpew — гибкий HTTP-стресс-тестер командной строки.
PipeCD — платформа непрерывной доставки в стиле GitOps, обеспечивающая согласованный опыт развёртывания и эксплуатации любых приложений.
podinfo — Podinfo — это небольшое веб-приложение, созданное на Go, которое демонстрирует лучшие практики запуска микросервисов в Kubernetes. Podinfo используется проектами CNCF, такими как Flux и Flagger, для сквозного тестирования и семинаров.
Pomerium — Помериум — это прокси-сервер с контролем доступа на основе идентификации.
Rodent — помогает управлять версиями Go, проектами и отслеживать зависимости.
S3 Proxy — прокси-сервер S3 с методами GET, PUT и DELETE и аутентификацией (OpenID Connect и Basic Auth).
s3gof3r — небольшая утилита/библиотека, оптимизированная для высокоскоростной передачи больших объектов в Amazon S3 и из него.
s5cmd — инструмент для работы с S3 и локальной файловой системой, работающий очень быстро.
Scaleway-cli — управление серверами BareMetal через командную строку (так же просто, как с Docker).
Script — упрощает написание сценариев, похожих на сценарии оболочки, на Go для задач DevOps и системного администрирования.
SG — сравнивает набор HTTP-конечных точек (например, ab), с возможностью использовать код ответа и данные между каждым вызовом для конкретного стресса сервера на основе его предыдущего ответа.
SKM — простой и мощный менеджер SSH-ключей, который помогает легко управлять несколькими SSH-ключами!
StatusOK — отслеживает ваш веб-сайт и REST API. Получайте уведомления через Slack или электронную почту, когда ваш сервер не работает или время отклика больше ожидаемого.
Tau — легко создавайте платформы облачных вычислений с такими функциями, как бессерверные функции WebAssembly, хостинг фронтенда, CI/CD, объектное хранилище, база данных K/V и обмен сообщениями Pub-Sub.
Terraform-provider-openapi — плагин провайдера Terraform, который динамически настраивается во время выполнения на основе документа OpenAPI (ранее известного как файл swagger), содержащего определения открытых API.
TF-profile — профилировщик для запусков Terraform. Генерирует глобальные статистические данные, статистику на уровне ресурсов или визуализации.
TLM — локальный помощник по командной строке, основанный на CodeLLaMa.
Traefik — обратный прокси и балансировщик нагрузки с поддержкой нескольких бэкэндов.
Trubka — инструмент CLI для управления и устранения неполадок в кластерах Apache Kafka с возможностью универсальной публикации/потребления событий протокола буфера и обычного текста в/из Kafka.
UTask — механизм автоматизации, который моделирует и выполняет бизнес-процессы, объявленные в yaml.
Vegeta — инструмент и библиотека нагрузочного тестирования HTTP. Это более 9000!
Wait-for — ожидание события (из командной строки) перед продолжением. Простая оркестровка сервисов Docker и других вещей.
Webhook — инструмент, позволяющий пользователю создавать конечные точки HTTP (хуки), которые выполняют команды на сервере.
Wide — веб-IDE для команд, использующих Golang.
Winrm-cli — инструмент cli для удалённого выполнения команд на компьютерах с Windows.
Кроули (crawley) — веб-скребок/краулер для командной строки.
Крок (croc) — простой и безопасный способ отправки файлов или папок с одного компьютера на другой.
Докумайз (Documize) — современное программное обеспечение для создания вики, которое интегрирует данные из инструментов SaaS.
Ди Пи (dp) — через SDK для обмена данными с блокчейном разработчики могут получить лёгкий доступ к разработке DAPP.
Драйв (drive) — клиент Google Drive для командной строки.
Дупликаси (Duplicacy) — кроссплатформенный инструмент резервного копирования в сети и облаке, основанный на идее дедупликации без блокировки.
Фджира (fjira) — приложение с терминальным пользовательским интерфейсом на основе нечеткого поиска для Attlasian Jira.
Гибед (Gebug) — инструмент, который делает отладку Dockerized Go-приложений очень простой благодаря функциям отладки и горячей перезагрузки.
Джифайл (gfile) — безопасная передача файлов между двумя компьютерами без использования сторонних сервисов через WebRTC.
Го Пакэдж Стор (Go Package Store) — приложение, отображающее обновления для пакетов Go в вашем GOPATH.
Гоу-Пирфликс (go-peerflix) — торрент-клиент для потокового видео.
Гоблин (goblin) — бинарные файлы Golang в curl, созданные гоблинами.
Гобой (GoBoy) — эмулятор Nintendo Game Boy Color, написанный на Go.
Гокк (gocc) — Gocc — это набор компиляторов для Go, написанных на Go.
Годок Тултип (GoDocTooltip) — расширение Chrome для сайтов Go Doc, которое показывает описание функции в виде всплывающей подсказки в списке функций.
Гокапи (Gokapi) — легкий сервер для обмена файлами, срок действия которых истекает после определенного количества загрузок или дней. Похож на Firefox Send, но без публичной загрузки.
Голанд (GoLand) — полнофункциональная кроссплатформенная IDE для Go.
Гонб (GoNB) — интерактивное программирование на Go с Jupyter Notebooks (также работает в VSCode, Binder и Google Colab).
Гор (Gor) — инструмент репликации HTTP-трафика для воспроизведения трафика из рабочей среды в тестовую/разрабатываемую среду в реальном времени.
Гуора (Guora) — самообслуживаемое веб-приложение, похожее на Quora, написанное на Go.
Хуфи (hoofli) — создание диаграмм PlantUML на основе проверок сети Chrome или Firefox.
Хот свап (hotswap) — комплексное решение для перезагрузки кода Go без перезапуска сервера, прерывания или блокировки любой текущей процедуры.
Хьюго (hugo) — быстрый и современный статический движок веб-сайтов.
Айди (ide) — доступная в браузере IDE. Разработано для Go с Go.
АЙПИ (ipe) — реализация открытого исходного кода Pusher-сервера, совместимая с клиентскими библиотеками Pusher, написанными на GO.
Джойн кап (joincap) — утилита командной строки для объединения нескольких файлов pcap вместе.
Джуйс ФС (JuiceFS) — распределенная файловая система POSIX, построенная на базе Redis и AWS S3.
Джаджу (Juju) — развертывание и оркестровка облачных сервисов, не зависящих от облака, поддерживает EC2, Azure, Openstack, MAAS и другие.
Липс (Leaps) — сервис парного программирования с использованием операционных преобразований.
Эл гоу (lgo) — интерактивное программирование на Go с Jupyter. Поддерживает завершение кода, проверку кода и 100% совместимость с Go.
Лайм текст (limetext) — Lime Text — мощный и элегантный текстовый редактор, разработанный в основном на Go, который стремится стать преемником Sublime Text как свободного программного обеспечения с открытым исходным кодом.
Лайт Айди (LiteIDE) — простая, открытая, кроссплатформенная среда разработки Go. Go-benchmark-app — мощный инструмент для HTTP-бенчмаркинга, объединяющий в себе функции таких инструментов, как Ab, Wrk и Siege. Собирает статистику и различные параметры для бенчмарков и сравнения результатов.
Go-benchmarks — несколько разноплановых микробенчмарков на Go. Сравнивают некоторые языковые особенности с альтернативными подходами.
Go-http-routing-benchmark — бенчмарки и сравнение маршрутизаторов HTTP-запросов на Go.
Go-json-benchmark — бенчмарк JSON на Go.
Go-ml-benchmarks — бенчмарки для машинного обучения на Go.
Go-web-framework-benchmark — веб-фреймворк-бенчмарки на Go.
Go_serialization_benchmarks — бенчмарки методов сериализации на Go.
Gocostmodel — бенчмарки основных базовых операций для языка Go.
Golang-benchmarks — коллекция бенчмарков на Golang.
Golang-sql-benchmark — набор бенчмарков популярных утилит баз данных/SQL на языке Go.
Gospeed — микробенчмарки Go для расчёта скорости языковых конструкций.
Kvbench — бенчмарк базы данных «ключ-значение».
Skynet — микробенчмарки Skynet на 1 миллион потоков.
Speedtest-resize — сравнение различных алгоритмов изменения размера изображений для языка Go.
100 Go Mistakes: How to Avoid Them.
Black Hat Go — программирование на Go для хакеров и пентестеров.
Build an Orchestrator in Go.
Continuous Delivery in Go — практическое руководство по непрерывной доставке показывает, как быстро создать автоматизированный конвейер, который улучшит тестирование, качество кода и конечный продукт.
Creative DIY Microcontroller Project With TinyGo and WebAssembly — введение в компилятор TinyGo с проектами, связанными с Arduino и WebAssembly.
Effective Go: Elegant, efficient, and testable code — откройте уникальную перспективу Go на дизайн программы и начните писать простой, поддерживаемый и тестируемый код Go.
For the Love of Go — вводная книга для начинающих изучать Go.
Go in Practice, Second Edition — углублённое изучение Go, охватывающее такие темы, как параллелизм, тестирование и производительность. Книги по Go
Edition — «Ваша практическая инструкция по разработке на Go: всё об основах и наиболее важных инструментах мощной экосистемы Go».
Know Go: Generics — «Руководство по пониманию и использованию дженериков в Go».
Lets-Go — «Пошаговое руководство по созданию быстрых, безопасных и поддерживаемых веб-приложений с помощью Go».
Lets-Go-Further — «Продвинутые шаблоны для создания API и веб-приложений на Go».
The Power of Go: Tests — «Руководство по тестированию в Go».
The Power of Go: Tools — «Руководство по написанию инструментов командной строки в Go».
Writing A Compiler In Go — книга о десятках методов написания идиоматического, выразительного и эффективного кода на Go, который позволяет избежать распространённых ошибок.
A Go Developer's Notebook — электронная книга.
An Introduction to Programming in Go — электронная книга.
Build a blockchain from scratch in Go with gRPC — «Основополагающее и практическое руководство для эффективного изучения и постепенного создания блокчейна с нуля на Go с использованием gRPC».
Building Web Apps With Go — электронная книга.
Go 101 — книга, посвящённая синтаксису и семантике Go и другим деталям.
Go AST Book (Chinese) — книга, посвящённая пакетам go/.
Go Faster — книга, цель которой — сократить время обучения и помочь быстрее стать профессиональным программистом на Go.
Go Succinctly — электронная книга на персидском языке.
Go with the domain — книга о том, как применять DDD, Clean Architecture и CQRS на практике.
How To Code in Go eBook — 600-страничное введение в Go для начинающих разработчиков.
Learning Go — электронная книга.
Network Programming With Go — книга.
Practical Go Lessons — уроки Go.
Spaceship Go A Journey to the Standard Library — книга.
The Go Programming Language — книга.
Web Application with Go the Anti-Textbook — книга.
Gophers
Free Gophers Pack — набор изображений гоферов от Марии Летты с иллюстрациями и эмоциональными персонажами в векторном и растровом формате.
Go-gopher-Vector — векторные данные гофера Go (.ai, .svg).
gopher-logos — очаровательные логотипы гоферов.
gophericons — гоферические иконки.
gophers — изображения гоферов от Эшли Макнамары.
gophers — бесплатные изображения гоферов.
gophers — случайные изображения гоферов. Ваче.
Добавьте группу вашего города/страны здесь (отправьте PR)
Примечание: в запросе не удалось определить основной язык текста, так как он содержит только названия групп и ссылки на них. Можно предположить, что это английский язык. Продвинутое преобразование JSON в структуру Go — онлайн-инструмент.
justforfunc — канал на YouTube, посвящённый советам и хитростям программирования на языке Go, который ведёт Франческ Кампой (@francesc).
Learn Go Programming — изучение концепций Go с иллюстрациями.
Made with Golang — сайт, где можно найти примеры проектов, созданных с использованием языка Go.
pkg.go.dev — документация по открытым пакетам Go.
r/Golang — новости о языке Go.
studygolang — сообщество studygolang в Китае.
Актуальные репозитории Go на GitHub сегодня — хорошее место для поиска новых библиотек Go.
TutorialEdge — Golang — курс по языку Go.
50 оттенков Go — ловушки, ошибки и распространённые проблемы для новичков в Golang.
Комплексное руководство по структурированному логированию в Go — глубокое погружение в мир структурированного логирования в Go с особым акцентом на недавно принятом предложении slog, которое направлено на то, чтобы принести высокопроизводительное структурированное логирование с уровнями в стандартную библиотеку.
Руководство по электронной коммерции на Golang — создание сайта на Golang для электронной коммерции (включая демонстрацию).
Тур по Go — интерактивный тур по Go.
Создание базы данных в 1000 строк кода — создание NoSQL-базы данных с нуля в 1000 строках кода.
Построение веб-приложения с помощью Golang — электронная книга по построению веб-приложений с помощью Golang.
Разработка и тестирование REST API в Go с помощью Gorilla Mux и PostgreSQL — мы напишем API с помощью мощного Gorilla Mux.
Создание веб-приложений и микросервисов на Go с использованием Gin — знакомство с Gin и как он может помочь вам сократить объём шаблонного кода и построить конвейер обработки запросов.
Кэширование медленных запросов к базе данных — как кэшировать медленные запросы к базе данных.
Отмена MySQL — как отменить MySQL-запросы.
Трек CodeCrafters Golang — достижение мастерства в продвинутом Go путём создания собственных Redis, Docker, Git и SQLite. Включает горутины, системное программирование, файловый ввод-вывод и многое другое.
Шаблоны проектирования в Go — коллекция шаблонов программирования, реализованных в Go.
Разработка Ethereum с Go — небольшая книга по разработке Ethereum с помощью Go.
Игры с Go — серия видеоуроков по обучению программированию и разработке игр.
Go на примере — практическое введение в Go с аннотированными примерами программ.
Шпаргалка по Go — справочная карточка Go.
Учебник по работе с базой данных/sql на Go — введение в database/sql.
Go за 7 дней — изучите всё о Go за 7 дней (от разработчика Nodejs).
Язык программирования Go: учебник — изучение языка программирования Go.
Го-учебник — изучение программирования на Go.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )