awesomeboss

package module
v0.5.82 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2026 License: AGPL-3.0 Imports: 22 Imported by: 0

README

Awesome Boss – FinTech-фреймворк на Go, вдохновлённый котом Боссом! 🐱

Go version

Awesome Boss — это лёгкий, быстрый и безопасный фреймворк для Go.
Он сочетает производительность fasthttp с простотой MTH-архитектуры (Model–Templates–Handler).

🧪 Текущая версия: 0.5 ** – ядро готово, BAT, Boss Socket, boss.toml готов, аудит и DDoS-защита готовы, проведены доработки, BossQ, Decimal, HTTP/2, плагины, и улучшенный WebSocket - следующие версии добавят ещё больше нового


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

go install github.com/boss-technologies/awesome-boss/cmd/boss@latest
boss new myapp --template normal
cd myapp
boss run

Готово! Сервер запущен на http://localhost:8080.

Пример кода
package main

import (
    "log"
    "github.com/boss-technologies/awesome-boss"
    "github.com/boss-technologies/awesome-boss/config"
    "github.com/boss-technologies/awesome-boss/core"
)

func main() {
    cfg, err := config.LoadConfig("boss.toml")
    if err != nil {
        log.Fatalf("Ошибка загрузки конфигурации: %v", err)
    }
    app := awesomeboss.New(cfg)

    app.Get("/", func(ctx *core.BossContext) error {
        return ctx.JSON(200, map[string]string{"message": "Привет от кота Босса! 🐈"})
    })

    log.Fatal(app.Run(cfg.Addr))
}

📦 Особенности

  • 🚀 Молниеносная скоростьfasthttp + Go 1.26
  • 🧩 MTH-архитектура – Model, Templates, Handler. Никакой магии.
  • 🪄 Middleware – глобальные и на уровне групп
  • 🧶 Шаблонизатор Fur – на основе html/template, безопасный от XSS
  • 🔐 BAT (Boss Auth Token) – токены на PASETO
  • 📡 Boss Socket – высокопроизводительный WebSocket
  • 🏦 Два режима: normal (быстрый старт) и fintech (Decimal, аудит, DDoS-защита)
  • 🧩 Плагины – Позволяют расширять функционал без изменения ядра на основе интерфейсов.
  • 🕵🏻‍♂️ BossQ - быстрая ORM с кодогенерацией.
  • 🕹 Boss Admin - Админ-панель, созданная для Awesome Boss. Будет в 0.9
  • 💰 Decimal "из коробки" - встроенный Decimal. Уже с 0.4

🗺️ Дорожная карта (Roadmap)

Версия Что появится
0.1 ✅ Роутер, Fur, CLI, два режима
0.2 ✅ BAT, Boss Socket, boss.toml
0.3 ✅ Аудит, безопасность, DDoS-защита
0.4 ✅ BossQ (ORM + Decimal) и HTTP/2
0.5 ✅ Система плагинов, улучшение WebSocket
0.6 🔜 Батарейки - куда-же без них!
0.7 Батареек много не бывает 🧰
0.8 Boss Socket (рост производительности)
0.9 Boss Admin (админ-панель), генерация моделий (boss generate model), кеширование
1.0 Юбилей, полноценная работа с плагинами

👉 Сейчас версия 0.5: - – ядро готово, BAT, Boss Socket, boss.toml готов, аудит и DDoS-защита готовы, проведены доработки, BossQ, Decimal, HTTP/2, плагины, и улучшенный WebSocket - следующие версии добавят ещё больше нового


⚙️ Установка CLI

go install github.com/boss-technologies/awesome-boss/cmd/boss@latest

Проверь: boss version

📄 Лицензия

AGPL v3 – подробности в файле LICENSE.


🐈 Благодарности

Вдохновлено моим котом Боссом, который нажимает лапой на клавиатуру, когда я пишу код.
Сделано с любовью

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Logger

func Logger(next core.Handler) core.Handler

Logger — middleware для логирования запросов

Types

type BossApp

type BossApp struct {
	// contains filtered or unexported fields
}

BossApp представляет HTTP-приложение с поддержкой middleware и групп маршрутов

func New

func New(cfg *config.BossConfig) *BossApp

New создаёт новый экземпляр приложения

func (*BossApp) Delete

func (app *BossApp) Delete(path string, handler core.Handler)

Delete добавляет DELETE маршрут в корневое приложение

func (*BossApp) EnableCSRF

func (app *BossApp) EnableCSRF(secretKey []byte)

EnableCSRF включает защиту от CSRF. secretKey — 32-байтовый ключ.

func (*BossApp) Get

func (app *BossApp) Get(path string, handler core.Handler)

Get добавляет GET маршрут в корневое приложение

func (*BossApp) Group

func (app *BossApp) Group(prefix ...string) *Group

Group создаёт новую группу маршрутов

func (*BossApp) Post

func (app *BossApp) Post(path string, handler core.Handler)

Post добавляет POST маршрут в корневое приложение

func (*BossApp) Put

func (app *BossApp) Put(path string, handler core.Handler)

Put добавляет PUT маршрут в корневое приложение

func (*BossApp) Run

func (app *BossApp) Run(addr string) error

Run запускает сервер на указанном адресе с корректным graceful shutdown.

func (*BossApp) Set

func (app *BossApp) Set(key string, value any)

Set регистрирует глобальную зависимость.

func (*BossApp) Static

func (app *BossApp) Static(prefix, dir string)

Static регистрирует маршрут для отдачи статических файлов из указанной директории. Например: app.Static("/static", "./public")

func (*BossApp) StaticFS added in v0.5.5

func (app *BossApp) StaticFS(prefix string, fsys fs.FS)

StaticFS регистрирует обработчик для раздачи файлов из embed.FS

func (*BossApp) Use

func (app *BossApp) Use(mw core.Middleware)

Use добавляет глобальное middleware

func (*BossApp) WebSocket

func (app *BossApp) WebSocket(path string, handler func(conn net.Conn))

WebSocket регистрирует маршрут для WebSocket-соединений.

type Fur

type Fur struct {
	// contains filtered or unexported fields
}

func NewFur

func NewFur(patterns string) (*Fur, error)

NewFur создает новый экземпляр шаблонизатора Fur

func (*Fur) Render

func (f *Fur) Render(ctx *core.BossContext, templateName string, data any) error

Render выполняет рендеринг шаблона с данными, используя пул буферов для скорости.

func (*Fur) RenderPartial added in v0.5.8

func (f *Fur) RenderPartial(ctx *core.BossContext, templateName string, data any) error

RenderPartial рендерит только указанный шаблон БЕЗ основного макета. Идеально для HTMX-запросов.

type Group

type Group struct {
	// contains filtered or unexported fields
}

Group представляет группу маршрутов с общими middleware

func (*Group) Delete

func (g *Group) Delete(path string, handler core.Handler) *Group

Delete добавляет DELETE маршрут в группу

func (*Group) Get

func (g *Group) Get(path string, handler core.Handler) *Group

Get добавляет GET маршрут в группу

func (*Group) Post

func (g *Group) Post(path string, handler core.Handler) *Group

Post добавляет POST маршрут в группу

func (*Group) Put

func (g *Group) Put(path string, handler core.Handler) *Group

Put добавляет PUT маршрут в группу

func (*Group) Use

func (g *Group) Use(mw core.Middleware) *Group

Use добавляет middleware в группу

func (*Group) WebSocket

func (g *Group) WebSocket(path string, handler func(net.Conn)) *Group

WebSocket регистрирует маршрут для WebSocket-соединений в группу

Directories

Path Synopsis
fields
Package fields содержит кастомные типы полей для BossQ.
Package fields содержит кастомные типы полей для BossQ.
cmd
boss command
internal
socket
socket.go
socket.go
middleware

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL