Difference between revisions of "Brook for Free Pascal"

From Lazarus wiki
Jump to navigationJump to search
(Add section on difference between the two Brooks)
 
(13 intermediate revisions by 6 users not shown)
Line 2: Line 2:
  
 
= About =
 
= About =
'''[https://github.com/risoflora/brookframework Brook for Free Pascal]''' is the perfect [http://freepascal.org Free Pascal] framework for web applications. It's pure Pascal. You don't need to leave your preferred programming language.
 
  
It's complete: simple actions or configurable actions for database access, advanced routing features, wizard for [[Lazarus]], support for internationalization, high compatibility with [[JSON]] structures, easy and elegant [http://en.wikipedia.org/wiki/Representational_state_transfer REST] implementation, plugins for varied needs, extensible and decoupled brokers... In fact, you have several reasons to adopt Brook as your web development framework.
+
'''Brook for Free Pascal''' is the perfect Free Pascal framework for web applications. It's pure Pascal. You don't need to leave your preferred programming language.
 +
 
 +
It's complete: simple actions or configurable actions for database access, advanced routing features, wizard for [[Lazarus_FAQ|Lazarus]], support for internationalization, high compatibility with [[JSON]] structures, easy and elegant [http://en.wikipedia.org/wiki/Representational_state_transfer REST] implementation, plugins for varied needs, extensible and decoupled brokers... In fact, you have several reasons to adopt Brook as your web development framework.
 +
 
 +
Author: Silvio Clecio
 +
 
 +
License: GNU LGPL
  
 
= Features =
 
= Features =
Line 10: Line 15:
 
* '''Advanced routes management''' – Actions are performed by means of routes. Brook knows how to receive a request and choose the correct URL and the correct method to reply to it.
 
* '''Advanced routes management''' – Actions are performed by means of routes. Brook knows how to receive a request and choose the correct URL and the correct method to reply to it.
 
* '''Integrated data persistance''' – Brook offers a table object where data can be handled. Less instantiations, less coding, with an elegant syntax.
 
* '''Integrated data persistance''' – Brook offers a table object where data can be handled. Less instantiations, less coding, with an elegant syntax.
* '''JSON native support''' – [http://json.org JSON] is widespread in the web for data exchange purposes. You will really appreciate Brooks' good JSON support.
+
* '''JSON native support''' – JSON is widespread in the web for data exchange purposes. You will really appreciate Brooks' good JSON support.
 
* '''REST architecture support''' – [http://en.wikipedia.org/wiki/Representational_state_transfer REST] is an architecture able to simplify and standardize data requests and replies. Brook is powerful even if you don't use REST – but you will want to use it.
 
* '''REST architecture support''' – [http://en.wikipedia.org/wiki/Representational_state_transfer REST] is an architecture able to simplify and standardize data requests and replies. Brook is powerful even if you don't use REST – but you will want to use it.
* '''Lazarus wizards for installation and usage''' - With [http://www.lazarus.freepascal.org Lazarus], development is easier; with the Brook wizards, only a few clicks are required to start and configure your Brook projects.
+
* '''Lazarus wizards for installation and usage''' - With Lazarus, development is easier; with the Brook wizards, only a few clicks are required to start and configure your Brook projects.
  
 
= Plugins =
 
= Plugins =
  
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/dopf dOPF]''' – Persistance d'objet élégante, intuitive et rapide pour un développement de base de données plus rapide et plus facile.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/dopf dOPF]''' – Sleek, intuitive and fast object persistence for faster and easier database development.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/rutils RUtils]''' – Quelques routines d'usage général pour les conversions de chaînes, l'analyse (parsing), l'encodage et plus encore.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/rutils RUtils]''' – Some general purpose routines for string conversion, parsing, encoding and more.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/jtemplate JTemplate]''' – Remplir les variables dans un fichier patron (template file).  
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/jtemplate JTemplate]''' – Fill variables in a template file.
* '''[https://github.com/leledumbo/QTemplate QTemplate]''' – Alternative au moteur FPTemplate.
+
* '''[https://github.com/leledumbo/QTemplate QTemplate]''' – Alternative to the FPTemplate engine.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/easyrss EasyRSS]''' – la façon la plus facile pour les développeurs Pascal de fournir des services de mise à jour de news dans leurs applications.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/easyrss EasyRSS]''' – Easiest way for Pascal developers to provide news updating services in their applications.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/xmailer XMailer]''' – Manière simple d'envoyer un courriel en utilisant Free Pascal.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/xmailer XMailer]''' – Simple way to send e-mail using Free Pascal.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/algex AlgEx]''' – Traiter des expressions algébriques passés en chaînes de caractères.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/algex AlgEx]''' – Process algebraic expressions passed as strings.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/captcha Captcha]''' – Vérification par images pour bloquer les accès par ''bot'' aux pages de connexion.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/captcha Captcha]''' – Verification images to block ''bot'' access on login pages.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/mgeoip MGeoIP]''' – Identifie le nom du pays ou la ville de résidence de l'IP.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/mgeoip MGeoIP]''' – Identify the name of the country or city where IPs reside.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/convutils ConvUtils]''' – Conversion entre unités de mesures (centimètres, pouces, litres etc.)
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/convutils ConvUtils]''' – Conversion between units of measurement (centimeters, inches, liters etc.)
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/htmldoc HtmlDoc]''' – Ecrire l'entête, le corps et autres étiquettes (tags) pertinents en utilisant le Pascal Objet.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/htmldoc HtmlDoc]''' – Write headers, body and other relevant tags using Object Pascal.
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/ljgridutils LJGridUtils]''' – Conversion facile de LCL vers JSON et vice versa.
+
* '''[https://github.com/risoflora/brookfreepascal/tree/master/plugins/ljgridutils LJGridUtils]''' – Easy conversion from LCL to JSON and vice versa.
* '''[https://github.com/Al-Muhandis/brook-telegram Brook-Telegram]''' – Consomme l'API des Bots Telegram dans une application Brook.
+
* '''[https://github.com/Al-Muhandis/brook-telegram Brook-Telegram]''' – Consume the Telegram Bots API in a Brook application.
  
 
= Homepage =
 
= Homepage =
  
Le "Pour commencer", la documentation, la licence, le téléchargement et les autres détails sont là : [https://github.com/risoflora/brookfreepascal Brook pour Free Pascal].
+
* Get started, documentation, license, download and others details: [https://risoflora.github.io/brookfreepascal/ Home page].
 +
* [https://github.com/risoflora/brookfreepascal GitHub repository]
 +
 
 +
= Comparison with Brook Framework =
 +
 
 +
[[Brook Framework]] is another web application library by the same developer. The main difference between Brook for Free Pascal and Brook Framework is that Brook for Free Pascal is pure Pascal and relies on the HTTP functionality provided by fcl-web, covering CGI, FastCGI and standalone, whereas Brook Framework uses libsagui, a C library, for its underlying HTTP/S functionality.  
  
 
= Alternatives =
 
= Alternatives =
  
* [https://github.com/risoflora/brookframework Brook framework] - Micro cadre d'application qui aide au développement d'applications Web en Pascal.
+
* [https://github.com/synopse/mORMot mORMot] - Synopse mORMot ORM/SOA/MVC framework.
* [https://github.com/synopse/mORMot mORMot] - Cadre d'application Synopse mORMot ORM/SOA/MVC.
+
* [https://github.com/motaz/freespider FreeSpider] - Web development package for Free Pascal/Lazarus.
* [https://github.com/motaz/freespider FreeSpider] - Paquet pour le développement Web pour Free Pascal/Lazarus.
+
* [http://wiki.freepascal.org/fcl-web FCL-Web] Built-in Free Pascal web library.
* [http://wiki.freepascal.org/fcl-web FCL-Web] Bibliothèque Web intégrée à Free Pascal.
+
* [https://fanoframework.github.io Fano Framework] Web application framework for modern Pascal programming language.
* [https://fanoframework.github.io Fano Framework] Cadre d'application Web pour le langage de programmation moderne Pascal.
 

Latest revision as of 08:42, 18 January 2022

Deutsch (de) English (en) français (fr) polski (pl)

About

Brook for Free Pascal is the perfect Free Pascal framework for web applications. It's pure Pascal. You don't need to leave your preferred programming language.

It's complete: simple actions or configurable actions for database access, advanced routing features, wizard for Lazarus, support for internationalization, high compatibility with JSON structures, easy and elegant REST implementation, plugins for varied needs, extensible and decoupled brokers... In fact, you have several reasons to adopt Brook as your web development framework.

Author: Silvio Clecio

License: GNU LGPL

Features

  • Advanced routes management – Actions are performed by means of routes. Brook knows how to receive a request and choose the correct URL and the correct method to reply to it.
  • Integrated data persistance – Brook offers a table object where data can be handled. Less instantiations, less coding, with an elegant syntax.
  • JSON native support – JSON is widespread in the web for data exchange purposes. You will really appreciate Brooks' good JSON support.
  • REST architecture supportREST is an architecture able to simplify and standardize data requests and replies. Brook is powerful even if you don't use REST – but you will want to use it.
  • Lazarus wizards for installation and usage - With Lazarus, development is easier; with the Brook wizards, only a few clicks are required to start and configure your Brook projects.

Plugins

  • dOPF – Sleek, intuitive and fast object persistence for faster and easier database development.
  • RUtils – Some general purpose routines for string conversion, parsing, encoding and more.
  • JTemplate – Fill variables in a template file.
  • QTemplate – Alternative to the FPTemplate engine.
  • EasyRSS – Easiest way for Pascal developers to provide news updating services in their applications.
  • XMailer – Simple way to send e-mail using Free Pascal.
  • AlgEx – Process algebraic expressions passed as strings.
  • Captcha – Verification images to block bot access on login pages.
  • MGeoIP – Identify the name of the country or city where IPs reside.
  • ConvUtils – Conversion between units of measurement (centimeters, inches, liters etc.)
  • HtmlDoc – Write headers, body and other relevant tags using Object Pascal.
  • LJGridUtils – Easy conversion from LCL to JSON and vice versa.
  • Brook-Telegram – Consume the Telegram Bots API in a Brook application.

Homepage

Comparison with Brook Framework

Brook Framework is another web application library by the same developer. The main difference between Brook for Free Pascal and Brook Framework is that Brook for Free Pascal is pure Pascal and relies on the HTTP functionality provided by fcl-web, covering CGI, FastCGI and standalone, whereas Brook Framework uses libsagui, a C library, for its underlying HTTP/S functionality.

Alternatives

  • mORMot - Synopse mORMot ORM/SOA/MVC framework.
  • FreeSpider - Web development package for Free Pascal/Lazarus.
  • FCL-Web Built-in Free Pascal web library.
  • Fano Framework Web application framework for modern Pascal programming language.