Знание должно быть доступно!

Путь /Программирование/Языки/Golang

  1. Стандартная библиотека — базовое

fmt — форматирование ввода-вывода (печать, сканирование)
os — работа с файловой системой, окружением, процессами
io — базовые интерфейсы ввода-вывода
bufio — буферизированный ввод-вывод
strings — работа со строками
strconv — преобразование типов (строка <-> число)
time — работа со временем и таймерами
errors — создание и обработка ошибок
log — логирование
flag — парсинг командной строки


  1. Сетевое взаимодействие и веб

net — базовые сетевые операции (TCP, UDP)
net/http — HTTP сервер и клиент
net/url — парсинг и кодирование URL
mime/multipart — работа с multipart-запросами
crypto/tls — TLS (SSL) шифрование
websocket (внешние библиотеки) — вебсокеты


  1. Форматы данных и кодировки

encoding/json — JSON кодирование/декодирование
encoding/xml — XML парсинг
encoding/csv — CSV работа
encoding/base64 — base64 кодировка/декодирование
encoding/gob — бинарный формат сериализации
encoding/binary — работа с бинарными данными
hash и crypto — хэширование, шифрование, подписи


  1. Конкуррентность и синхронизация

sync — мьютексы, условные переменные, ожидание
sync/atomic — атомарные операции
context — управление контекстом, отменой, дедлайнами
time — таймеры и тикеры


  1. Вспомогательные пакеты для разработки

testing — модульное тестирование
net/http/httptest — тестирование HTTP серверов
reflect — рефлексия (анализ и изменение типов во время выполнения)
runtime — информация о рантайме, управление сборщиком мусора
log/syslog — логирование в syslog (Unix)


  1. Работа с файлами и архивами

io/ioutil (deprecated, часть io и os) — утилиты работы с файлами
archive/zip — работа с zip-архивами
archive/tar — работа с tar
compress/gzip — gzip сжатие
compress/zlib — сжатие zlib


  1. Веб и шаблоны

html/template — безопасные HTML шаблоны
text/template — текстовые шаблоны
mime — MIME типы


  1. Работа с базами данных

database/sql — общий интерфейс для БД
context — контексты для запросов к БД (таймауты/отмена)
Внешние драйверы для конкретных СУБД (Postgres, MySQL и др.)


  1. Безопасность и криптография

crypto — множество подпакетов для шифрования, хэшей, RSA, AES, HMAC, TLS
crypto/rand — генерация криптостойких случайных чисел
crypto/x509 — работа с сертификатами


  1. Работа с сетью низкого уровня

net/http/httputil — утилиты для HTTP
net/http/cookiejar — поддержка куки в HTTP клиенте
net/smtp — SMTP клиент
net/dns — DNS (через внешние библиотеки)


  1. Утилиты и вспомогательные

os/exec — запуск внешних процессов
runtime/debug — отладочная информация
runtime/pprof — профилирование CPU и памяти
crypto/ssh — SSH клиент и сервер (частично)


  1. Форматы и протоколы (внешние, популярные)

gRPC (google.golang.org/grpc)
protobuf (github.com/golang/protobuf)
websocket (github.com/gorilla/websocket)
jwt (github.com/dgrijalva/jwt-go)


Знай, что стандартная библиотека — это арсенал. Подбирай пакет по задаче и не тяни лишнее.