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

OSCHINA-MIRROR/go-baa-baa

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh-CN.md 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 04:02 ab0e51d

Baa — это простой и эффективный веб-фреймворк для разработки на Go. Он включает в себя маршрутизацию, промежуточное ПО, внедрение зависимостей и HTTP-контекст.

Baa не использует отражение и регулярные выражения, а также избегает «магической» реализации.

Документация

Быстрый старт

Установка:

go get -u github.com/go-baa/baa

Пример:

// baa.go
package main

import (
    "github.com/go-baa/baa"
)

func main() {
    app := baa.New()
    app.Get("/", func(c *baa.Context) {
        c.String(200, "Hello, 世界")
    })
    app.Run(":1323")
}

Компиляция:

Baa использует кодировку/json в качестве пакета по умолчанию, но вы можете изменить его на jsoniter, собрав из других тегов:

go build -tags=jsoniter .

Запуск:

go run baa.go

Просмотр:

http://127.0.0.1:1323/

Особенности

  • Поддержка статических маршрутов, параметров маршрутов, групповых маршрутов (префиксные маршруты/пространства имён) и именованных маршрутов.
  • Маршрутизация поддерживает цепные операции.
  • Поддержка маршрутизации файлов/каталогов.
  • Промежуточное ПО поддерживает цепные операции.
  • Внедрение зависимостей.
  • Поддерживает форматы вывода JSON/JSONP/XML/HTML.
  • Унифицированная обработка ошибок HTTP.
  • Единая обработка журналов.
  • Возможность замены любого шаблона движка (достаточно реализовать интерфейс baa.Renderer).

Примеры

https://github.com/go-baa/example

  • блог
  • API
  • WebSocket

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

  • gzip
  • accesslog
  • recovery
  • session
  • static
  • requestcache
  • nocache
  • jwt
  • cors
  • authz

Компоненты

  • cache
  • render
  • pongo2
  • router
  • pool
  • bat
  • log
  • setting

Тестирование производительности

Тестирование маршрутизации

Используется go-http-routing-benchmark (https://github.com/safeie/go-http-routing-benchmark), обновлено 27 февраля 2016 года.

GitHub API (http://developer.github.com/v3)

Производительность маршрутизации Baa очень близка к Echo.

BenchmarkBaa_GithubAll                 30000         50984 ns/op           0 B/op          0 allocs/op
BenchmarkBeego_GithubAll                3000        478556 ns/op        6496 B/op        203 allocs/op
BenchmarkEcho_GithubAll                30000         47121 ns/op           0 B/op          0 allocs/op
BenchmarkGin_GithubAll                30000         41004 ns/op           0 B/op          0 allocs/op
BenchmarkGocraftWeb_GithubAll           3000        450709 ns/op      131656 B/op       1686 allocs/op
BenchmarkGorillaMux_GithubAll            200       6591485 ns/op      154880 B/oр       2469 allocs/op
BenchmarkMacaron_GithubAll              2000        679559 ns/op      201140 B/оp       1803 allocs/op
BenchmarkMartini_GithubAll               300       5680389 ns/оp      228216 B/оp       2483 allocs/оp
BenchmarkRevel_GithubAll                1000       1413894 ns/оp      337424 B/оp       5512 allocs/оp

HTTP-тестирование

Код:

Baa:

package main

import (
    "github.com/go-baa/baa"
)

func main() {
    app := baa.New()
    app.Get("/", func(c *baa.Context) {
        c.String(200, "Hello, 世界")
    })
    app.Run(":1323")
}

Результаты тестирования:

$ wrk -t 10 -c 100 -d 30 http://127.0.0.1:1323/
Running 30s test @ http://127.0.0.1:1323/
``` ## Пример

В настоящее время используется в частном проекте на передовой здравоохранения.

## Вклад

Вдохновение для Baa пришло из проектов beego, echo и macaron.

- safeie, micate — автор;
- betty — консультант по языку;
- Contributors.

## Лицензия

Этот проект находится под лицензией MIT. Полный текст лицензии смотрите в файле [LICENSE](https://raw.githubusercontent.com/go-baa/baa/master/LICENSE).

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/go-baa-baa.git
git@api.gitlife.ru:oschina-mirror/go-baa-baa.git
oschina-mirror
go-baa-baa
go-baa-baa
master