Comments (14)
As far as I know, brook 4 is not entirely written in Pascal - it's a C library with a pascal binding:
https://github.com/risoflora/libbrook
from brookframework.
Sadly, if so. The main way for me to learn how the library works to look at the internal source code
from brookframework.
Hello dudes.
@trinione It is already being tested in beta release at risoflora/libbrook. Currently I'm working in full time to finish it and make it available in package managers like APT(Ubuntu/Debian), Pacman(Arch/MinGW), Nuget(MS), GetIt(Delphi), OPK(Lazarus) and so on, allowing the programmers to install it easily in any supported system (Linux/ARM, Windows etc.). Another work in progress is to make libbrook OK in tools like PVS-Studio, offering more security for Brook users (already done at risoflora/libsagui@48d7b4b and risoflora/libsagui@24606d8).
@edwinyzh Thanks for replying, you are right. However, specially the Pascal binding will have many pascal-ish features compilable on Free Pascal and Delphi (e.g: dependency injection, cross-platform service/daemon classes, JSON-ish dataset/object serialization, online program version manager and more).
@Al-Muhandis Since you use FastCGI, the Brook library will become your ally, because you will not depend on external HTTP servers anymore, like Apache, Nginx etc. You just will link a small (about 110 kB) static version into your executable and you will have a builtin stand-alone fast HTTP server event-driven based, full debugging support using FastCGI as reverse proxy, and faster than any other stand-alone HTTP server like Apache, MS http.sys
, FPC/Delphi thread-ish builtin servers. Free Pascal/Delphi programmers already use the static/shared library concept consuming GNU libraries and system APIs following the POSIX standards.
Good news for Brook 3 users: the brook library will allow to run any project based on Brook3, as CGI or FastCGI. And it will be kept as it is, Free Pascal only, however it will be moved to a branch to get updates following the its evolution.
Edit:
This branch is in progress and contains the building system and documentation that will be used to release the stable libbrook to the world! 😃
from brookframework.
from brookframework.
@silvioprog Great! Thank you! <<the Brook library will become your ally, because you will not depend on external HTTP servers anymore, like Apache, Nginx etc>> But can I use sites in PHP and fastcgi applications based on Brook4 on the same server as I use that to with Brook3?
from brookframework.
But can I use sites in PHP and fastcgi applications based on Brook4 on the same server as I use that to with Brook3?
Since the server just redirects the flow to the proxy, the answer is yes, you can. Notice the reverse proxy allows you to communicate many servers. Maybe I'll post some article explaining that.
I have plan to use PHP's FastCGI header instead of the original one, because the FastCGI's official site is down and the headers I found (which FPC custfcgi seems based on) contains problems that PHP community already fixed. Another feature I have plan to implement is to allow a threading model to the FastCGI plugin (currently FPC's custcfgi doesn't provide any builtin threading support, this responsibility is left to the server).
But notice I'm working to release the stable and documented library version, so there is many tasks to be done before.
from brookframework.
Seeing activity. Would the Lazarus install be ready soon?
from brookframework.
@trinione Yes. 😃 Take a look at this branch: brook-tardigrade. It contains the units already done and their respective examples/docs/tests. Currently only some classes for string/map handling but that can be tested. Keep monitoring this branch because it is updated constantly.
from brookframework.
Great jobs!
Any updated documents about Brook4 for learning such as REST ? Thanks!
BTW,I worked on FreeBSD,do I have to compile the package by myself?
from brookframework.
@LaytonWang thanks! 👍 😃 👍
Currently we have only the reference of the utility classes and their respective examples / tests (we strong recommend to run all the tests and report any bug if found 😎). I'm working in the router feature (which REST depends on). Current status of that (in Brook library):
- studying the FFI library - because the new Brook router will be able to map and call any routine from any programming language. (almost done)
- studying hardly PCRE2 library - because we will use regex to register a route. (in progress ...)
It would be nice to make Brook library available in BSD systems. Could you help me in this task as soon as the Brook library is release? I already have a good knowledge about to register a programa/library to be available in package managers like APT(Debian/Ubuntu) and Pacman(Mingw/Arch).
Edit: added missing links.
from brookframework.
Thanks . That seems a hard challenge for me because I am just a pascal programmer . I would try to study it and let you know my progress for BSD's pkg and ports system asap.
from brookframework.
Hi dudes, I have good news! A new broker was added containing the following commentary:
...
{ Use this unit ONLY if you have a legacy application in Brook 3/4 and wants to
run it in Brook Tardigrade. }
...
it is available here and a new example was added showing how to use that.
Using this new broker, a legacy application based on old Brook versions can run without any external HTTP server (Apache, Nginx, fcl-http etc.), you just need an external small library that can be downloaded here.
The Brook version in trunk compiles only on Free Pascal. It will be released as 4.0.0 and tagged to be available for fix bugs only. After that, the 5.0.0 (code name Tardigrade) version will be released. It compiles on Free Pascal and Delphi (tested on XE families) and doesn't depends on external HTTP servers (Apache, Nginx, fcl-http etc.). After releasing 5.0.0, I have plans to help FPC team in the new RTTI support, because I need it to implement a new feature that will be released in 5.1.
Enjoy that!
from brookframework.
Thanks!
it is available here and a new example was added showing how to use that.
But the links is not available
from brookframework.
Links updated. Thanks for reporting! :-)
from brookframework.
Related Issues (20)
- Why plugins projects on github to brookframework is closing? HOT 4
- Telegram plugin for brookframework HOT 15
- i18n HOT 4
- libbrook.pas in Source HOT 3
- tardigrade demos throwing errors in libbrook HOT 4
- Server requirements? HOT 4
- dopf & LastInsertID HOT 4
- httprouter.lpr throwing error HOT 2
- How am I supposed to free worker thread in brook daemon? HOT 9
- Use legacy application with tardigrade HOT 19
- CPU Activity is high for tardigrade projects BROOK4 HOT 4
- More documentation HOT 1
- Can't get POST request data HOT 13
- Brookframework with sagui (legacy) HOT 11
- HTTP Client HOT 1
- Where did the captcha plugin for 4.0 go? HOT 1
- Some suggestion about JTemplate? HOT 3
- [IDEA] New repository HOT 1
- EBrookHTTPServer: Failed to send data in request for HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from brookframework.