Marten est un cadre Web Crystal qui permet un développement pragmatique et un prototypage rapide. Il fournit un ensemble d'outils cohérents et extensibles que les développeurs peuvent exploiter pour créer des applications Web sans réinventer la roue.
Simple
La syntaxe de Marten est héritée de la glissière et de la simplicité du langage de programmation en cristal. En plus de cela, le cadre essaie d'être un baiser et sec aussi conforme que possible pour réduire le délai de commercialisation.
⚡ Rapide
Marten vous donne la possibilité de créer des applications Web complètes en tirant parti des performances de métal nu du langage de programmation Crystal. Il essaie également d'optimiser pour des temps de compilation décents.
? Complet
Marten adhère à la philosophie des "batteries incluses". Hors de la boîte, il fournit les outils et les fonctionnalités qui sont généralement requis par les applications Web: ORM, migrations, traductions, moteurs de modèles, sessions, e-mail, authentification, etc.
? Extensible
Marten vous donne la possibilité de contribuer facilement des fonctionnalités supplémentaires au cadre. Des choses comme les implémentations de champ de modèles personnalisées, les nouveaux types de paramètres d'itinéraire, les magasins de session, etc ... peuvent être enregistrés facilement dans le cadre.
? Orienté vers l'application
Marten permet de séparer les projets en un ensemble d'applications logiques. Ces applications peuvent également être extraites pour contribuer des caractéristiques et des comportements à d'autres projets martens. Le but ici est de permettre la création d'un puissant écosystème d'applications au fil du temps.
? ️ sécurisé
Marten est livré avec des mécanismes de sécurité hors de la boîte. Des choses comme les contrefaçons inter-sites, le jacking de clics ou les injections SQL sont prises en charge par le cadre pour éviter les problèmes de sécurité courants.
Les outils dont vous avez besoin sont intégrés dans le cadre. ORM de base de données, traductions, migrations, modèles, sessions, e-mail, authentification, et bien d'autres peuvent être exploitées immédiatement.
Concevez facilement vos modèles
Marten est livré avec un mapper d'objet-relation (ORM) que vous pouvez exploiter pour décrire votre base de données à l'aide de classes de cristal et un DSL pratique.
class Article < Marten::Model
field :id , :big_int , primary_key: true , auto: true
field :title , :string , max_size: 128
field :content , :text
field :author , :many_to_one , to: User
endProcéder aux demandes avec les gestionnaires
Les gestionnaires sont responsables du traitement des demandes Web et du retour des réponses. Cela peut impliquer le chargement des enregistrements de la base de données, le rendu des modèles HTML ou la production de charges utiles JSON.
class ArticleListHandler < Marten::Handler
def get
render " articles/list.html " , { articles: Article .all }
end
endRendre le contenu orienté avec les utilisateurs avec des modèles
Les modèles fournissent un moyen pratique de définir votre logique de présentation et d'écrire des contenus (tels que HTML) qui sont rendus dynamiquement. Ce rendu peut impliquer des enregistrements de modèle ou toute autre variable que vous définissez.
{% extend "base.html" %}
{% block content %}
< ul >
{% for article in articles %}
< li > {{ article.title }} </ li >
{% endfor %}
</ ul >
{% endblock content %}La documentation en ligne de navigation est disponible sur https://martenframework.com/docs.
Êtes-vous nouveau dans le cadre Web Marten? Les ressources suivantes vous aideront à démarrer:
Morgan Aubert (@ellmetha) et contributeurs.
Le Marten Web Framework s'inspire initialement de Django et Ruby sur Rails. Vous pouvez parcourir la section Remerciements de la documentation pour en savoir plus sur les différentes inspirations et contributions qui ont aidé à façonner Marten.
Mit. Voir LICENSE pour plus de détails.