emberroute

emberroute

Быстрый HTTP-роутер для Go.

Версия 1.4.2 Go 1.22+ Лицензия MIT pkg.go.dev

emberroute сопоставляет HTTP-запросы с обработчиками на Go. Поддерживаются параметры пути, подстановки, группы маршрутов и middleware, а поиск идёт по radix-дереву, поэтому остаётся быстрым при любом числе маршрутов.

go get github.com/emberroute-dev/emberroute@latest

Пример

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/emberroute-dev/emberroute"
)

func main() {
	ctx := context.Background()

	r, err := emberroute.New(emberroute.Options{
		RedirectTrailingSlash: true,
		BasePath:              "/",
	})
	if err != nil {
		log.Fatal(err)
	}
	defer r.Close()

	if err := r.Get(ctx, "/users/{id}"); err != nil {
		log.Fatal(err)
	}

	items, err := r.Routes(ctx)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(items)
}

Возможности

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

УстановкаТребования, установка и сборка из исходников. Первые шагиПервая программа и основные понятия. РецептыЗаконченные программы для типичных задач. ПараметрыВсе параметры, их типы и значения по умолчанию. СправочникСигнатуры и поведение публичного API. ПроизводительностьБенчмарки и советы по скорости. ТестированиеКак тестировать код, использующий библиотеку. Частые вопросыКороткие ответы на частые вопросы. Обновление версийКак переходить между мажорными версиями. РелизыИстория релизов. Политика безопасностиПоддерживаемые версии и сообщения об уязвимостях. Участие в разработкеКак собрать проект и отправить изменения. ПоддержкаГде задать вопрос и как связаться с авторами.