- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

godoc.org/code.google.com/p/go.crypto/nacl [15]
Прикладное быстрое шифрование на элиптических кривых.

Автор: outself

Источник [16]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/shifrovanie/66840

Ссылки в тексте:

[1] github.com/rcrowley/goagain: https://github.com/rcrowley/goagain

[2] github.com/cheggaaa/pb: https://github.com/cheggaaa/pb

[3] github.com/rcrowley/go-metrics: https://github.com/rcrowley/go-metrics

[4] github.com/golang/glog: https://github.com/golang/glog

[5] labix.org/mgo: http://labix.org/mgo

[6] github.com/camlistore/lock: https://github.com/camlistore/lock

[7] github.com/codegangsta/cli: https://github.com/codegangsta/cli

[8] godoc.org/code.google.com/p/go-uuid/uuid: https://godoc.org/code.google.com/p/go-uuid/uuid

[9] godoc.org/code.google.com/p/go.crypto/ssh: https://godoc.org/code.google.com/p/go.crypto/ssh

[10] github.com/kr/pretty: https://github.com/kr/pretty

[11] github.com/google/btree: https://github.com/google/btree

[12] github.com/bitly/dablooms: https://github.com/bitly/dablooms

[13] github.com/bitly/go-hostpool: https://github.com/bitly/go-hostpool

[14] github.com/influxdb/influxdb: https://github.com/influxdb/influxdb

[15] godoc.org/code.google.com/p/go.crypto/nacl: https://godoc.org/code.google.com/p/go.crypto/nacl

[16] Источник: http://habrahabr.ru/post/232367/