- Brut ist für das Ruby-Ökosystem ein einfaches, aber leistungsstarkes Webframework auf Basis von geringer Abstraktion und low-ceremony, das eine seiten-, formular- und einzelaktionszentrierte Struktur ohne Controller- und REST-Ressourcenkonzepte bereitstellt
- Server-seitig gerendertes HTML, direkte JS/CSS-Entwicklung, OpenTelemetry-Integration sowie moderne Ruby-Tools wie Sequel und OptionParser sind integriert, sodass Installation und Entwicklung in wenigen Minuten möglich sind
- Mit einer klassenbasierten Struktur, typbasierter Verwaltung von Sessions, Formularen und Parametern sowie minimalem Einsatz dynamischer Methoden und Hashes setzt Brut auf klaren Code und automatische Dokumentation
- Nutzung der modernen Web-Plattform: integrierte Server- und Client-Validierung, BrutJS (Web Components), CSS-Bündelung und Hashing mit esbuild, sowie stärkere Grundlagen bei Sicherheitsrichtlinien und DB-Design
- Mit minimiertem YAML-Einsatz und Ruby/Hash-basierter Konfiguration, klarer Namensgebung und Rollenaufteilung ist es Brut-Ziel, Ruby und Browser-Technologien ohne unnötige Abstraktionen oder erzwungene Muster mit Freude zu nutzen
Die wichtigsten Merkmale des Brut-Frameworks
Vollständig neue Struktur – seitenzentriert ohne Controller
- Statt Controller, REST-Ressourcen und Route-Actions nutzt Brut klassenbasierte Pages, Forms und Single-Action-Handler
- HTML wird direkt auf dem Server erzeugt; JS/CSS kann nach Bedarf geschrieben werden
- Beispiel: Die Zeit-Anzeige-Seite wird direkt als
TimePage < AppPage definiert
Aktive Nutzung moderner Web-Plattformen
- Integrierte Server- und Client-Validierung für die Form UX
- BrutJS (Web-Components-Bibliothek) zur inkrementellen Erweiterung von HTML
- esbuild für CSS-Bündelung und Hashing, ohne PostCSS oder SASS
Eingebaute Produktivität und Grundlagen
- OpenTelemetry-basierte Instrumentierung, auf Sequel basierter Datenzugriff, CLI-Automatisierung auf OptionParser-Basis
- Standard-Sicherheitsrichtlinien, Standardwerte und Indizes für DB-Spalten/Fremdschlüssel, stets zeitzonenbewusste Zeitangaben, einfache Lokalisierung
- RSpec-Tests, Datengenerierung mit Faker/FactoryBot, HTML-Erzeugung mit Phlex
YAML-Reduktion und klare Konfigurationsstruktur
- I18n basiert auf Ruby Hashes, dynamische Konfiguration wird über dotenv verwaltet (nahezu kein YAML)
- Nur bei docker-compose wird YAML ausnahmsweise genutzt
Keine unnötigen Abstraktionen oder erzwungenen Muster
- Klare Namensgebung und Struktur (z. B.
WidgetsPage ist unter /widgets erreichbar)
- Datenebene (DB::Widget) und Domänenebene (Widget) lassen sich vollständig trennen
- Kein Controller-Konzept, Geschäftslogik kann frei implementiert werden
- Komplexe funktionale Muster, Monaden, Proc usw. werden nicht erzwungen
Entwicklererfahrung und Flexibilität
- Moderne Ruby-Ökosystem-Tools wie RSpec sind standardmäßig integriert
- Phlex (HTML), Faker/FactoryBot, Sequel, OpenTelemetry und weitere wichtige Bibliotheken werden aktiv genutzt
- Weg von wiederkehrendem Boilerplate, Setup und Entscheidungsdebatten; Fokus auf den Spaß mit Ruby- und Browser-Technologien
Warum Brut?
- Statt wiederholten Setups, ständiger Architektur- und Strukturdebatten sowie unnötiger Flexibilität in Rails und anderen bestehenden Frameworks setzt Brut auf die Freude am Code selbst
- Als Ruby-basiertes Web-App-Framework, mit dem sich schnell entwickeln und deployen lässt, konzentriert es sich auf Produktivität und Klarheit
Start und Roadmap
- Brut stellt ein offizielles Docker-Image bereit, unterstützt schnelle App-Erstellung und -Ausführung per Kommandozeile
- Praxisnahe Beispiel-Apps wie ADRs.cloud
- Version 1.0 und die offizielle Roadmap sollen kontinuierlich aktualisiert werden
Noch keine Kommentare.