Forge
v1.0.0-rc.4· Python 3.12+· MariaDB 11.8· SQLite· Node.js 24· Tailwind CSS 4.3· Jinja2 3.1· HTMX· Alpine.js

Le framework Python que vous pouvez lire en entier.

Framework web applicatif Python, explicite et auditable.

Nouveautés 1.0.0-rc.4

Documentation jouée, pas relue

Les parcours d'accueil sont exécutés dans de vrais projets, les blocs de commande de la documentation sont lancés, et chaque import ou commande cité est confronté à l'interpréteur et au CLI. Une page qui montre du code promet qu'il fonctionne : cette promesse est désormais vérifiée à chaque intégration, pas relue.

Ce que la vérification a trouvé

La sonde de disponibilité /health, pourtant au contrat de stabilité, répondait 404 en production. Soixante-cinq tests, dont les trente-trois d'en-têtes de sécurité, ne s'exécutaient plus. Corrigés, et tenus par des garde-fous qui empêchent le retour.

Entités sans terminal

forge make:entity et forge make:relation acceptent la description complète en arguments, champs et relations compris. Un parcours devient rejouable, un projet reproductible, et l'outillage scriptable sans dialogue interactif.

Dépendances surveillées

L'audit hebdomadaire des dépendances expédiées a été remis en état, et il a relevé trois avis en moins de vingt-quatre heures. La borne haute de cryptography est levée : cette bibliothèque livre ses correctifs de sécurité dans une nouvelle version majeure, qu'un plafond interdisait au moment même de leur parution.

Installer Forge.

Poste Linux

Installez Forge en quelques minutes sur Debian, Ubuntu ou Linux Mint.

  1. 1 Installation propre avec pipx, sans modifier le Python système.
  2. 2 Projet prêt à lancer avec forge new.
  3. 3
    Modules à la demande :
Poste Windows 10/11 + WSL

Développez avec Forge sous Windows grâce à WSL et Ubuntu 24.04.

  1. 1 Linux dans Windows, directement, sans machine virtuelle complète.
  2. 2 Environnement isolé dans Ubuntu, adapté à Forge.
  3. 3 Une fois WSL prêt, suivez la procédure du poste Linux pour installer Forge et créer votre projet.

Starters

Les starters sont des projets pédagogiques pour apprendre Forge pas à pas.

Bonjour Forge

La progression cœur : du premier affichage texte jusqu'à un CRUD complet à SQL visible, palier par palier (HTTP, vues, formulaires, base de données).

Forge IoT

Recevoir, stocker et exposer des mesures de capteurs : configuration MQTT, lecture des événements, API HTTP JSON et subscriber temps réel.

Forge Vidéo

La chaîne vidéo complète, brique par brique : upload, lecture en streaming, suivi d'état, sondage et transcodage MP4.

Forge Images

Téléverser, générer des variantes, attacher à une entité, gérer galerie et couverture, puis sécuriser l'upload contre les images piégées.

Forge Fichiers

La brique d'upload générique : stockage sécurisé, service de fichiers, validation, limitation de débit et chemins anti-traversal.

Forge Fixtures

Données de démonstration et de test rejouables : charger, purger, et générer du SQL relu depuis des factories (Faker), à SQL visible.

Forge Audio

Téléverser un audio, le lire en streaming, sonder ses métadonnées et le transcoder en MP3, sans état.

Forge MFA

Le second facteur de bout en bout : secret TOTP, enrôlement, challenge de connexion, codes de récupération et durcissement.

Forge RBAC

Le contrôle d'accès par rôles : contrat déclaratif, vérification de permission, garde de route, helper de gabarit et résolution par utilisateur.

Forge Workflow

Statuts et transitions applicatives : déclarer les passages autorisés, les vérifier, puis afficher des badges de statut.

Forge Stats

Le tracking d'événements à SQL visible : schéma, insertion, validation, consultation et normalisation des lignes.

Forge Mail

Composer et envoyer des emails : transports interchangeables (console, SMTP, log), templates Jinja et diagnostic du module.

Forge i18n

Internationaliser une application : catalogues JSON, locale par défaut et fallback, helper trans() dans les templates.

Forge Entités

Le moteur d'entités pas à pas : déclarer une entité, la relier, générer le SQL, le modèle et le CRUD, faire évoluer le schéma par migrations, jusqu'au pivot enrichi.

Forge QR Code

Générer des QR Codes PNG ou SVG depuis du texte ou une URL, et les servir depuis un contrôleur.

Forge Settings

Persister des paramètres applicatifs en base : écrire et lire des valeurs typées via get_setting et set_setting.

Forge Import/Export

Échanger des données en CSV : import validé champ par champ avec rapport d'erreurs, et export programmatique.

Forge Audit

Tenir un journal d'audit applicatif : enregistrer et consulter des événements, borné et lisible.

Forge Jobs

Une file de tâches de fond adossée à votre base de données : enqueue et worker explicite, sans broker ni async.

Forge Notifications

Des notifications in-app : notifier un utilisateur, lister puis marquer comme lues.

Forge Déploiement

Préparer la mise en production : générer la configuration Nginx, systemd et Gunicorn, puis vérifier l'environnement.

Forge Sessions BDD

Un store de session persistant adossé à la base : sessions partagées entre workers, portable sur tous les backends.

Forge Admin

Un back-office applicatif : CRUD générique sur les entités déclarées, avec auth, CSRF et RBAC optionnel.

Forge Façades

Construire vos propres façades applicatives (Session, Cookies, Flash) au-dessus du noyau minimal, sans alourdir Forge.

Forge Markdown

Rédiger une page de documentation Forge palier par palier : titres, listes, tableaux, encadrés, code, onglets, diagrammes et toutes les extensions Markdown.

Forge Outils interactifs

Construire des outils interactifs (calculateur de sous-réseau, oscilloscope) sous CSP stricte, sans SPA ni CDN : SSR pur et JavaScript local.

Forge Design

Utiliser le système de design livré par forge new, palier par palier, dans de vraies pages servies par un contrôleur : charte, composants, liste, recherche, pagination, validation.

Forge SQLite

Le backend de base de données le plus simple, sans serveur : configurer SQLite, appliquer les entités, migrer, inspecter, jusqu'aux particularités du dialecte.

Forge MariaDB

Le backend MariaDB : configuration et connexion, pool, provisionnement de la base, application des entités et migrations.

Forge PostgreSQL

Le backend PostgreSQL (psycopg) : configuration, application des entités, migrations et particularités du dialecte.

Forge SQL Server

Le backend Microsoft SQL Server (pyodbc) : configuration, application des entités, migrations et particularités du dialecte.

Ressources Forge.

Le cœur de Forge.

Modules officiels installables séparément.

Chaque brique s'installe à la carte, le cœur ne dépend d'aucune. Il est aussi agnostique de la base de données : vous choisissez un seul backend parmi SQLite, MariaDB, PostgreSQL et SQL Server, tous au niveau plein.

forge-mvc-mariadb

Backend MariaDB : serveur de production, connexion admin dédiée et migrations à SQL visible.

forge-mvc-sqlite

Backend SQLite : zéro configuration, un seul fichier, idéal en développement et pour les tests.

forge-mvc-postgres

Backend PostgreSQL : dialecte, provisioning db:init et intégration validés en continu sur serveur réel.

forge-mvc-mssql

Backend SQL Server : dialecte, provisioning db:init et intégration validés en continu sur serveur réel.

forge-mvc-mfa

Authentification multi-facteurs : TOTP, codes de récupération, challenge à la connexion.

forge-mvc-rbac

Rôles, permissions fines, helpers Jinja et décorateurs @require_permission.

forge-mvc-workflow

Statuts et transitions applicatives : brouillon → publié → archivé.

forge-mvc-stats

Tracking d'événements applicatifs génériques : page vues, clics, conversions.

forge-mvc-files

Upload générique : écriture sécurisée anti-traversal, stockage et service de fichiers (HTTP Range).

forge-mvc-fixtures

Données de démonstration et de test rejouables : charger, purger, générer du SQL relu depuis des factories (Faker).

forge-mvc-images

Traitement d'images (Pillow) : variantes, galerie, couverture et garde anti-image-bombe à l'upload.

forge-mvc-iot

Réception et exposition de données IoT via MQTT : subscriber, stockage d'événements, API JSON.

forge-mvc-video

Upload, transcodage MP4 (H.264/AAC) et lecture vidéo en streaming HTTP Range.

forge-mvc-audio

Upload, sondage (ffprobe), transcodage MP3 (ffmpeg) et lecture audio en streaming HTTP Range.

forge-mvc-mail

Envoi d'emails : composition, transports interchangeables (console, SMTP, log), templates Jinja et CLI mail:*.

forge-mvc-entities

Moteur d'entités : make:entity, relations many_to_one et many_to_many (pivot enrichi), build:model, migrations et make:crud.

forge-mvc-i18n

Internationalisation : traduction par catalogues JSON, locale par défaut et fallback, helper trans() pour les templates.

forge-mvc-qrcode

Génération de QR Codes PNG ou SVG depuis du texte ou une URL, réponse HTTP servable depuis un contrôleur.

forge-mvc-settings

Paramètres applicatifs persistés en base (table app_settings), API explicite get_setting et set_setting.

forge-mvc-sessions-db

Store de session persistant adossé à la base (DbSessionStore) : sessions partagées entre workers, concurrence optimiste.

forge-mvc-import-export

Échange CSV : import validé par champ avec rapport d'erreurs, et export programmatique to_csv.

forge-mvc-audit

Journal d'audit applicatif (table audit_log) : record_audit et get_audit_log, borné, pas un SIEM.

forge-mvc-jobs

File de tâches de fond adossée à votre base de données : enqueue et worker explicite, sans broker ni async.

forge-mvc-notifications

Notifications in-app (table notifications) : notify, get_notifications, mark_read.

forge-mvc-deploy

Outillage de déploiement CLI-only : deploy:init (Nginx, systemd, wsgi.py) et deploy:check.

forge-mvc-admin

Back-office applicatif opt-in : CRUD générique sur les entités déclarées, auth, CSRF et RBAC optionnel.

Générer sans masquer.

Forge automatise les répétitions, mais les fichiers restent visibles, auditables et modifiables.

Chaîne de génération

1. Tout part d'un fichier JSON d'entité canonique, source unique du modèle.

2. La commande forge entity:validate vérifie le contrat avant toute génération.

3. Le SQL et les migrations demeurent visibles et lisibles.

4. Le modèle *_base.py est régénéré à chaque exécution.

5. Le modèle manuel, lui, est toujours préservé.

6. Le contrôleur, le formulaire et les vues CRUD sont ensuite échafaudés.

7. Il en résulte une application MVC claire et maintenable.

$ forge new mon-app
$ cd mon-app
$ forge make:entity Contact
$ forge make:crud Contact --dry-run
$ forge make:crud Contact

Positionnement

Ce que Forge est
  • +Plus structurant que Flask
  • +Moins massif que Django
  • +Moins API-first que FastAPI
  • +Plus explicite qu'un framework magique
  • +SQL visible par défaut
  • +Génération contrôlée et réversible
Ce que Forge n'est pas
  • -Pas un clone de Django, Symfony ou Laravel
  • -Pas un ORM complet imposé
  • -Pas une SPA React/Vue intégrée au core
  • -Pas une boîte noire qui cache le SQL
  • -Pas une plateforme SaaS multi-tenant
  • -Pas encore stable (release candidate)

Contact

Pour toute question sur Forge, retour d'usage, remontée de bug ou demande de licence.

Roger Lequette · forgemvc@gmail.com

Écrire à Forge