1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/awesome-lib-awesome-go

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Awesome Go

awesome-go

Build Status Awesome Slack Widget Netlify Status Track Awesome List Last Commit

Мы используем сообщество Slack для мгновенного общения, следуйте форме здесь, чтобы присоединиться.

awesome-go - Curated list awesome Go frameworks, libraries and software | Product Hunt

Спонсорство:

Особая благодарность

У Awesome Go нет ежемесячной платы, но у нас есть сотрудники, которые усердно работают, чтобы поддерживать его работу. На собранные деньги мы можем отплатить усилия каждого вовлечённого человека! Вы можете увидеть, как мы рассчитываем наши счета и распределение, поскольку это открыто для всего сообщества. Хотите поддержать проект, нажмите здесь.

Кураторский список замечательных фреймворков, библиотек и программного обеспечения Go. Вдохновлён awesome-python.

Вклад:

Пожалуйста, сначала ознакомьтесь с руководством по вкладу. Спасибо всем участникам; вы молодцы!

Если вы видите в этом списке пакет или проект, который больше не поддерживается или не подходит, пожалуйста, отправьте запрос на улучшение этого файла. Спасибо!

Содержание

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.

⬆ back to top

Blockchain

Инструменты для создания блокчейнов.

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.

⬆ back to top

Создание ботов

Библиотеки для создания и работы с ботами.

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. Кингпин и другие библиотеки.

  • strumt (https://github.com/antham/strumt) — библиотека для создания цепочки подсказок.
  • subcmd (https://github.com/bobg/subcmd) — ещё один подход к анализу и выполнению подкоманд. Работает вместе со стандартным пакетом flag.
  • survey (https://github.com/go-survey/survey) — создание интерактивных и доступных запросов с полной поддержкой Windows и терминалов posix.
  • teris-io/cli (https://github.com/teris-io/cli) — простой и полный API для создания интерфейсов командной строки на Go.
  • ts (https://github.com/liujianping/ts) — инструмент для преобразования и сравнения временных меток.
  • ukautz/clif (https://github.com/ukautz/clif) — небольшой фреймворк для интерфейса командной строки.
  • urfave/cli (https://github.com/urfave/cli) — простой, быстрый и весёлый пакет для создания приложений командной строки в Go (ранее codegangsta/cli).
  • version (https://github.com/mszostok/version) — собирает и отображает информацию о версии CLI в различных форматах вместе с уведомлением об обновлении.
  • wlog (https://github.com/dixonwille/wlog) — простой интерфейс логирования, который поддерживает кроссплатформенные цвета и параллелизм.
  • wmenu (https://github.com/dixonwille/wmenu) — простая в использовании структура меню для cli-приложений, которая предлагает пользователям сделать выбор.

⬆ back to top

Конфигурация

Библиотеки для анализа конфигурации.

  • aconfig (https://github.com/cristalhq/aconfig) — простой, полезный и самоуверенный загрузчик конфигурации.
  • bcl (https://github.com/wkhere/bcl) — BCL — это язык конфигурации, похожий на HCL.
  • cleanenv (https://github.com/ilyakaznacheev/cleanenv) — минималистичный считыватель конфигурации (из файлов, ENV и откуда угодно).
  • config (https://github.com/JeremyLoy/config) — конфигурация облачного приложения. Привязывает ENV к структурам всего двумя строками.
  • config (https://github.com/num30/config) — настройка вашего приложения с помощью файла, переменных среды или флагов в двух строках кода.
  • configuration (https://github.com/BoRuDar/configuration) — библиотека для инициализации конфигурационных структур из переменных окружения, файлов, флагов и тега «default».
  • configure (https://github.com/paked/configure) — предоставляет конфигурацию через несколько источников, включая JSON, флаги и переменные среды.
  • configuro (https://github.com/sherifabdlnaby/configuro) — самоуверенная загрузка конфигурации и проверка из ENV и файлов, ориентированная на 12-факторные совместимые приложения.
  • confiq (https://github.com/greencoda/confiq) — структурированный формат данных для библиотеки декодера конфигурации для Go — поддержка нескольких форматов данных.
  • confita (https://github.com/heetch/confita) — каскадная загрузка конфигурации из нескольких бэкэндов в структуру.
  • conflate (https://github.com/the4thamigo-uk/conflate) — библиотека/инструмент для объединения нескольких файлов JSON/YAML/TOML из произвольных URL-адресов, проверки по схеме JSON и применения значений по умолчанию, определённых в схеме.
  • env (https://github.com/caarlos0/env) — анализирует переменные окружения в структуры Go (с значениями по умолчанию).
  • env (https://github.com/junk1tm/env) — лёгкий пакет для загрузки переменных окружения в структуры.
  • env (https://github.com/syntaqx/env) — утилита для работы с окружением с поддержкой демаршалинга в структуры.
  • envconfig (https://github.com/vrischmann/envconfig) — считывает вашу конфигурацию из переменных окружения.
  • envh (https://github.com/antham/envh) — помощники для управления переменными окружения.
  • fig (https://github.com/kkyr/fig) — крошечная библиотека для чтения конфигурации из файла и переменных окружения (с проверкой и значениями по умолчанию).
  • genv (https://github.com/sakirsensoy/genv) — легко считывайте переменные окружения с поддержкой dotenv.
  • go-array (https://github.com/deatil/go-array) — пакет Go, который считывает или устанавливает данные из карты, среза или json.
  • go-aws-ssm (https://github.com/PaddleHQ/go-aws-ssm) — пакет Go, который извлекает параметры из AWS System Manager — Parameter Store.
  • go-cfg (https://github.com/dsbasko/go-cfg) — библиотека предоставляет унифицированный способ считывания данных конфигурации в структуру из различных источников, таких как env, флаги и конфигурация. Файлы (*.json, *.yaml, *.toml, *.env).
  • 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.

⬆ back to top

Непрерывная интеграция

Инструменты для непрерывной интеграции.

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-препроцессоры

Библиотеки для препроцессинга CSS-файлов.

gcss — чистый CSS-препроцессор Go.

go-libsass — обёртка Go для 100% совместимого с Sass проекта libsass. Benthos — мост потоковой передачи сообщений между различными протоколами.

CloudQuery — высокопроизводительная платформа интеграции данных ETL с подключаемой архитектурой.

Omniparser — универсальная библиотека ETL, которая анализирует текстовый ввод (CSV/txt/JSON/XML/EDI/X12/EDIFACT и т. д.) в потоковом режиме и преобразует данные в вывод JSON с использованием управляемой данными схемы.

⬆ back to top

Структуры данных и алгоритмы

Упаковка битов и сжатие

  • bingo — быстрая упаковка нативных типов в байты без выделения памяти с сохранением лексикографического порядка.
  • binpacker — упаковщик и распаковщик двоичных файлов помогает пользователю создавать пользовательские двоичные потоки.
  • bit — структура данных множества в Golang с бонусными функциями для работы с битами.
  • crunch — пакет Go, реализующий буферы для удобной обработки различных типов данных.
  • go-ef — реализация на Go кодирования Элиаса-Фано.
  • roaring — пакет Go, реализующий сжатые битовые наборы.

Битовые множества

  • bitmap — плотная, без выделения памяти, поддерживающая SIMD растровая графика/битовое множество в Go.
  • bitset — пакет Go, реализующий битовые множества.

Фильтры Блума и Кукушки

  • bloom — пакет Go, реализующий фильтры Блума.
  • bloom — фильтры Блума, реализованные в Go.
  • bloom — реализация фильтра Блума в Golang.
  • bloomfilter — ещё одна реализация фильтра Блума на Go, совместимая с библиотекой Guava для Java.
  • boomfilters — вероятностные структуры данных для обработки непрерывных неограниченных потоков.
  • cuckoo-filter — фильтр Кукушки: комплексный фильтр Кукушки, который можно настраивать и оптимизировать по пространству по сравнению с другими реализациями, доступны все функции, упомянутые в оригинальной статье.
  • cuckoofilter — фильтр Кукушки: хорошая альтернатива фильтру Блума с подсчётом, реализованная в Go.
  • ring — реализация в Go высокопроизводительного и безопасного для потоков фильтра Блума.

Коллекции структур данных и алгоритмов

  • algorithms — алгоритмы и структуры данных. Изучение CLRS.
  • go-datastructures — коллекция полезных, эффективных и безопасных для потоков структур данных.
  • gods — структуры данных Go. Контейнеры, множества, списки, стеки, карты, двунаправленные карты, деревья, HashSet и т.д.
  • gostl — библиотека структур данных и алгоритмов для Go, предназначенная для предоставления функций, аналогичных C++ STL.

Итераторы

  • goterator — реализация итератора для обеспечения функциональности map и reduce.
  • iter — реализация Go итераторов и алгоритмов C++ STL.

Карты

См. также Базы данных для более сложных хранилищ ключ-значение и Деревья для дополнительных упорядоченных реализаций карт.

  • cmap — потокобезопасная параллельная карта для Go, поддерживает использование interface{} в качестве ключа и автоматическое масштабирование сегментов.
  • dict — словари Python (dict) для Go.
  • go-shelve — постоянный объект, похожий на карту, для языка программирования Go. Поддерживает несколько встроенных хранилищ «ключ-значение».
  • goradd/maps — общий интерфейс карты Go 1.18+ для карт; безопасные карты; упорядоченные карты; упорядоченные, безопасные карты и т. д.

Прочие структуры данных и алгоритмы

Конкретный язык исходного текста определить не удалось.

Перевод на русский язык:

  • concurrent-writer (https://github.com/free/concurrent-writer) — высококонкурентная замена bufio.Writer;
  • conjungo (https://github.com/InVisionApp/conjungo) — небольшая, мощная и гибкая библиотека для слияния;
  • count-min-log (https://github.com/seiflotfy/count-min-log) — реализация Go Count-Min-Log эскиза: приблизительный подсчёт с приблизительными счётчиками (похоже на эскиз Count-Min, но использует меньше памяти);
  • fsm (https://github.com/cocoonspace/fsm) — пакет конечных автоматов;
  • genfuncs (https://github.com/nwillc/genfuncs) — вдохновлённый Kotlin Sequence и Map пакет дженериков Go 1.18+;
  • go-generics (https://github.com/bobg/go-generics) — универсальные утилиты для слайсов, карт, наборов, итераторов и горутин;
  • go-geoindex (https://github.com/hailocab/go-geoindex) — геоиндекс в памяти;
  • go-rampart (https://github.com/francesconi/go-rampart) — определение того, как интервалы связаны друг с другом;
  • go-rquad (https://github.com/aurelien-rainone/go-rquad) — региональные квадродеревья с эффективным определением местоположения точек и поиском соседей;
  • go-tuple (https://github.com/barweiss/go-tuple) — универсальная реализация кортежей для Go 1.18+;
  • go18ds (https://github.com/daichi-m/go18ds) — структуры данных Go с использованием дженериков Go 1.18;
  • gofal (https://github.com/xxjwxc/gofal) — дробный API для Go;
  • gogu (https://github.com/esimov/gogu) — всеобъемлющая, многократно используемая и эффективная библиотека универсальных функций и структур данных для параллельной безопасности;
  • gota (https://github.com/kniren/gota) — реализация фреймов данных, серий и методов обработки данных для Go;
  • hide (https://github.com/emvi/hide) — тип идентификатора с маршалингом в/из хэша для предотвращения отправки идентификаторов клиентам;
  • hilbert (https://github.com/google/hilbert) — пакет Go для сопоставления значений с заполняющими пространство кривыми, такими как кривые Гильберта и Пеано;
  • hyperloglog (https://github.com/axiomhq/hyperloglog) — реализация HyperLogLog со Sparse, LogLog-Beta коррекцией смещения и сокращением пространства TailCut;
  • quadtree (https://github.com/s0rg/quadtree) — универсальное квадродерево с нулевым выделением памяти, покрытое тестами на 100%;
  • slices (https://github.com/srfrog/slices) — функции, которые работают со срезами; похожи на пакет strings, но адаптированы для работы со срезами;
  • slices (https://github.com/twharmon/slices) — чистые, универсальные функции для срезов;

Nullable Types

  • nan (https://github.com/kak-tus/nan) — нулевые структуры выделения в одной библиотеке с удобными функциями преобразования, маршалерами и демаршалерами;
  • null (https://github.com/emvi/null) — типы, допускающие значение NULL в Go, которые можно маршалировать/демаршалировать в/из JSON;
  • typ (https://github.com/gurukami/typ) — типы Null, безопасное преобразование примитивных типов и извлечение значения из сложных структур;

Queues

Sets

Text Analysis

  • 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 и аналогичных баз данных.

  • mgm — MongoDB model-based ODM для Go (основан на официальном драйвере MongoDB).
  • mgo — (неподдерживаемый) драйвер MongoDB для языка Go, который реализует богатый и хорошо протестированный набор функций под очень простым API в соответствии со стандартными идиомами Go.
  • mongo-go-driver — официальный драйвер MongoDB для языка Go.
  • neo4j — привязки Neo4j Rest API для Golang.
  • Neo4j-GO — клиент Neo4j REST в golang.
  • neoism — клиент Neo4j для Golang.
  • qmgo — драйвер MongoDB для Go. Он основан на официальном драйвере MongoDB, но проще в использовании, как Mgo.
  • redeo — Redis-совместимые TCP-серверы/сервисы.
  • redigo — Redigo — это клиент Go для базы данных Redis.
  • redis — клиент Redis для Golang.
  • rueidis — быстрый клиент Redis RESP3 с автоматической конвейеризацией и кэшированием на стороне клиента при поддержке сервера.
  • xredis — типобезопасный, настраиваемый, чистый и простой в использовании клиент Redis.

Поисковые и аналитические базы данных

  • clickhouse-go — ClickHouse SQL-клиент для Go с совместимостью с database/sql.
  • effdsl — построитель запросов Elasticsearch для Go.
  • elastic — Elasticsearch-клиент для Go.
  • elasticsql — конвертирует sql в elasticsearch dsl в Go.
  • elastigo — библиотека Elasticsearch.
  • go-elasticsearch — официальный Elasticsearch-клиент для Go.
  • goes — библиотека для взаимодействия с Elasticsearch.
  • skizze — вероятностные структуры данных, сервис и хранилище.

Дата и время

Библиотеки для работы с датами и временем.

  • approx — расширение Duration, поддерживающее синтаксический анализ/печать длительностей в днях, неделях и годах.
  • carbon — простой, семантический и удобный для разработчиков пакет golang для datetime.
  • carbon — простое расширение Time с множеством методов util, портированных из библиотеки PHP Carbon.
  • cronrange — анализирует выражения диапазона времени в стиле Cron, проверяет, находится ли данное время в каких-либо диапазонах.
  • date — расширяет Time для работы с датами, диапазонами дат, промежутками времени, периодами и временем суток.
  • dateparse — анализирует даты без предварительного знания формата.
  • durafmt — библиотека форматирования длительности времени для Go.
  • feiertage — набор функций для расчёта государственных праздников в Германии, включая специализацию по штатам Германии (Bundesländer). Такие вещи, как Пасха, Пятидесятница, День благодарения...
  • go-anytime — анализируйте даты/время, такие как «следующий декабрь 22-го в 15:00», и диапазоны, такие как «с сегодняшнего дня до следующего четверга», не зная заранее формат.
  • go-datebin — простая библиотека синтаксического анализа datetime.
  • go-persian-calendar — реализация персидского (солнечного хиджры) календаря в Go (golang).
  • go-str2duration — преобразует строку в длительность. Поддержка строки, возвращаемой time.Duration, и многое другое.
  • go-sunrise — вычисляет время восхода и захода солнца для данного местоположения. Frameworks для разработки
  • Tarmac — фреймворк для написания функций, микросервисов или монолитов с использованием WebAssembly.

  • Temporal — система надёжного выполнения кода, которая делает его устойчивым к сбоям и простым в использовании.

  • Torrent — пакет клиента BitTorrent.

  • trpc-go — реализация tRPC на языке Go, это подключаемая высокопроизводительная RPC-инфраструктура.

⬆ back to top

Динамический DNS

Инструменты для обновления динамических DNS-записей:

  • DDNS — персональный клиент DDNS с Digital Ocean Networking DNS в качестве бэкенда.

  • Dyndns — фоновый процесс Go для регулярного автоматического отслеживания IP-адреса и обновления (одного или нескольких) динамических DNS-записей для доменов Google при изменении адреса.

  • GoDNS — инструмент динамического DNS-клиента, поддерживает DNSPod & HE.net, написан на Go.

⬆ back to top

Электронная почта

Библиотеки и инструменты для создания и отправки электронной почты:

  • 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.

  • Anko — интерпретатор на языке Go, который можно использовать для написания сценариев.
  • Binder — библиотека привязки Go к Lua, основанная на gopher-lua.
  • Cel-go — быстрая, портативная и неполная по Тьюрингу система оценки выражений с постепенной типизацией.
  • Ecal — простой встраиваемый скриптовый язык, поддерживающий параллельную обработку событий.
  • Expr — механизм оценки выражений для Go: быстрый, неполный по Тьюрингу, с динамической типизацией и статической типизацией.
  • Gentee — встраиваемый скриптовый язык программирования.
  • Gisp — простой LISP на Go.
  • Go-duktape — привязки движка Duktape JavaScript для Go.
  • Go-lua — порт виртуальной машины Lua 5.2 на чистый Go.
  • Go-php — привязки PHP для Go.
  • Go-python — наивные привязки Go к CPython C-API.
  • Goal — встраиваемый скриптовый массивный язык.
  • Goja — реализация ECMAScript 5.1+ на Go.
  • Golua — привязки Go для Lua C API.
  • Gopher-lua — виртуальная машина и компилятор Lua 5.1, написанные на Go.
  • Gval — настраиваемый язык выражений, написанный на Go.
  • Metacall — кроссплатформенная среда выполнения Polyglot, которая поддерживает NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol и другие языки.
  • Ngaro — встраиваемая реализация виртуальной машины Ngaro, позволяющая писать сценарии на Retro.
  • Prolog — встраиваемый Prolog.
  • Purl — Perl 5.18.2, встроенный в Go.
  • Starlark-go — реализация Starlark на Go: язык, похожий на Python, с детерминированной оценкой и герметичным выполнением.
  • Starlet — оболочка Go для starlark-go, упрощающая выполнение скриптов, предлагающая преобразование данных и полезные библиотеки и расширения Starlark.
  • Tengo — язык сценариев с байткодом, скомпилированный для Go.
  • Wa/凹语言 — язык программирования Wa, встроенный в Go.

⬆ back to top

Обработка ошибок

Библиотеки для обработки ошибок.

  • Emperror — инструменты обработки ошибок и лучшие практики для библиотек и приложений Go.
  • Eris — лучший способ обработки, отслеживания и регистрации ошибок в Go. Совместим со стандартной библиотекой ошибок и github.com/pkg/errors.
  • Errlog — пакет, который позволяет определить ответственный исходный код для ошибки (и некоторые другие функции быстрой отладки). Может быть подключён к любому регистратору на месте.
  • Errors — замена для стандартной библиотеки ошибок и github.com/pkg/errors. Предоставляет различные примитивы обработки ошибок.
  • Neuronlabs/errors — простая обработка ошибок golang с классификационными примитивами.
  • PumpkinSeed/errors — самая простая оболочка ошибок с потрясающей производительностью и минимальными накладными расходами памяти.
  • Tozd/go/errors — предоставление ошибок со стеком вызовов и дополнительными структурированными данными. Совместимо с API github.com/pkg/errors, но не использует его внутри.
  • Naughtygopher/errors — замена встроенной обработки ошибок Go. Это минимальный пакет обработки ошибок с пользовательскими типами ошибок, удобными сообщениями, Unwrap & Is. С очень простыми в использовании и понятными вспомогательными функциями.
  • Cockroachdb/errors — Библиотека ошибок Go с переносимостью ошибок по сети.
  • errorx — многофункциональный пакет ошибок со следами стека, составлением ошибок и многим другим.
  • exception — простая служебная программа для обработки исключений с использованием try-catch в Golang.
  • Falcon — простой, но мощный пакет для обработки ошибок.
  • Fault — эргономичный механизм для упаковки ошибок с целью упрощения структурированных метаданных и контекста для значений ошибок.
  • go-multierror — пакет Go (golang) для представления списка ошибок в виде единой ошибки.
  • multierr — пакет для представления списка ошибок как единой ошибки.
  • oops — обработка ошибок с контекстом, следом стека и фрагментами исходного кода.
  • tracerr — ошибки Golang со следом стека и исходными фрагментами.

⬆ back to top

Обработка файлов

Библиотеки для работы с файлами и файловыми системами.

  • 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 в полезные значения структуры стандартных или пользовательских типов.

⬆ back to top

Функциональное программирование

Пакеты для поддержки функционального программирования в Go.

  • fp-go — набор помощников по функциональному программированию на основе дженериков Golang 1.18+.
  • fpGo — монады, функциональное программирование для Golang.
  • fuego — функциональный эксперимент в Go.
  • go-functional — функциональное программирование в Go с использованием дженериков.
  • go-underscore — полезная коллекция полезных функциональных утилит коллекций Go.
  • gofp — мощная библиотека утилит для Golang, похожая на lodash.
  • mo — монады и популярные абстракции FP, основанные на дженериках Go 1.18+ (Option, Result, Either...).
  • underscore — помощники по функциональному программированию для Go 1.18 и выше.
  • valor — общие типы опций и результатов, которые могут содержать значение.

⬆ back to top

Разработка игр

Отличные библиотеки для разработки игр.

  • Azul3D — игровой движок 3D, написанный на Go.
  • Ebitengine — простой 2D игровой движок на Go.
  • ecs — создайте свой собственный игровой движок, основанный на концепции системы компонентов сущности в Golang.
  • engo — Engo — это открытый исходный код 2D игрового движка, написанного на Go. Он следует парадигме «сущность-компонент-система».
  • fantasyname — генератор имён в стиле фэнтези.
  • g3n — 3D игровой движок Go.
  • go-astar — реализация алгоритма поиска пути A* на Go.
  • go-sdl2 — привязки Go для Simple DirectMedia Layer.
  • go3d — пакет математики 2D/3D для Go, ориентированный на производительность.
  • gonet — скелет игрового сервера, реализованный с помощью golang.
  • goworld — масштабируемый движок игрового сервера с пространственной структурой сущностей и горячей заменой.
  • grid — общая сетка 2D с лучевым и теневым кастингом и поиском пути.
  • Harfang3D — 3D-движок для языка Go, работает в Windows и Linux (Harfang on Go.dev).
  • Leaf — облегчённый каркас игрового сервера.
  • nano — облегчённая, удобная, высокопроизводительная структура игрового сервера на базе golang.
  • Oak — игровой движок Pure Go.
  • Pitaya — масштабируемая структура игрового сервера с поддержкой кластеризации и клиентскими библиотеками для iOS, Android, Unity и других через C SDK.
  • Pixel — созданная вручную библиотека 2D-игр. Прототип (prototype) — кроссплатформенная библиотека для создания настольных игр с использованием минимального API. Поддерживает Windows, Linux и Mac.

Raylib-go (raylib-go) — Go-обвязки для библиотеки raylib, простой и удобной в использовании библиотеки для изучения программирования видеоигр.

Termloop (termloop) — игровой движок на основе терминала для Go, построенный на базе Termbox.

Tile (tile) — ориентированная на данные и дружественная к кэшу 2D-библиотека сеток (TileMap), включает поиск пути, наблюдателей и импорт/экспорт.

⬆ back to top

Генераторы

Инструменты, генерирующие код Go.

  • Convergen (convergen) — многофункциональный генератор кода для копирования типов.
  • Copygen (copygen) — генерация кода без использования рефлексии.
  • Generis (generis) — инструмент генерации кода, предоставляющий дженерики, макросы свободной формы, условную компиляцию и HTML-шаблонирование.
  • Go-enum (go-enum) — генерация кода для перечислений из комментариев к коду.
  • Go-linq (go-linq) — методы запросов LINQ для Go.
  • Goderive (goderive) — выводит функции из входных типов.
  • Goverter (goverter) — генерирует преобразователи путём определения интерфейса.
  • GoWrap (gowrap) — создаёт декораторы для интерфейсов Go с помощью простых шаблонов.
  • Interfaces (interfaces) — утилита командной строки для генерации определений интерфейсов.
  • Jennifer (jennifer) — генерирует произвольный код Go без шаблонов.
  • Oapi-codegen (oapi-codegen) — пакет содержит набор утилит для генерации шаблонного кода Go для сервисов на основе определений OpenAPI 3.0 API.
  • Typeregistry (typeregistry) — библиотека для динамического создания типов.

⬆ back to top

Географические инструменты и серверы

  • Geoos (geoos) — библиотека предоставляет пространственные данные и геометрические алгоритмы.
  • Geoserver (geoserver) — geoserver — это пакет Go для управления экземпляром GeoServer через REST API GeoServer.
  • GIS Manager (gismanager) — публикуйте свои данные ГИС (векторные данные) в PostGIS и Geoserver.
  • Godal (godal) — оболочка Go для GDAL.
  • H3 (h3) — привязки Go для H3, иерархической гексагональной геопространственной системы индексации.
  • H3 GeoJSON (h3 geojson) — утилиты преобразования между индексами H3 и GeoJSON.
  • H3GeoDist (h3geodist) — распределение ячеек Uber H3geo по виртуальным узлам.
  • MBtileserver (mbtileserver) — простой сервер на основе Go для тайлов карт, хранящихся в формате mbtiles.
  • OSM (osm) — библиотека для чтения, записи и работы с данными OpenStreetMap и API.
  • PBF (pbf) — кодировщик/декодер PBF OpenStreetMap.
  • S2 GeoJSON (s2 geojson) — конвертирует GeoJSON в ячейки S2 и демонстрирует некоторые геометрические особенности S2 на карте.
  • S2 Geometry (s2 geometry) — библиотека геометрии S2 в Go.
  • Simplefeatures (simplefeatures) — simplesfeatures — это библиотека 2D-геометрии, которая предоставляет типы Go, моделирующие геометрии, а также алгоритмы, работающие с ними.
  • Tile38 (tile38) — геолокационная БД с пространственным индексом и геофехтованием в реальном времени.
  • Web-Mercator-Projection (web mercator projection) — проект, позволяющий легко использовать и преобразовывать LonLat, Point и Tile для отображения информации, маркеров и т. д. на карте с использованием проекции Web Mercator.
  • WGS84 (wgs84) — библиотека преобразования координат и трансформации (ETRS89, OSGB36, NAD83, RGF93, Web Mercator). Компиляторы Go

Инструменты для компиляции Go на другие языки.

  • c2go — конвертирует код C в код Go.
  • c4go — транслирует код C в код Go.
  • esp32 — транслирует Go в код Arduino.
  • f4go — переводит код FORTRAN 77 в код Go.
  • gopherjs — компилирует из Go в JavaScript.
  • tardisgo — транслирует Golang в Haxe, затем в CPP/CSharp/Java/JavaScript.

Goroutines

Инструменты управления и работы с Goroutines.

  • ants — высокопроизводительный и недорогой пул горутин в Go.
  • artifex — простая очередь заданий в памяти для Golang с использованием диспетчеризации на основе рабочих процессов.
  • async — асинхронный пакет задач со стилем async/await для Go.
  • async (альтернативный вариант) — библиотека синхронизации для Go (Future, Promise, Locks).
  • async — безопасный способ выполнения функций асинхронно с их восстановлением в случае паники.
  • async-job — AsyncJob — это менеджер асинхронных очередей заданий с лёгким кодом, понятностью и скоростью.
  • breaker — гибкий механизм, позволяющий сделать поток выполнения прерывистым.
  • channelify — преобразует вашу функцию так, чтобы она возвращала каналы для простой и мощной параллельной обработки.
  • conc — conc — это ваш набор инструментов для структурированной параллельности в go, который делает общие задачи проще и безопаснее.
  • concurrency-limiter — ограничитель параллелизма с поддержкой тайм-аутов, динамического приоритета и контекстной отмены горутин.
  • conexec — набор инструментов параллельного выполнения, помогающий выполнять функции параллельно эффективным и безопасным способом. Поддерживает указание общего времени ожидания во избежание блокировки и использует пул горутин для повышения эффективности.
  • cyclicbarrier — циклический барьер для golang.
  • execpool — пул, построенный вокруг exec.Cmd, который заранее запускает заданное количество процессов и присоединяет к ним stdin и stdout при необходимости. Очень похож на FastCGI или Apache Prefork MPM, но работает для любой команды.
  • flowmatic — структурированная параллельность стала проще.
  • go-accumulator — решение для накопления событий и их последующей обработки.
  • go-actor — небольшая библиотека для написания параллельных программ с использованием модели акторов.
  • go-floc — легко управляйте горутинами.
  • go-flow — контролируйте порядок выполнения горутин.
  • go-tools/multithreading — управляйте пулом горутин с помощью этой облегчённой библиотеки с простым API.
  • go-trylock — поддержка TryLock для блокировки чтения-записи в Golang.
  • go-waitgroup — как sync.WaitGroup с обработкой ошибок и контролем параллелизма.
  • go-workerpool — вдохновлённый Java Thread Pool, Go WorkerPool предназначен для управления тяжёлыми горутинами Go.
  • go-workers — легко и безопасно запускайте рабочие процессы для больших конвейеров обработки данных.
  • goccm — пакет Go Concurrency Manager ограничивает количество горутин, которые могут выполняться одновременно.
  • gohive — высокопроизводительный и простой в использовании пул горутин для Go.
  • gollback — ... Асинхронные функции и утилиты для управления выполнением замыканий и колбэков.

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 — пул горутин, который ограничивает параллелизм выполнения задач, а не количество поставленных в очередь задач.

⬆ back to top

GUI

Библиотеки для создания приложений с графическим интерфейсом пользователя.

Инструментарии

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.

  • cameron — генератор аватаров для Go.
  • canvas — векторная графика в PDF, SVG или растровое изображение.
  • color-extractor — извлечение доминирующего цвета без внешних зависимостей.
  • darkroom — прокси-сервер изображений с изменяемыми бэкэндами хранения и механизмами обработки изображений, ориентированный на скорость и отказоустойчивость.
  • draft — генерация диаграмм архитектуры микросервисов высокого уровня для GraphViz с использованием простого синтаксиса YAML.
  • geopattern — создание красивых генеративных паттернов изображений из строки.
  • gg — 2D-рендеринг на чистом Go.
  • gift — набор фильтров обработки изображений.
  • gltf — эффективный и надёжный читатель, писатель и валидатор glTF 2.0.
  • go-cairo — привязка Go к графической библиотеке cairo.
  • go-gd — привязка Go к библиотеке GD.
  • go-nude — обнаружение наготы с помощью Go.
  • go-qrcode — генерация QR-кодов с персонализированными стилями, позволяющими настраивать цвет, размер блока, форму и значки.
  • go-webcolors — порт библиотеки webcolors из Python на Go.
  • go-webp — библиотека для кодирования и декодирования изображений в формате WebP с использованием libwebp.
  • gocv — пакет Go для компьютерного зрения с использованием OpenCV 3.3+.
  • goimagehash — пакет перцептивного хеширования изображений Go.
  • goimghdr — модуль imghdr определяет тип изображения, содержащегося в файле, для Go.
  • govatar — библиотека и инструмент CMD для создания забавных аватаров.
  • govips — быстрая и эффективная библиотека обработки и изменения размера изображений для Go.
  • gowitness — скриншоты веб-страниц с использованием Go и безголового Chrome в командной строке.
  • gridder — основанная на сетке 2D графическая библиотека.
  • image2ascii — преобразование изображения в ASCII.
  • imagick — привязка Go к ImageMagick's MagickWand C API.
  • imaginary — быстрый и простой микросервис HTTP для изменения размера изображений.
  • imaging — простой пакет обработки изображений Go.
  • imagor — быстрый, безопасный сервер обработки изображений и библиотека Go с использованием libvips.
  • img — выбор инструментов для работы с изображениями.
  • ln — 3D рендеринг линейных рисунков в Go.
  • mergi — инструмент и библиотека Go для обработки изображений (объединение, обрезка, изменение размера, водяные знаки, анимация).
  • mort — сервер хранения и обработки изображений, написанный на Go.
  • mpo — декодер и инструмент преобразования для MPO 3D фотографий.
  • picfit — сервер изменения размера изображений, написанный на Go.
  • pt — трассировщик путей, написанный на Go.
  • rez — изменение размера изображений на чистом Go и SIMD.
  • scout — Scout — это отдельное программное решение с открытым исходным кодом для самостоятельной системы видеонаблюдения.
  • smartcrop — находит хорошие обрезки для произвольных изображений и размеров обрезки.
  • steganography — чистая библиотека Go для LSB-стеганографии.
  • stegify — инструмент Go для LSB-стеганографии, способный скрывать любой файл. В запросе представлен список библиотек и инструментов для разработки программного обеспечения.

В тексте упоминаются библиотеки и инструменты для работы с форматами изображений, библиотеки для программирования устройств интернета вещей (IoT), а также библиотеки для планирования заданий.

В запросе нет информации о том, как использовать эти инструменты. Для получения более подробных сведений рекомендуется обратиться к документации или примерам использования каждого инструмента.

Примечание: в запросе есть ссылки на ресурсы GitHub. В ответе они не представлены, поскольку не являются частью исходного текста. ↑ back to top

Машинное обучение

Библиотеки для машинного обучения.

  • bayesian — наивная байесовская классификация для Golang.
  • CloudForest — быстрые, гибкие, многопоточные ансамбли деревьев решений для машинного обучения на чистом Go.
  • ddt — динамическое дерево решений, создание деревьев с настраиваемыми правилами.
  • eaopt — библиотека эволюционной оптимизации.
  • evoli — библиотека генетического алгоритма и роя частиц.
  • fonet — библиотека глубоких нейронных сетей, написанная на Go.
  • go-cluster — реализация алгоритмов кластеризации k-modes и k-prototypes на Go.
  • go-deep — многофункциональная библиотека нейронных сетей на Go.
  • go-fann — привязки Go для библиотеки быстрых искусственных нейронных сетей (FANN).
  • go-featureprocessing — быстрая и удобная обработка признаков для машинного обучения с низкой задержкой на Go.
  • go-galib — библиотека генетических алгоритмов, написанная на Go / golang.
  • go-pr — пакет распознавания образов на Go lang.
  • gobrain — нейронные сети, написанные на go.
  • godist — различные распределения вероятностей и связанные методы.
  • goga — библиотека генетических алгоритмов для Go.
  • GoLearn — общая библиотека машинного обучения для Go.
  • golinear — привязки liblinear для Go.
  • GoMind — упрощённая библиотека нейронных сетей в Go.
  • goml — онлайн-машинное обучение на Go.
  • GoMLX — ускоренная среда машинного обучения для Go.
  • gonet — нейронная сеть для Go.
  • Goptuna — фреймворк байесовской оптимизации для функций чёрного ящика, написанный на Go. Всё будет оптимизировано.
  • goRecommend — библиотека алгоритмов рекомендаций, написанных на Go.
  • gorgonia — основанная на графах вычислительная библиотека, подобная Theano для Go, предоставляющая примитивы для построения различных алгоритмов машинного обучения и нейронных сетей.
  • gorse — бэкенд автономной рекомендательной системы на основе коллаборативной фильтрации, написанной на Go.
  • goscore — Go Scoring API для PMML.
  • gosseract — пакет Go для OCR (оптического распознавания символов), использующий библиотеку Tesseract C++.
  • hugot — Huggingface transformer pipelines для golang с onnxruntime.
  • libsvm — версия libsvm для Golang, основанная на LIBSVM 3.14.
  • m2cgen — CLI-инструмент для трансляции обученных классических моделей машинного обучения в собственный код Go с нулевыми зависимостями, написан на Python с поддержкой языка Go.
  • neat — ... Plug-and-play, параллельный фреймворк Go для NeuroEvolution of Augmenting Topologies (NEAT).
  • neural-go — многослойная перцепторная сеть, реализованная на Go, с обучением через обратное распространение.
  • ocrserver — простой API-сервер OCR, который легко развёртывается с помощью Docker и Heroku.
  • onnx-go — интерфейс Go для Open Neural Network Exchange (ONNX).
  • probab — функции распределения вероятностей. Байесовский вывод. Написано на чистом Go.
  • randomforest — простая в использовании библиотека случайных лесов для Go.
  • regommend — механизм рекомендаций и совместной фильтрации.
  • shield — байесовский текстовый классификатор с гибкими токенизаторами и бэкэндами хранения для Go.
  • tfgo — простые в использовании привязки Tensorflow: упрощают использование официальных привязок Tensorflow Go. Определение вычислительных графов в Go, загрузка и выполнение моделей, обученных на Python.
  • Varis — нейронная сеть Golang.

⬆ back to top

Messaging

Библиотеки, реализующие системы обмена сообщениями.

  • ami — клиент Go для надёжных очередей на основе Redis Cluster Streams.
  • amqp — клиентская библиотека RabbitMQ для Go.
  • APNs2 — поставщик HTTP/2 Apple Push Notification для Go — отправка push-уведомлений в приложения iOS, tvOS, Safari и OSX.
  • Asynq — простая, надёжная и эффективная распределённая очередь задач для Go, построенная поверх Redis.
  • Beaver — сервер обмена мгновенными сообщениями для создания масштабируемых уведомлений внутри приложений, многопользовательских игр, чатов в веб-приложениях и мобильных приложениях.
  • Bus — минималистичная реализация шины сообщений для внутренней коммуникации.
  • Centrifugo — сервер обмена сообщениями в реальном времени (Websockets или SockJS) на Go.
  • Chanify — сервер push-уведомлений для отправки сообщений на ваши устройства iOS.
  • Commander — высокоуровневый потребитель/производитель, управляемый событиями, поддерживающий различные «диалекты», такие как Apache Kafka.
  • Confluent Kafka Golang Client — confluent-kafka-go — это клиент Golang от Confluent для Apache Kafka и платформы Confluent.
  • dbus — собственные привязки Go для D-Bus.
  • drone-line — отправка уведомлений Line с использованием двоичного файла, docker или Drone CI.
  • emitter — излучает события с использованием подхода Go, с подстановочными знаками, предикатами, возможностями отмены и многими другими преимуществами.
  • event — реализация шаблона наблюдателя.
  • EventBus — облегчённая шина событий с асинхронной совместимостью.
  • gaurun-client — Gaurun Client, написанный на Go.
  • Glue — надёжная библиотека сокетов Go и Javascript (альтернатива Socket.io).
  • go-eventbus — простой пакет шины событий для Go.
  • Go-MediatR — библиотека для обработки шаблонов посредников и упрощённых шаблонов CQRS в архитектуре, управляемой событиями, вдохновлённая библиотекой csharp MediatR.
  • go-mq — клиент RabbitMQ с декларативной конфигурацией.
  • go-notify — собственная реализация спецификации уведомлений freedesktop.
  • go-nsq — официальный пакет Go для NSQ.
  • go-res — пакет для создания служб REST/в реальном времени, где... Клиенты синхронизируются без проблем, используя NATS и Resgate.
  • go-socket.io — библиотека socket.io для golang, фреймворк для приложений реального времени.
  • go-vitotrol — клиентская библиотека для веб-сервиса Viessmann Vitotrol.
  • Gollum — мультиплексор n:m, который собирает сообщения из разных источников и транслирует их на ряд направлений.
  • golongpoll — HTTP-сервер с длительным опросом, упрощающий веб-публикацию/подписку.
  • gopush-cluster — кластер push-серверов go.
  • gorush — сервер push-уведомлений с использованием APNs2 и Google GCM.
  • gosd — библиотека для планирования отправки сообщений в канал.
  • guble — сервер обмена сообщениями с использованием push-уведомлений (Google Firebase Cloud Messaging, Apple Push Notification services, SMS), а также веб-сокетов, REST API, с поддержкой распределённой работы и сохранения сообщений.
  • hare — удобная библиотека для отправки сообщений и прослушивания TCP-сокетов.
  • hub — хаб сообщений/событий для Go-приложений, использующий паттерн публикации/подписки с поддержкой псевдонимов, таких как биржи rabbitMQ.
  • hypermatch — очень быстрая и эффективная библиотека Go для сопоставления событий с большим набором правил.
  • jazz — простая абстракция RabbitMQ для администрирования очередей и публикации и потребления сообщений.
  • machinery — асинхронная очередь задач/очередь заданий, основанная на распределённом обмене сообщениями.
  • mangos — чистая реализация Go протокола Nanomsg («Протоколы масштабируемости») с транспортной совместимостью.
  • melody — минималистичный фреймворк для работы с сеансами веб-сокетов, включает в себя широковещательную рассылку и автоматическую обработку ping/pong.
  • Mercure — сервер и библиотека для рассылки обновлений сервера с использованием протокола Mercure (построенного на основе Server-Sent Events).
  • messagebus — messagebus представляет собой простую асинхронную шину сообщений Go, идеально подходящую для использования в качестве шины событий при выполнении поиска событий, CQRS, DDD.
  • NATS Go Client — Go-клиент для системы обмена сообщениями NATS.
  • nsq-event-bus — крошечная оболочка вокруг темы и канала NSQ.
  • oplog — универсальная система oplog/репликации для REST APIs.
  • pubsub — простой пакет pubsub для Go.
  • Quamina — быстрое сопоставление с образцом для фильтрации сообщений и событий.
  • rabbitroutine — лёгкая библиотека, которая обрабатывает автоматическое переподключение RabbitMQ и повторные попытки публикации. Библиотека учитывает необходимость повторного объявления сущностей в RabbitMQ после переподключения.
  • rabbus — крошечная оболочка над биржами и очередями amqp.
  • rabtap — универсальное приложение cli для RabbitMQ.
  • RapidMQ — RapidMQ представляет собой лёгкую и надёжную библиотеку для управления локальной очередью сообщений.
  • Ratus — Ratus представляет собой асинхронный сервер очереди задач RESTful.
  • redisqueue — redisqueue предоставляет производителя и потребителя очереди, которая использует потоки Redis.
  • rmqconn — переподключение RabbitMQ. Оболочка над amqp.Connection и amqp.Dial, позволяющая выполнить переподключение при разрыве соединения до принудительного вызова метода Close(). Сарама (Sarama) — библиотека Go для Apache Kafka.

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 и... Гибкость

  • kinit — настраиваемый контейнер внедрения зависимостей с глобальным режимом, каскадной инициализацией и безопасной финализацией при панике.
  • kod — основанный на дженериках фреймворк внедрения зависимостей для Go.
  • linker — основанная на рефлексии библиотека внедрения зависимостей и инверсии управления с поддержкой жизненного цикла компонентов.
  • nject — безопасный по типу, рефлексивный фреймворк для библиотек, тестов, конечных точек HTTP и запуска служб.
  • ore — лёгкий, универсальный и простой контейнер внедрения зависимостей (DI).
  • wire — строгое внедрение зависимостей во время выполнения для Golang.

⬆ back to top

Структура проекта Неофициальный набор шаблонов для структурирования проектов.

  • ardanlabs/service — стартовый набор для создания масштабируемых веб-сервисов промышленного уровня.
  • cookiecutter-golang — шаблон приложения Go для быстрого запуска проектов в соответствии с лучшими практиками производства.
  • go-blueprint — позволяет пользователям быстро создать проект Go, используя популярный фреймворк.
  • go-module — шаблон для типичного модуля, написанного на Go.
  • go-sample — пример макета для проектов приложений Go с реальным кодом.
  • go-starter — самоуверенный готовый к производству RESTful JSON бэкенд-шаблон, тесно интегрированный с VSCode DevContainers.
  • go-todo-backend — пример Go Todo Backend с использованием модульной структуры проекта для микросервиса продукта.
  • gobase — простой скелет для приложения golang с базовой настройкой для реального приложения golang.
  • golang-standards/project-layout — набор общих исторических и новых шаблонов структуры проектов в экосистеме Go. Обратите внимание: несмотря на название организации, они не представляют официальные стандарты Go, см. эту проблему для получения дополнительной информации. Тем не менее некоторые могут найти макет полезным.
  • golang-templates/seed — шаблон репозитория приложения GitHub.
  • goxygen — генерирует современный веб-проект с Go и Angular, React или Vue за считанные секунды.
  • insidieux/inizio — генератор структуры проекта Golang с плагинами.
  • modern-go-application — шаблон приложения и пример применения современных практик.
  • nunu — Nunu — это инструмент для создания приложений Go.
  • pagoda — быстрый, простой стартовый комплект полнофункциональной веб-разработки, созданный на Go.
  • scaffold — Scaffold генерирует макет начального проекта Go. Позволяет сосредоточиться на реализованной бизнес-логике.
  • wangyoucao577/go-project-layout — сборник практик и обсуждений о том, как структурировать макет проекта Go.

⬆ back to top

Строки Библиотеки для работы со строками.

  • bexp — реализация Go механизма расширения скобок для генерации произвольных строк.
  • caps — библиотека преобразования регистра.
  • go-formatter — реализует замену полей, окружённых фигурными скобками {}, в формате строк.
  • gobeam/Stringy — библиотека манипуляции строками для преобразования строки в верблюжий регистр, змеиный регистр, kebab-регистр / slugify и т. д. strcase — реализация без учёта регистра стандартных пакетов библиотеки для работы со строками и байтами.

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 или программно.

  • health — простая и гибкая библиотека проверки работоспособности для Go.
  • health — простая в использовании, расширяемая библиотека проверки работоспособности.
  • healthcheck — самоуверенный и параллельный обработчик проверки работоспособности HTTP для RESTful-сервисов.
  • hostutils — библиотека Go для упаковки и распаковки списков FQDN.
  • indigo — распределённый генератор уникальных идентификаторов с использованием Sonyflake и кодированием Base58.
  • lk — простая библиотека лицензирования для Golang.
  • llvm — библиотека для взаимодействия с LLVM IR на чистом Go.
  • metrics — библиотека для инструментария метрик и предоставления Prometheus.
  • morse — библиотека для преобразования в азбуку Морзе и из неё.
  • numa — NUMA — это служебная библиотека, написанная на Go. Она помогает писать код, учитывающий NUMA.
  • openapi — парсер OpenAPI 3.x.
  • pdfgen — HTTP-сервис для создания PDF из запросов Json.
  • persian — некоторые утилиты для персидского языка в Go.
  • sandid — у каждой песчинки на земле есть свой идентификатор.
  • shellwords — библиотека Golang для манипулирования строками в соответствии с правилами анализа слов оболочки UNIX Bourne.
  • shortid — распределённое создание суперкоротких, уникальных, непоследовательных, удобных для URL идентификаторов.
  • shoutrrr — библиотека уведомлений, предоставляющая лёгкий доступ к различным службам обмена сообщениями, таким как Slack, Mattermost, Gotify и SMTP, среди прочих.
  • sitemap-format — простой генератор карты сайта с небольшим синтаксическим сахаром.
  • stateless — свободная библиотека для создания конечных автоматов.
  • stats — отслеживает статистику Go MemStats + System, такую как память, подкачка и ЦП, и отправляет через UDP куда угодно для ведения журнала и т. д.
  • turtle — эмодзи для Go.
  • url-shortener — современный, мощный и надёжный микросервис сокращения URL с поддержкой MySQL.
  • VarHandler — генерирует шаблонный ввод и вывод обработки HTTP.
  • varint — более быстрый кодировщик/декодер целых чисел переменной длины, чем тот, что предоставляется в стандартной библиотеке.
  • xdg — спецификации FreeDesktop.org (xdg), реализованные в Go.
  • xkg — X Keyboard Grabber.
  • xz — пакет Golang только для чтения и записи xz-сжатых файлов.

⬆ back to top

Обработка естественного языка

Библиотеки для работы с человеческими языками.

См. также Обработка текста и Анализ текста.

Определение языка

  • 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 — корректор орфографии для испанского языка или создание собственного.

Слагфайеры

  • go-slugify — создание красивых слагов с поддержкой нескольких языков.
  • slug — дружественный к URL slugify с поддержкой нескольких языков.
  • Slugify — приложение slugify на Go, которое обрабатывает строки.

Токенизаторы

  • gojieba — это реализация на Go jieba, который представляет собой алгоритм разбиения китайских слов.
  • gotokenizer — токенизатор, основанный на словаре и биграммных языковых моделях для Golang. (Сейчас поддерживает только сегментацию китайского языка).
  • gse — эффективная сегментация текста на Go; поддержка английского, китайского, японского и других языков.
  • MMSEGO — это реализация GO MMSEG, который является алгоритмом разбиения китайских слов.
  • prose — библиотека для обработки текста, которая поддерживает токенизацию, тегирование частей речи, извлечение именованных сущностей и многое другое. Только английский язык.
  • segment — библиотека Go для выполнения сегментации текста Unicode, как описано в Приложении № 29 стандарта Unicode.
  • sentences — токенайзер предложений: преобразует текст в список предложений.
  • shamoji — пакет фильтрации слов shamoji, написанный на Go.
  • stemmer — пакеты стеммеров для языка программирования Go. Включает стеммеры для английского и немецкого языков.
  • textcat — пакет Go для категоризации текста на основе n-грамм, с поддержкой utf-8 и необработанного текста.

Перевод

  • 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, с высокой производительностью и низкой стоимостью памяти, неблокирующее, управляемое событиями, простое в использовании.

⬆ back to top

HTTP Clients

Библиотеки для выполнения 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.

⬆ back to top

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.

⬆ back to top

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, которые можно экспортировать. Производительность

  • go-instrument — автоматически добавляет промежутки ко всем методам и функциям.
  • jaeger — распределённая система отслеживания.
  • mm-go — универсальное ручное управление памятью для golang.
  • pixie — отслеживание без инструментов для приложений Golang через eBPF.
  • profile — простой пакет поддержки профилирования для Go.
  • statsviz — визуализация в реальном времени статистики времени выполнения приложения Go.
  • tracer — простое и лёгкое отслеживание.

Язык запросов

  • api-fu — комплексная реализация GraphQL.
  • dasel — запрос и обновление структур данных с помощью селекторов из командной строки. Сравнимо с jq/yq, но поддерживает JSON, YAML, TOML и XML с нулевыми зависимостями во время выполнения.
  • gojsonq — простой пакет Go для запроса данных JSON.
  • goven — язык запросов, который можно использовать для любой схемы базы данных.
  • gqlgen — библиотека сервера GraphQL на основе генерации кода go.
  • grapher — построитель полей GraphQL с использованием универсальных шаблонов Go с дополнительными утилитами и функциями.
  • graphql — парсер GraphQL + утилиты.
  • graphql — сервер GraphQL с акцентом на простоте использования.
  • graphql-go — реализация GraphQL для Go.
  • gws — клиент и сервер Apollo «GraphQL over Websocket».
  • jsonpath — библиотека запросов для извлечения части JSON на основе синтаксиса JSONPath.
  • jsonql — библиотека выражений запросов JSON в Golang.
  • jsonslice — запросы Jsonpath с расширенными фильтрами.
  • mql — Model Query Language (mql) — это язык запросов для ваших моделей баз данных.
  • rql — Resource Query Language для REST API.
  • rqp — анализатор запросов REST API. Поддерживаются прямые операции фильтрации, проверки, а также операции AND и OR в запросе.
  • straf — легко преобразуйте структуры Golang в объекты GraphQL.

Отражение

  • copy — пакет для быстрого копирования структур разных типов.
  • Deepcopier — простое копирование структур для Go.
  • go-deepcopy — быстрая библиотека глубокого копирования.
  • goenum — общая структура перечисления на основе универсальных шаблонов и отражения, которая позволяет быстро определять перечисления и использовать набор полезных методов по умолчанию.
  • gotype — анализ исходного кода Golang, использование аналогично пакету reflect.
  • gpath — библиотека для упрощения доступа к полям структуры с выражением Go в отражении.
  • objwalker — обход объектов Go с отражением.
  • reflectutils — помощники для работы с отражением: анализ тегов структуры; рекурсивный обход; заполнение значения из строки.

Встраивание ресурсов

  • debme — создание embed.FS из существующего подкаталога embed.FS.
  • esc — встраивает файлы в программы Go и предоставляет интерфейсы http.FileSystem.
  • fileb0x — простой инструмент для встраивания файлов в Go с упором на «настройку» и простоту использования. Go-ресурсы (https://github.com/omeid/go-resources) — встраивание ресурсов без излишеств с помощью Go.

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) — библиотека основных... Граф-алгоритмы

  • jsonl-graph — инструмент для работы с графами JSONL с поддержкой graphviz.
  • ode — решатель обыкновенных дифференциальных уравнений (ОДУ), который поддерживает расширенные состояния и условия остановки итерации на основе каналов.
  • orb — 2D геометрические типы с отсечением, поддержкой GeoJSON и Mapbox Vector Tile.
  • pagerank — алгоритм взвешенного PageRank, реализованный на Go.
  • piecewiselinear — крошечная библиотека линейной интерполяции.
  • PiHex — реализация алгоритма «Бейли-Борвейн-Плуфф» для шестнадцатеричного числа Пи.
  • Poly — пакет Go для инженерных организмов.
  • rootfinding — библиотека алгоритмов поиска корней для нахождения корней квадратичных функций.
  • sparse — форматы разреженных матриц Go для линейной алгебры, поддерживающие научные приложения и приложения машинного обучения, совместимые с библиотеками матриц gonum.
  • stats — статистический пакет с общими функциями, отсутствующими в стандартной библиотеке Golang.
  • streamtools — универсальный графический инструмент для работы со потоками данных.
  • TextRank — реализация TextRank на Golang с расширяемыми функциями (резюмирование, взвешивание, извлечение фраз) и поддержкой многопоточности (goroutine).
  • topk — эскизы скользящего окна и регулярного топ-K на основе алгоритма HeavyKeeper.
  • triangolatte — библиотека триангуляции 2D. Позволяет переводить линии и полигоны (оба основаны на точках) на язык графических процессоров.

⬆ back to top

Безопасность

Библиотеки, которые помогают сделать ваше приложение более безопасным.

  • acmetool — клиентский инструмент ACME (Let's Encrypt) с автоматическим обновлением.
  • acopw-go — небольшой пакет генератора паролей с криптографической защитой для Go.
  • acra — сетевой прокси-сервер шифрования для защиты приложений на базе баз данных от утечек данных: сильное выборочное шифрование, предотвращение SQL-инъекций, система обнаружения вторжений.
  • age — простой, современный и безопасный инструмент шифрования (и библиотека Go) с небольшими явными ключами, без параметров конфигурации и композиционностью в стиле UNIX.
  • argon2-hashing — лёгкая оболочка вокруг пакета Go argon2, которая точно соответствует стандартной библиотеке Bcrypt и пакету simple-scrypt.
  • argon2pw — генерация хэша пароля Argon2 с постоянным сравнением паролей.
  • autocert — автоматическое предоставление сертификатов Let's Encrypt и запуск TLS-сервера.
  • BadActor — тюремщик в памяти, управляемый приложением, созданный в духе fail2ban.
  • beelzebub — безопасная низкокодовая платформа-приманка, использующая искусственный интеллект для виртуализации системы.
  • booster — быстрый генератор initramfs с поддержкой полного шифрования диска.
  • Cameradar — инструмент и библиотека для удалённого взлома потоков RTSP с камер наблюдения.
  • certificates — продуманный инструмент для создания сертификатов tls.
  • CertMagic — зрелая, надёжная и мощная интеграция клиента ACME для полностью управляемого выпуска и обновления сертификатов TLS.
  • Coraza — корпоративная библиотека WAF, совместимая с modsecurity и OWASP CRS.
  • dongle — простая, семантическая и... В интернете есть много сайтов с информацией на эту тему. Посмотрите, что нашлось в поиске Бинструкт (Binstruct) — Golang-декодер для отображения данных в структуру.

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

  • Fider — открытая платформа для сбора и организации отзывов клиентов.
  • Flagr — сервис для управления флагами функций и A/B-тестирования с открытым исходным кодом.
  • flipt — автономное решение для управления флагами функций, написанное на Go и Vue.js.
  • go-feature-flag — простое, полное и лёгкое решение для самостоятельного управления флагами функций с открытым исходным кодом (100 %).
  • go-proxy-cache — простой обратный прокси с кешированием, написанный на Go с использованием Redis.
  • gondola — обратный прокси на основе YAML для Golang.
  • jackal — сервер XMPP, написанный на Golang.
  • lets-proxy2 — обратный прокси для обработки HTTPS с выдачей сертификатов в полёте от lets-encrypt.
  • minio — распределённый сервер хранения объектов.
  • Moxy — простое приложение-имитатор и прокси-сервер, позволяющее создавать имитированные конечные точки, а также проксировать запросы, если имитация для конечной точки отсутствует.
  • nginx-prometheus — анализатор и экспортёр логов Nginx в Prometheus.
  • nsq — платформа для обмена сообщениями в реальном времени.
  • pocketbase — бэкенд реального времени в одном файле, включающий встроенную базу данных (SQLite) с подписками реального времени, встроенное управление аутентификацией и многое другое.
  • protoxy — прокси-сервер, преобразующий тела запросов JSON в Protocol Buffers.
  • psql-streamer — потоковая передача событий базы данных из PostgreSQL в Kafka.
  • riemann-relay — ретрансляция для балансировки нагрузки событий Riemann и/или их преобразования в Carbon.
  • RoadRunner — высокопроизводительный сервер приложений PHP, балансировщик нагрузки и менеджер процессов.
  • SFTPGo — полнофункциональный и легко настраиваемый SFTP-сервер с опциональной поддержкой FTP/S и WebDAV. Может обслуживать локальные файловые системы и облачные хранилища, такие как S3 и Google Cloud Storage.
  • simple-jwt-provider — простой и лёгкий провайдер, который выдаёт JWT, поддерживает вход в систему, сброс пароля (по почте) и управление пользователями.
  • Trickster — HTTP-прокси обратного кеша и ускоритель временных рядов.
  • Wish — создание SSH-приложений, просто так!

⬆ back to top

Потоковая обработка

Библиотеки и инструменты для потоковой обработки и реактивного программирования.

  • go-streams — библиотека потоковой обработки для Go.
  • goio — реализация IO, Stream, Fiber для Golang, вдохновлённая замечательными библиотеками Scala cats и fs2.
  • machine — библиотека Go для написания и создания потоковых рабочих процессов со встроенными метриками и отслеживаемостью.
  • stream — Go Stream, похожий на Java 8 Stream: Filter/Map/FlatMap/Peek/Sorted/ForEach/Reduce...

⬆ back to top

Шаблонные движки

Библиотеки и инструменты для шаблонирования и лексирования.

  • ego — облегчённый язык шаблонов, позволяющий писать шаблоны на Go. Шаблоны переводятся на Go и компилируются.
  • extemplate — небольшая оболочка вокруг html/template, позволяющая легко наследовать шаблоны на уровне файлов.
  • fasttemplate — простой и быстрый шаблонизатор. Заменяет заполнители шаблонов до 10 раз быстрее, чем text/template. Компоненты
  • 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, который имеет отличные инструменты разработчика.

⬆ back to top

Тестирование

Библиотеки для тестирования кодовых баз и генерации тестовых данных.

Фреймворки для тестирования

  • 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 случайными значениями.

  • Универсальная среда фаззинга и дельта-отладки.

Selenium и инструменты управления браузерами

  • Типобезопасные привязки для протокола отладки 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

  • failpoint — реализация failpoints для Golang.

Обработка текста

Библиотеки для анализа и обработки текстов.

См. также «Обработка естественного языка» и «Анализ текста».

Форматирование

  • address — обработка, проверка и форматирование адресов.
  • align — универсальное приложение для выравнивания текста.
  • bytes — форматирование и анализ числовых байтовых значений (10K, 2M, 3G и т. д.).
  • go-fixedwidth — фиксированное форматирование текста (кодер/декодер с отражением).
  • go-humanize — форматтеры времени, чисел и размера памяти в человекочитаемый формат.
  • gotabulate — простое форматирование табличных данных на Go.
  • textwrap — перенос текста по концам строк. Реализация модуля textwrap из Python.

Языки разметки

  • bafi — универсальный транслятор JSON, BSON, YAML, XML в любой формат с использованием шаблонов.
  • bbConvert — преобразует bbCode в HTML, что позволяет добавлять поддержку пользовательских тегов bbCode.
  • blackfriday — обработчик Markdown на Go.
  • go-output-format — вывод структур Go в несколько форматов (YAML/JSON и т.д.) в приложении командной строки.
  • go-toml — Go-библиотека для формата TOML с поддержкой запросов и удобными инструментами cli.
  • goldmark — парсер Markdown, написанный на Go. Легко расширяемый, стандартный (CommonMark), хорошо структурированный.
  • goq — декларативное демаршалинг HTML с использованием тегов структуры с синтаксисом jQuery (использует GoQuery).
  • html-to-markdown — конвертирует HTML в Markdown. Работает даже с целыми веб-сайтами и может быть расширен с помощью правил.
  • htmlquery — пакет запросов XPath для HTML, позволяющий извлекать данные или оценивать их из HTML-документов с помощью выражения XPath.
  • htmlyaml — богатое рендеринг YAML как HTML на Go.
  • htree — обход, навигация, фильтрация и другая обработка деревьев объектов html.Node.
  • mxj — кодирование / декодирование XML как JSON или map[string]interface{}; извлечение значений с помощью путей и подстановочных знаков с точечной нотацией. Заменяет пакеты x2j и j2x.
  • toml — формат конфигурации TOML (кодер/декодер с отражением).

Парсеры/кодеры/декодеры

  • allot — разбор текста с заполнителями и подстановочными знаками для инструментов и ботов CLI.
  • codetree — анализирует отформатированный код (python, pixy, scarlet и т. д.) и возвращает древовидную структуру.
  • commonregex — коллекция распространённых регулярных выражений для Go.
  • did — DID (децентрализованные идентификаторы). Парсер и Стрингер в Go.
  • doi — Document object identifier (doi) парсер в Go.
  • editorconfig-core-go — Редактор конфигурационных файлов для Go.
  • encdec — Пакет предоставляет общий интерфейс к кодировщикам и декодировщикам.
  • go-fasttld — Модуль извлечения эффективных доменов верхнего уровня (eTLD) с высокой производительностью.
  • go-nmea — Библиотека парсеров NMEA для языка Go.
  • go-querystring — Библиотека Go для кодирования структур в параметры URL-запроса.
  • go-vcard — Разбор и форматирование vCard.
  • godump — Удобная печать любой переменной GO, альтернатива Go fmt.Printf("%#v").
  • gofeed — Разбор RSS и Atom каналов в Go.
  • gographviz — Парсинг языка Graphviz DOT.
  • gonameparts — Разбиение человеческих имён на отдельные части имени.
  • ltsv — Высокопроизводительный читатель LTSV (Labeled Tab Separated Value) для Go.
  • normalize — Очистка, нормализация и сравнение нечётких текстов.
  • parseargs-go — Строковый анализатор аргументов, который понимает кавычки и обратные косые черты.
  • parth — Сегментация URL-пути.
  • prattle — Сканирование и разбор грамматик LL(1) просто и эффективно.
  • sdp — SDP: Session Description Protocol [[RFC 4566]].
  • sh — Анализатор и форматтер оболочки.
  • tokenizer — Анализ любой строки, среза или бесконечного буфера на любые токены.
  • vdf — Лексер и парсер формата данных Valve (известного как vdf), написанный на Go.
  • when — Естественный EN и RU языковой анализатор даты/времени с подключаемыми правилами.
  • xj2go — Преобразование xml или json в структуру Go.

Регулярные выражения

  • genex — Подсчёт и расширение регулярных выражений во все совпадающие строки.
  • go-wildcard — Простое и лёгкое сопоставление шаблонов с подстановочными знаками.
  • goregen — Библиотека для генерации случайных строк из регулярных выражений.
  • regroup — Сопоставление именованных групп регулярного выражения со структурой Go с использованием тегов структуры и автоматического анализа.
  • rex — Построитель регулярных выражений.

Очистка

  • bluemonday — Очиститель HTML.
  • gofuckyourself — Фильтр ругательств на основе очистки для Go.

Скраперы

  • 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.

Утилиты и разное

  • go-runewidth — функции для получения фиксированной ширины символа или строки.
  • go-zero-width — обнаружение и удаление символов нулевой ширины в Go.
  • kace — общие преобразования, охватывающие распространённые аббревиатуры.
  • petrovich — библиотека, которая склоняет русские имена по заданному грамматическому падежу.
  • radix — быстрый алгоритм сортировки строк.
  • TySug — альтернативные предложения с учётом раскладок клавиатуры.
  • w2vgrep — семантический инструмент grep, использующий вложения слов для поиска семантически похожих совпадений. Например, поиск «смерти» найдёт «мёртвый», «убийство», «убийца».

⬆ back to top

Сторонние API

Библиотеки для доступа к сторонним API.

  • airtable — клиентская библиотека Go для Airtable API.
  • amazon-product-advertising-api — клиентская библиотека Go для Amazon Product Advertising API.
  • anaconda — клиентская библиотека Go для Twitter 1.1 API.
  • appstore-sdk-go — неофициальный SDK Golang для AppStore Connect API.
  • aws-sdk-go — официальный AWS SDK для языка программирования Go.
  • bqwriter — высокоуровневая библиотека Go для записи данных в Google BigQuery с высокой пропускной способностью.
  • brewerydb — библиотека Go для доступа к API BreweryDB.
  • cachet — клиентская библиотека Go для Cachet (open source status page system).
  • circleci — клиентская библиотека Go для взаимодействия с CircleCI API.
  • clarifai — клиентская библиотека Go для работы с API Clarifai.
  • codeship-go — клиентская библиотека Go для взаимодействия с Codeship API v2.
  • coinpaprika-go — клиентская библиотека Go для взаимодействия с Coinpaprika API.
  • device-check-go — клиентская библиотека Go для взаимодействия с iOS DeviceCheck API v1.
  • discordgo — привязки Go для Discord Chat API.
  • disgo — API-оболочка Go для Discord API.
  • dusupay-sdk-go — неофициальная клиентская библиотека платёжного шлюза Dusupay для Go.
  • ethrpc — привязки Go для Ethereum JSON RPC API.
  • facebook — библиотека Go, поддерживающая Graph API Facebook.
  • fasapay-sdk-go — неофициальная клиентская XML-библиотека платёжного шлюза Fasapay для Golang.
  • fcm — библиотека Go для Firebase Cloud Messaging.
  • gads — Google Adwords Unofficial API.
  • gami — библиотека Go для Asterisk Manager Interface.
  • gcm — библиотека Go для Google Cloud Messaging.
  • geo-golang — библиотека Go для доступа к Google Maps, MapQuest, API-интерфейсы геокодирования и обратного геокодирования:
  • Nominatim;
  • OpenCage;
  • Bing;
  • Mapbox;
  • OpenStreetMap.

Библиотеки Go для доступа к API различных сервисов:

  • GitHub REST API v3;
  • GitHub GraphQL API v4;
  • Atlassian Cloud services (Jira, Jira Service Management, Jira Agile, Confluence, Admin Cloud);
  • AWS;
  • Chronos Job Scheduler;
  • Gerrit Code Review;
  • HackerNews API;
  • HERE location based APIs;
  • «Have I Been Pwned»;
  • imgur;
  • JIRA;
  • Feishu и Lark Open Platform;
  • Marathon PAAS;
  • MyAnimeList API;
  • ChatGPT, DALL·E, Whisper API;
  • OpenProject API;
  • Postman Collections (совместимо с Insomnia);
  • ReDoc;
  • REST Countries API;
  • Salesforce REST API;
  • Sophos UTM REST API;
  • Swagger UI;
  • Telegraph publishing platform;
  • trending репозиториев и разработчиков на GitHub;
  • Twitter v1.1;
  • Unsplash. Unsplash.com API.
  • go-xkcd — клиент Go для API xkcd.
  • go-yapla — библиотека клиента Go для Yapla v2.0 API.
  • goagi — библиотека Go для создания приложений Asterisk PBX agi/fastagi.
  • goami2 — AMI v2 библиотека для Asterisk PBX.
  • GoFreeDB — библиотека Golang, предоставляющая общие и простые абстракции базы данных поверх Google Sheets.
  • gogtrends — неофициальный API Google Trends.
  • golang-tmdb — оболочка Golang для The Movie Database API v3.
  • golyrics — библиотека Golyrics для получения данных о текстах песен с сайта Wikia.
  • gomalshare — библиотека Go MalShare API malshare.com.
  • GoMusicBrainz — библиотека MusicBrainz WS2 клиента на Go.
  • google — автоматически сгенерированные API Google для Go.
  • google-analytics — простая оболочка для упрощения отчётности по Google Analytics.
  • google-cloud — клиентская библиотека Google Cloud APIs Go.
  • google-email-audit-api — клиентская библиотека Go для Google G Suite Email Audit API.
  • google-play-scraper — получение данных из Google Play Store.
  • gopaapi5 — клиентская библиотека Go для Amazon Product Advertising API 5.0.
  • gopensky — реализация клиента Go для OpenSKY Network live's API (данные ADS-B и Mode S в реальном времени).
  • gosip — клиентская библиотека для SharePoint.
  • gostorm — GoStorm — это библиотека Go, которая реализует протокол связи, необходимый для написания Spouts и Bolts Storm в Go, которые взаимодействуют с оболочками Storm.
  • hipchat — этот проект реализует клиентскую библиотеку golang для Hipchat API.
  • hipchat (xmpp) — пакет golang для взаимодействия с HipChat через XMPP.
  • igdb — клиент Go для Internet Game Database API.
  • ip2location-io-go — обёртка Go для IP2Location.io API IP2Location.io.
  • jokeapi-go — клиент Go для JokeAPI.
  • lark — Feishu/Lark Open API Go SDK, поддержка всех открытых API и обратных вызовов событий.
  • lastpass-go — клиентская библиотека LastPass API.
  • libgoffi — набор инструментов для интеграции с libffi.
  • Medium — Golang SDK для OAuth2 API Medium.
  • megos — клиентская библиотека доступа к кластеру Apache Mesos.
  • minio-go — Minio Go Library для облачного хранилища, совместимого с Amazon S3.
  • mixpanel — Mixpanel — это библиотека для отслеживания событий и отправки обновлений профиля Mixpanel в приложения go от Mixpanel.
  • newsapi-go — клиент Go для NewsAPI.
  • openaigo — OpenAI GPT3/GPT3.5 ChatGPT API. Клиентские библиотеки для Go
  • Patreon-Go — библиотека для Patreon API.
  • PayPal — оболочка для платёжного API PayPal.
  • Playlyfe — REST API Go SDK от Playlyfe.
  • Pushover — оболочка Go для Pushover API.
  • RAWG SDK Go — библиотека для RAWG Video Games Database API.
  • RRDACLIENT — библиотека Go для доступа к statdns.com API, который является RRDA API. DNS-запросы через HTTP.
  • Shopify — библиотека Go для выполнения CRUD-запросов к Shopify API.
  • Simples3 — простая AWS S3-библиотека без излишеств с использованием REST и V4-подписью на Go.
  • Slack — Slack API на Go.
  • Smite — пакет Go для работы с API игры Smite.
  • Spotify — библиотека Go для доступа к Spotify WEB API.
  • Steam — библиотека Go для взаимодействия с игровыми серверами Steam.
  • Stripe — клиент для Stripe API на Go.
  • Swag — простая оболочка Go без комментариев для создания совместимых со Swagger 2.0 API. Поддерживает большинство фреймворков маршрутизации, таких как встроенные, gin, chi, mux, echo, httprouter, fasthttp и другие.
  • Textbelt — клиент Go для текстового API textbelt.com.
  • Translate — онлайн-пакет перевода на Go.
  • Trello — оболочка Go для Trello API.
  • TripAdvisor — оболочка Go для TripAdvisor API.
  • Tumblr — оболочка Go для Tumblr v2 API.
  • Twitter-Scraper — парсинг внешнего интерфейса Twitter без аутентификации и ограничений.
  • Uptime Robot — оболочка и клиент командной строки Go для Uptime Robot v2 API.
  • VerifID — клиентская библиотека Go вокруг API уровня проверки подлинности VerifID.
  • Webhooks — приёмник веб-перехватчиков для GitHub и Bitbucket.
  • Wit-Go — клиент Wit.ai HTTP API на Go.
  • YNAB — оболочка Go для YNAB API.
  • Zooz — клиент Go для API Zooz.

Утилиты

Общие утилиты и инструменты, которые облегчат вашу жизнь.

  • APM — диспетчер процессов для приложений Golang с HTTP API.
  • Backscanner — сканер, похожий на bufio.Scanner, но он читает и возвращает строки в обратном порядке, начиная с заданной позиции и двигаясь назад.
  • Bed — двоичный редактор, подобный Vim, написанный на Go.
  • Blank — проверка или удаление пробелов и пробелов из строк.
  • Bleep — выполнение любого количества действий над любым набором сигналов ОС в Go.
  • Boilr — быстрый инструмент CLI для создания проектов из шаблонов шаблонов.
  • Changie — автоматизированный инструмент для подготовки релизов с большим количеством опций настройки.
  • Chyle — генератор журналов изменений с использованием репозитория git с множеством возможностей конфигурации.
  • Circuit — эффективная и полнофункциональная реализация шаблона прерывателя цепи Hystrix в Go.
  • Circuitbreaker — прерыватели цепи в Go.
  • Clipboard — кроссплатформенный пакет буфера обмена. Вот перевод текста на русский язык:

В Go:

  • Clockwork — простая поддельная «кукушка» для golang.
  • Cmd — библиотека для выполнения команд оболочки в osx, windows и linux.
  • Command — паттерн команды для Go с поточно-безопасным последовательным и параллельным диспетчером.
  • Config-file-validator — кроссплатформенный инструмент для проверки конфигурационных файлов.
  • Contextplus — пакет contextplus предоставляет более удобные функции для контекстов.
  • Cookie — пакет для работы со структурой cookie.
  • Copy-pasta — универсальный мультирабочий буфер обмена, который использует S3-подобный бэкенд для хранения.
  • Countries — полная реализация стандартов ISO-3166-1, ISO-4217, ITU-T E.164, Unicode CLDR и IANA ccTLD.
  • Create-go-app — мощный CLI для создания нового готового к производству проекта с бэкендом (Golang), фронтендом (JavaScript, TypeScript) и автоматизацией развёртывания (Ansible, Docker) путём запуска одной команды.
  • Cryptgo — это приложение TUI, написанное исключительно на Go для мониторинга и наблюдения за ценами на криптовалюту в реальном времени!
  • Ctop — интерфейс, подобный Top (например, htop) для метрик контейнеров.
  • Ctxutil — набор служебных функций для контекстов.
  • Cvt — простое и безопасное преобразование любого значения в другой тип.
  • Dbt — фреймворк для запуска самообновляющихся подписанных двоичных файлов из центрального доверенного репозитория.
  • Death — управление завершением работы приложения go с помощью сигналов.
  • Delve — отладчик Go.
  • Dive — инструмент для изучения каждого слоя в образе Docker.
  • Dlog — компилятор, контролируемый во время компиляции, чтобы сделать ваш релиз меньше без удаления вызовов отладки.
  • Easeprobe — простой, автономный и лёгкий инструмент, который может выполнять проверку работоспособности/статуса демона, поддерживать зонды HTTP/TCP/SSH/Shell/Client/... и уведомления Slack/Discord/Telegram/SMS...
  • Equalizer — менеджер квот и коллекция ограничителей скорости для Go.
  • Ergo — лёгкое управление несколькими локальными службами, работающими через разные порты.
  • Evaluator — динамическая оценка выражения на основе s-выражения. Это просто и легко расширяемо.
  • Failsafe-go — шаблоны отказоустойчивости и устойчивости для Go.
  • Filetype — небольшой пакет для определения типа файла, проверяя подпись магических чисел.
  • Filler — небольшая утилита для заполнения структур с использованием тега «fill».
  • Filter — обеспечивает фильтрацию, дезинфекцию и преобразование данных Go.
  • Fzf — командный нечеткий искатель, написанный на Go.
  • Generate — запускает go generate рекурсивно по указанному пути или переменной среды и может фильтровать по регулярному выражению.
  • Ghokin — параллельный форматировщик без внешних зависимостей для gherkin (cucumber, behat...).
  • Git-time-metric — простое, бесшовное, лёгкое отслеживание времени для Git.
  • Gitbatch — управляйте своими репозиториями git в одном месте.
  • Gitcs — визуализатор коммитов Git, инструмент CLI для визуализации ваших коммитов git на вашем локальном компьютере. go-actuator — готовые к использованию функции для веб-фреймворков на 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 — библиотека генератора глобально уникальных идентификаторов, готовая к безопасному использованию непосредственно в серверном коде.

⬆ back to top

Валидация

Библиотеки для валидации.

  • 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.

⬆ back to top

Контроль версий

Библиотеки контроля версий.

  • 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.

⬆ back to top

Видео

Библиотеки для работы с видео.

  • 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.

  • go-mpd — библиотека для парсинга и генерации файлов манифеста MPEG-DASH.
  • goav — комплексные привязки Go к FFmpeg.
  • gortsplib — чистый сервер и клиентская библиотека RTSP на Go.
  • libvlc-go — привязки Go для libvlc 2.X/3.X/4.X (используется медиаплеером VLC).
  • m3u8 — библиотека для парсинга и генерации плейлистов M3U8 для Apple HLS.
  • mp4ff — библиотека и инструменты для работы с файлами MP4, содержащими видео, аудио, субтитры или метаданные.
  • v4l — библиотека захвата видео для Linux, написанная на Go.

⬆ back to top

Веб-фреймворки

Полные веб-фреймворки.

  • Atreugo — высокопроизводительный и расширяемый микровеб-фреймворк с нулевым выделением памяти в горячих путях.
  • Beego — открытый высокопроизводительный веб-фреймворк для языка программирования Go.
  • Confetti Framework — веб-приложение на основе фреймворка Confetti с выразительным элегантным синтаксисом. Confetti сочетает элегантность Laravel и простоту Go.
  • Don — высокопроизводительная и простая в использовании структура API.
  • Echo — высокопроизводительный минималистичный веб-фреймворк Go.
  • Fastschema — гибкий веб-фреймворк и безголовая CMS на Go.
  • Fiber — веб-фреймворк, вдохновлённый Express.js, построенный на Fasthttp.
  • Flamingo — фреймворк для подключаемых веб-проектов. Включает концепцию модулей и предлагает функции для DI, Configareas, i18n, шаблонизаторов, graphql, наблюдаемости, безопасности, событий, маршрутизации и обратной маршрутизации и т. д.
  • Flamingo Commerce — предоставляет функции электронной коммерции с использованием чистой архитектуры, такой как DDD и порты и адаптеры, которые можно использовать для создания гибких приложений электронной коммерции.
  • Fuego — фреймворк для занятых разработчиков Go! Веб-фреймворк генерирует спецификацию OpenAPI 3 из исходного кода.
  • Gin — Gin — это веб-фреймворк на языке Go! Он имеет API, похожий на martini, но с гораздо лучшей производительностью, до 40 раз быстрее. Если вам нужна производительность и хорошая продуктивность.
  • Ginrpc — инструмент автоматического связывания параметров Gin, инструменты rpc Gin.
  • Goa — Goa обеспечивает целостный подход к разработке удалённых API и микросервисов на Go.
  • GoFr — Gofr — это самоуверенный фреймворк разработки микросервисов.
  • GoFrame — GoFrame — модульный, мощный, высокопроизводительный корпоративный фреймворк приложений Golang.
  • golamb — Golamb упрощает написание конечных точек API для использования с AWS Lambda и API Gateway.
  • Gone — лёгкий фреймворк внедрения зависимостей и веб-разработки, вдохновлённый Spring.
  • goravel — веб-фреймворк в стиле Laravel с ORM, аутентификацией, очередью, планированием задач и другими встроенными функциями.
  • Goyave — полнофункциональный REST API фреймворк, ориентированный на чистый код и быструю разработку, с мощными встроенными функциональными возможностями.
  • Hertz — высокопроизводительный и легко расширяемый HTTP-фреймворк Go, который помогает разработчикам создавать микросервисы.
  • hiboot — hiboot — это высокопроизводительный фреймворк веб-приложений с автоматической конфигурацией и... Поддержка внедрения зависимостей.
  • Huma — фреймворк для современных REST/GraphQL API с встроенным OpenAPI 3, генерируемой документацией и CLI.
  • iWF — универсальная платформа для разработки долгосрочных бизнес-процессов. Предлагает удобную абстракцию для использования баз данных, ElasticSearch, очередей сообщений, надёжных таймеров и многого другого с чистым, простым и удобным интерфейсом.
  • Lit — высокопроизводительный декларативный веб-фреймворк для Golang, нацеленный на простоту и качество жизни.
  • Microservice — фреймворк для создания микросервисов, написанный на Golang.
  • Patron — микросервисный фреймворк, следующий лучшим облачным практикам с акцентом на продуктивность.
  • Pnutmux — мощный веб-фреймворк Go, использующий регулярные выражения для сопоставления и обработки HTTP-запросов. Он предлагает такие функции, как обработка CORS, структурированное ведение журнала, извлечение параметров URL, промежуточное ПО и ограничение параллелизма.
  • Revel — высокопродуктивный веб-фреймворк для языка Go.
  • rk-boot — библиотека начальной загрузки для быстрого и простого создания корпоративных микросервисов Go с Gin и gRPC.
  • rux — простой и быстрый веб-фреймворк для сборки HTTP-приложений Golang.
  • uAdmin — полнофункциональный веб-фреймворк для Golang, вдохновлённый Django.
  • WebGo — микрофреймворк для создания веб-приложений с цепочкой обработчиков, промежуточным ПО и внедрением контекста. С совместимыми с стандартной библиотекой HTTP-обработчиками (например, http.HandlerFunc).
  • Yokai — простой, модульный и наблюдаемый фреймворк Go для бэкенд-приложений.

Промежуточное ПО

Реальное промежуточное ПО

  • client-timing — HTTP-клиент для заголовка Server-Timing.
  • CORS — легко добавьте возможности CORS в свой API.
  • echo-middleware — промежуточное ПО для Echo с логированием и метриками.
  • formjson — прозрачно обрабатывайте JSON-ввод как стандартный POST-запрос формы.
  • go-fault — промежуточное ПО Fault Injection для Go.
  • go-server-timing — добавление/анализ заголовка Server-Timing.
  • Limiter — простое промежуточное ПО ограничения скорости для Go.
  • ln-paywall — промежуточное ПО Go для монетизации API на основе запросов с помощью Lightning Network (Bitcoin).
  • mid — разнообразные функции промежуточного ПО HTTP: идиоматическое возвращение ошибок от обработчиков; получение/ответ с данными JSON; трассировка запросов и многое другое.
  • rk-gin — промежуточное ПО для Gin с логированием, метриками, аутентификацией, трассировкой и т. д.
  • rk-grpc — промежуточное ПО для gRPC с логированием, метриками, аутентификацией, трассировкой и т. д.
  • Tollbooth — ограничитель скорости HTTP-запроса.
  • XFF — работа с заголовком X-Forwarded-For и друзьями.

Библиотеки для создания HTTP-промежуточного ПО

  • alice — безболезненное объединение промежуточного ПО для Go.
  • catena — объединение обёрток обработчиков HTTP (тот же API, что и у «chain»).
  • chain — объединение обработчиков с использованием данных с ограниченной областью действия (обёртка «middleware» на основе net/context).
  • gores — пакет Go, который обрабатывает ответы HTML, JSON, XML и т.д. Полезен для RESTful API.
  • interpose — минималистичное промежуточное ПО net/http для golang. mediary — добавляет перехватчики в http.Client для дампинга/формирования/трассировки... запросов/ответов.

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.

  • xujiajun/gorouter — простой и быстрый HTTP-роутер для Go.

⬆ back to top

WebAssembly

  • dom — библиотека DOM.
  • Extism Go SDK — универсальная кросс-языковая среда WebAssembly для создания подключаемых систем и многоязычных приложений.
  • go-canvas — библиотека для использования HTML5 Canvas со всем рисованием в коде Go.
  • tinygo — компилятор Go для небольших устройств. Микроконтроллеры, WebAssembly и инструменты командной строки. Основан на LLVM.
  • vert — взаимодействие между значениями Go и JS.
  • wasmbrowsertest — запуск тестов Go WASM в браузере.
  • webapi — привязки для DOM и HTML, сгенерированные из WebIDL.

⬆ back to top

Windows

  • d3d9 — привязки Go для Direct3D9.
  • go-ole — реализация Win32 OLE для golang.
  • gosddl — конвертер из SDDL-строки в удобный JSON. SDDL состоит из четырёх частей: владелец, основная группа, DACL, SACL.

⬆ back to top

Workflow Frameworks

Библиотеки для создания рабочих процессов.

  • Cadence-client — фреймворк для разработки рабочих процессов и действий, работающих поверх оркестрационного движка Cadence от Uber.
  • Dagu — исполнитель рабочих процессов без кода. Выполняет DAG, определённые в простом формате YAML.
  • go-dag — разработанный в Go фреймворк, который управляет выполнением рабочих процессов, описанных направленными ациклическими графами.
  • go-taskflow — общая задача параллельного программирования с интегрированным визуализатором и профилировщиком.
  • workflow — технологически независимый фреймворк на основе событийных рабочих процессов.

⬆ back to top

XML

Библиотеки и инструменты для работы с XML.

  • XML-Comp — простая утилита командной строки для сравнения XML, которая генерирует различия папок, файлов и тегов.
  • xml2map — преобразователь XML в MAP, написанный на Golang.
  • xmlwriter — процедурный API генерации XML на основе модуля xmlwriter libxml2.
  • xpath — пакет XPath для Go.
  • xquery — XQuery позволяет извлекать данные из документов HTML/XML с помощью выражения XPath.
  • zek — генерация структуры Go из XML.

Zero Trust

Библиотеки и инструменты для реализации архитектур нулевого доверия.

  • Cosign — подписание контейнеров, проверка подлинности и хранение в реестре OCI.
  • in-toto — реализация Go для in-toto (предоставляет основу для защиты целостности цепочки поставок программного обеспечения).
  • OpenZiti — полноценная, открытая оверлейная сеть нулевого доверия. Включает многочисленные SDK для различных языков, таких как golang, что позволяет встраивать принципы нулевого доверия непосредственно в приложения. В OpenZiti Test Kitchen есть множество примеров, которые можно использовать для вдохновения, включая клиент SSH с нулевым доверием — zssh.
  • Spiffe-Vault — использует аутентификацию Spiffe JWT с Hashicorp Vault для бессекретной аутентификации.
  • Spire — SPIRE (среда выполнения SPIFFE) представляет собой набор API для установления доверия между программными системами на широком спектре платформ хостинга.

Code Analysis

Анализ исходного кода. Инструменты, также известные как инструменты статического тестирования безопасности приложений (SAST), включают:

  • apicompat — проверяет последние изменения в проекте Go на предмет несовместимых изменений.
  • asty — преобразует абстрактное синтаксическое дерево (AST) Golang в JSON и JSON в AST.
  • blanket — инструмент, который помогает обнаруживать функции без прямых модульных тестов в пакетах Go.
  • ChainJacking — находит, какие из прямых зависимостей GitHub на языке Go подвержены атаке ChainJacking.
  • Chronos — обнаруживает условия гонки статически.
  • dupl — инструмент для обнаружения клонов кода.
  • errcheck — программа для поиска непроверенных ошибок в программах Go.
  • fatcontext — обнаруживает вложенные контексты в циклах или функциональных литералах.
  • gcvis — визуализирует данные трассировки сборщика мусора (GC) программы Go в реальном времени.
  • go-checkstyle — инструмент проверки стиля, подобный java checkstyle. Этот инструмент вдохновлён java checkstyle и golint. Стиль относится к некоторым пунктам в комментариях Code Review для кода Go.
  • go-cleanarch — создан для проверки правил чистой архитектуры, таких как правило зависимостей и взаимодействие между пакетами в проектах Go.
  • go-critic — средство проверки исходного кода, которое включает проверки, которые в настоящее время не реализованы в других средствах проверки.
  • go-mod-outdated — простой способ найти устаревшие зависимости проектов Go.
  • go-outdated — консольное приложение, отображающее устаревшие пакеты.
  • goast-viewer — веб-визуализатор абстрактного синтаксического дерева (AST) для Golang.
  • goimports — инструмент для автоматического исправления (добавления, удаления) импорта в коде Go.
  • golang-ifood-sdk — SDK API iFood.
  • golangci-lint — быстрый бегун линтеров Go. Он запускает линтеры параллельно, использует кэширование, поддерживает конфигурацию yaml, имеет интеграции со всеми основными IDE и включает десятки линтеров.
  • golinies — форматировщик, автоматически сокращающий длинные строки в коде Go.
  • GoPlantUML — библиотека и CLI, которая генерирует текстовую диаграмму классов plantuml, содержащую информацию о структурах и интерфейсах с отношениями между ними.
  • goreturns — добавляет операторы возврата с нулевым значением, чтобы они соответствовали типам возвращаемых функций.
  • gostatus — инструмент командной строки, показывает статус репозиториев, содержащих пакеты Go.
  • lint — запускает линтеры как часть теста go.
  • php-parser — анализатор PHP, написанный на Go.
  • revive — примерно в 6 раз быстрее, строже, настраиваемый, расширяемый и красивый заменитель golint.
  • staticcheck — это go vet на стероидах, применяющий множество проверок статического анализа, к которым вы могли привыкнуть из таких инструментов, как ReSharper для C#.
  • testifylint — линтер, проверяющий использование github.com/stretchr/testify.
  • tickgit — CLI и пакет go для отображения комментариев TODO (на любом языке) и применения git blame для определения автора.
  • todocheck — статический анализатор кода, который связывает комментарии TODO в коде с проблемами в вашем трекере проблем. Инструменты для разработки и тестирования программного обеспечения на Go
  • unconvert — инструмент для удаления ненужных преобразований типов из исходного кода на Go.

  • usestdlibvars — линтер, который обнаруживает возможность использования переменных и констант из стандартной библиотеки Go.

  • vacuum — ультрабыстрый, лёгкий инструмент для проверки качества и линтинга OpenAPI.

  • validate — автоматически проверяет поля структур с тегами.

  • wrapcheck — линтер для проверки того, что ошибки из внешних пакетов обернуты.

⬆ back to top

Плагины для редакторов и IDE

Плагины для текстовых редакторов и интегрированных сред разработки.

  • 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]

Инструменты для генерации кода Go

  • 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.

⬆ back to top

Другое программное обеспечение

  • Better Go Playground — игровая площадка Go с подсветкой синтаксиса, автозавершением кода и другими функциями.
  • Blocky — быстрый и лёгкий DNS-прокси в качестве блокировщика рекламы для локальной сети со множеством функций.
  • Borg — поисковая система терминала для фрагментов bash.
  • Boxed — движок блога на базе Dropbox.
  • Cherry — крошечный сервер веб-чата на Go.
  • Circuit — программируемая платформа как услуга (PaaS) и/или инфраструктура как услуга (IaaS) для управления, обнаружения, синхронизации и оркестровки служб и хостов, составляющих облачные приложения.
  • Comcast — имитация плохих сетевых подключений. Конфд (confd) — управление локальными файлами конфигурации приложений с использованием шаблонов и данных из etcd или consul.

Кроули (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.

⬆ back to top

Конференции

  • GoCon — Токио, Япония.
  • GoDays — Берлин, Германия.
  • GoLab — Флоренция, Италия.
  • GopherChina — Шанхай, Китай.
  • GopherCon — Денвер, США.
  • GopherCon Australia — Сидней, Австралия.
  • GopherCon Brazil — Флорианополис, Бразилия.
  • GopherCon Europe — Берлин, Германия.
  • GopherCon India — Пуна, Индия.
  • GopherCon Israel — Тель-Авив, Израиль.
  • GopherCon Russia — Москва, Россия.
  • GopherCon Singapore — Mapletree Business City, Сингапур.
  • GopherCon UK — Лондон, Великобритания.
  • GopherCon Vietnam — Хошимин, Вьетнам.
  • GoWest Conference — Лехи, США.

⬆ back to top

Электронные книги

Электронные книги для покупки

  • 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 — случайные изображения гоферов. Ваче.

Meetups

  • Basel Go Meetup
  • Belfast Gophers
  • Belgrade Golang Meetup
  • Berlin Golang
  • Brisbane Gophers
  • Bärner Go Meetup — Berne, Switzerland
  • Go Language NYC
  • Go London User Group
  • Go Remote Meetup
  • Go Toronto
  • Go User Group Atlanta
  • GoBandung
  • GoBridge, San Francisco, CA
  • GoCracow — Krakow, Poland
  • GoJakarta
  • Golang Amsterdam
  • Golang Argentina
  • Golang Athens
  • Golang Baltimore, MD
  • Golang Bangalore
  • Golang Belo Horizonte — Brazil
  • Golang Boston
  • Golang Bulgaria
  • Golang Cardiff, UK
  • Golang Copenhagen
  • Golang Curitiba — Brazil
  • Golang DC, Arlington, VA
  • Golang Dorset, UK
  • Golang Estonia
  • Golang Gurgaon, India
  • Golang Hamburg — Germany
  • Golang Israel
  • Golang Kathmandu
  • Golang Lima — Peru
  • Golang Lyon
  • Golang Marseille
  • Golang Melbourne
  • Golang North East
  • Golang Paris
  • Golang Poland
  • Golang Pune
  • Golang Rotterdam
  • Golang Singapore
  • Golang Stockholm
  • Golang Sydney, AU
  • Golang São Paulo — Brazil
  • Golang Taipei
  • Golang Thessaloniki
  • Golang Turkey
  • Golang Vancouver, BC
  • Golang Vienna, Austria
  • Golang Москва
  • GoSF — San Francisco, CA
  • Istanbul Golang
  • Lagos Gophers
  • Nairobi Gophers
  • Seattle Go Programmers
  • Ukrainian Golang User Groups
  • Utah Go User Group
  • Women Who Go — San Francisco, CA
  • Zürich Gophers — Zurich, Switzerland

Добавьте группу вашего города/страны здесь (отправьте PR)

Style Guides

  • bahlo/go-styleguide

Примечание: в запросе не удалось определить основной язык текста, так как он содержит только названия групп и ссылки на них. Можно предположить, что это английский язык. Продвинутое преобразование 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Кураторский список замечательных фреймворков, библиотек и программного обеспечения для Go. Развернуть Свернуть
Go
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/awesome-lib-awesome-go.git
git@api.gitlife.ru:oschina-mirror/awesome-lib-awesome-go.git
oschina-mirror
awesome-lib-awesome-go
awesome-lib-awesome-go
main