Skip to main content

Framework web applicatif Python minimaliste, pédagogique et extensible.

Project description

Forge

PyPI version Python License

Une forge pour les créer toutes.

Forge est un framework web applicatif Python, MVC, explicite et pédagogique. HTTPS natif, Jinja2 intégré, SQL visible, générateurs prudents.


Statut

Forge 1.0.0-beta.16 — bêta publique.

  • Paquet PyPI : forge-mvc
  • Préversion PEP 440 : installation avec --pre
  • Python 3.12+
  • API publique en stabilisation

Liens utiles

Ressource Lien
Site officiel forgemvc.com
Documentation forgemvc.com/docs/forge/
Installation forgemvc.com/docs/forge/install/
Windows + WSL forgemvc.com/docs/forge/install/windows-wsl/
Bonjour Forge forgemvc.com/docs/forge/bonjour-forge/
Référence CLI forgemvc.com/docs/forge/reference/cli-commands/
PyPI pypi.org/project/forge-mvc/
Retours terrain forgemvc.com/docs/forge/testing/

Installation rapide

pipx install --pip-args="--pre" forge-mvc
forge --version

Créer un projet nu puis construire le starter welcome :

forge new forge-demo
cd forge-demo

python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

forge starter:build welcome

cp env/example env/dev
forge db:init
forge run

La documentation complète d'installation est sur forgemvc.com/docs/forge/install/.


Exemple minimal

# mvc/routes.py
from mvc.controllers.home_controller import HomeController

routes = [
    ("GET", "/", HomeController.index, {"public": True}),
]
# mvc/controllers/home_controller.py
from core.http.response import Response


class HomeController:
    @staticmethod
    def index(request):
        return Response.text("Bonjour Forge")

Pourquoi Forge ?

  • MVC serveur explicite, sans magie cachée
  • SQL visible, pas d'ORM imposé
  • Générateurs prudents : Forge ne réécrit pas votre code
  • Documentation officielle complète
  • Sécurité web par défaut (CSRF, Argon2id, headers, autoescape)
  • Noyau minimal, opt-ins
  • Python 3.12+, dépendances explicites

Opt-ins officiels

Opt-in Rôle Maturité
forge-mvc-rbac Rôles et permissions déclaratives Beta
forge-mvc-workflow Cycles de vie applicatifs (statuts, transitions) Beta
forge-mvc-stats Agrégats et compteurs d'événements Beta
forge-mvc-mfa Authentification multi-facteurs (TOTP) Alpha
forge-mvc-files Upload générique : écriture sécurisée, storage, service de fichiers (HTTP Range) Alpha
forge-mvc-images Traitement et gestion applicative des images (Pillow), dépend de forge-mvc-files Alpha
forge-mvc-audio Upload, sondage, transcodage MP3 et lecture en streaming HTTP Range Beta
forge-mvc-video Upload, transcodage MP4 (H.264/AAC) et lecture en streaming HTTP Range Beta
forge-mvc-iot Réception/exposition de données IoT (MQTT, stockage, API HTTP) Alpha
forge-mvc-pivot Tables pivot avancées extraites du core Beta
forge-mvc-mail Envoi de courriels extrait du core Beta
forge-mvc-i18n Internationalisation : catalogues JSON, fallback, helper trans() (repli no-op du noyau) Beta (publication à venir)

Chaque opt-in reste optionnel : le core Forge ne dépend d'aucun d'eux. Seuls forge-mvc-rbac, forge-mvc-workflow et forge-mvc-stats sont inclus dans l'extra forge-mvc[all]. Tous les autres opt-ins (mfa, files, images, audio, video, iot, pivot, mail, i18n) s'installent explicitement et séparément, par exemple pip install --pre forge-mvc-rbac ou pip install --pre forge-mvc-images. forge-mvc-i18n n'est pas encore publié sur PyPI ; il s'installe en éditable via requirements-dev.txt. Cette exclusion de [all] tient soit à une dépendance lourde (MQTT paho-mqtt pour IoT, binaire système FFmpeg pour Video et Audio, Pillow pour Images), soit à une maturité encore Alpha.


Documentation

Toute la documentation est publiée sur forgemvc.com/docs/forge/ :

  • Installation, démarrage rapide, tutoriels
  • Référence de la CLI forge
  • Entités, modèles, SQL et migrations
  • Formulaires, validation, CSRF, sessions
  • Modules opt-in (RBAC, workflow, stats, MFA, files, images, audio, IoT, Video, pivot, mail, i18n)
  • ADR et charte philosophique

Développement du framework

Pour contribuer à Forge directement :

git clone https://github.com/caucrogeGit/Forge.git
cd Forge

python -m venv .venv
source .venv/bin/activate
python -m pip install -e .
python -m pip install -r requirements-dev.txt

Validations courantes avant un commit :

python -m pytest -x -q
python -m compileall -q .
ruff check .
mkdocs build --strict

Voir CHARTE_DOC.md et docs/adr/ pour les principes et décisions architecturales.


Licence

Forge est distribué sous licence propriétaire / source disponible.

L'usage professionnel, commercial ou institutionnel nécessite un accord écrit préalable de Roger Lequette. La lecture, l'étude, l'évaluation personnelle et l'usage éducatif non commercial sont autorisés sans accord.

Voir LICENSE pour les conditions complètes.


Auteur

Roger Lequette — forgemvc.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forge_mvc-1.0.0b16.tar.gz (346.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forge_mvc-1.0.0b16-py3-none-any.whl (418.1 kB view details)

Uploaded Python 3

File details

Details for the file forge_mvc-1.0.0b16.tar.gz.

File metadata

  • Download URL: forge_mvc-1.0.0b16.tar.gz
  • Upload date:
  • Size: 346.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for forge_mvc-1.0.0b16.tar.gz
Algorithm Hash digest
SHA256 491246aeada56be57eb5323acd3248de56e7a041235958db0547e6c43ba944c7
MD5 453a2735ee32472193a219397dbbe05c
BLAKE2b-256 468faeaf972278d5164dc3c1d4b05b0c3ecc4b8864687a44ad70b6866573b98b

See more details on using hashes here.

File details

Details for the file forge_mvc-1.0.0b16-py3-none-any.whl.

File metadata

  • Download URL: forge_mvc-1.0.0b16-py3-none-any.whl
  • Upload date:
  • Size: 418.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for forge_mvc-1.0.0b16-py3-none-any.whl
Algorithm Hash digest
SHA256 3e752d86ad2d38cd6510c1d2b5094af4486d6aae556e5abf78888f283ae763bb
MD5 3863cfd35c244bf327f75de192a60b8e
BLAKE2b-256 cb54131decb8a2fedc440d1417f38f7ad6ea3ff993de4e74d9185674de6d77a0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page