Giter Club home page Giter Club logo

Comments (14)

edwinyzh avatar edwinyzh commented on July 22, 2024

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.

Al-Muhandis avatar Al-Muhandis commented on July 22, 2024

Sadly, if so. The main way for me to learn how the library works to look at the internal source code

from brookframework.

silvioprog avatar silvioprog commented on July 22, 2024

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.

trinione avatar trinione commented on July 22, 2024

from brookframework.

Al-Muhandis avatar Al-Muhandis commented on July 22, 2024

@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.

silvioprog avatar silvioprog commented on July 22, 2024

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.

trinione avatar trinione commented on July 22, 2024

Seeing activity. Would the Lazarus install be ready soon?

from brookframework.

silvioprog avatar silvioprog commented on July 22, 2024

@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.

 avatar commented on July 22, 2024

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.

silvioprog avatar silvioprog commented on July 22, 2024

@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.

 avatar commented on July 22, 2024

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.

silvioprog avatar silvioprog commented on July 22, 2024

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.

Al-Muhandis avatar Al-Muhandis commented on July 22, 2024

Thanks!

it is available here and a new example was added showing how to use that.

But the links is not available

from brookframework.

silvioprog avatar silvioprog commented on July 22, 2024

Links updated. Thanks for reporting! :-)

from brookframework.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.