Подборка библиотек для бекенда

    Мы пишем свои бекенды на Go. Собираем метрики кода и балансируем запросы на шарды.
    Шифруем RPC. Общаемся с Монгой. За год разработки сформировался стек проверенных библиотек.
    Например, goagain сэкономил кучу времени и дебага после обрыва клиентов внутреннего RPC.

    Делимся подборкой библиотек, проверенных и работающих в бою.

    github.com/rcrowley/goagain
    Перезагрузка HTTP или RPC сервера без отключения клиентов.

    github.com/cheggaaa/pb
    Консольный прогресс-бар. Поддерживает интерфейсы Reader и Writer.

    github.com/rcrowley/go-metrics
    Метрики в коде. Счетчики, Перцентили, Гистограммы. Красиво дампит в консоль и умеет складывать в Graphite и InfluxDB

    github.com/golang/glog
    Логгер. Порт Google Log. Можно задавать уровень детализации (verbosity). Еще детализация фильтруется по модулям.

    labix.org/mgo
    Лучший драйвер для MongoDB.

    github.com/camlistore/lock
    Лок-файл. Пишет PID в файл. Если лок есть, проверит не умер-ли процесс. Поддерживает FreeBSD, MacOS, ARM и Plan9.

    github.com/codegangsta/cli
    Разделяет логику по флагам и действиям. Генерирует справку и автодополнение для консоли.

    godoc.org/code.google.com/p/go-uuid/uuid
    Генерация стандартного UUID.

    godoc.org/code.google.com/p/go.crypto/ssh
    Полноценный SSH транспорт. Умеет парсить приватный и публичный ключ.

    github.com/kr/pretty
    Выводит глубокие структуры в читаемом виде. Достойная замена fmt.Printf("%+v", ...)

    github.com/google/btree
    Реализация B-Tree от Гугла.

    github.com/bitly/dablooms
    Фильтры Блума со счетчиками и удалением.

    github.com/bitly/go-hostpool
    Балансер любых ресурсов с обратной связью. Мы используем для медленнего пессимизации лагающих шардов. В основе алгоритм Многорукого Бандита.

    github.com/influxdb/influxdb
    База для метрик. Быстрее, чем Graphite. Поддерживает шардирование и выборки аля SQL.

    godoc.org/code.google.com/p/go.crypto/nacl
    Прикладное быстрое шифрование на элиптических кривых.
    • +26
    • 10,6k
    • 1
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 1
    • +8
      Мой совет: отправьте запрос на добавление подраздела и вашей подборки в github.com/avelino/awesome-go
      Будет большая польза для гоферов.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое