awesomeboss

package module
v0.5.841 Latest Latest
Warning

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

Go to latest
Published: May 26, 2026 License: AGPL-3.0 Imports: 21 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, плагины, и улучшенный 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(fmt.Sprintf(":%d", cfg.Server.Port)))
}

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

  • 🚀 Молниеносная скорость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 Юбилей, полноценная работа с плагинами И добавления умного помошника Boss AI

👉 Сейчас версия 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 bosssocket.HandlerFunc)

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 bosssocket.HandlerFunc) *Group

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

Directories

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

Jump to

Keyboard shortcuts

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