Difference between revisions of "Networking libraries"
m (→Web Frameworks) |
|||
(19 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Networking_libraries}} | ||
+ | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
! Name | ! Name | ||
Line 9: | Line 11: | ||
| [[lNet]] || Aleš Katona || Windows, Linux || Modified LGPL || TCP, UDP, HTTP, HTTPS, FTP, SMTP, TELNET || | | [[lNet]] || Aleš Katona || Windows, Linux || Modified LGPL || TCP, UDP, HTTP, HTTPS, FTP, SMTP, TELNET || | ||
|- | |- | ||
− | | [[Synapse]] || Lukas Gebauer || Windows, Linux, | + | | [[Synapse]] || Lukas Gebauer || Windows, Linux, macOS || [http://www.ararat.cz/synapse/doku.php/license BSD style license] || TCP, UDP, HTTP, HTTPS, FTP, SMTP, SNMP, NTP, POP3, PING, IMAP, LDAP, FTPS, DNS || Runs on both Delphi and Lazarus/FPC |
|- | |- | ||
− | | [[Indy with Lazarus|Indy]] || team || Windows, Linux || MPL, modified BSD || numerous protocols || Runs on both Delphi and Lazarus/FPC | + | | [[Indy with Lazarus|Indy]] || team || Windows, Linux, macOS, iOS, Android || MPL, modified BSD || numerous protocols || Runs on both Delphi and Lazarus/FPC |
|- | |- | ||
− | | [[Internet Tools]] || Benito van der Zander || Windows, Linux, | + | | [[Internet Tools]] || Benito van der Zander || Windows, Linux, macOS, Android || GPL || HTTP, HTTPS |
|- | |- | ||
| [http://www.nsoftware.com/ipworks/#plat-delphi '''IP*Works!'''] || team || Windows, Linux || Commercial || numerous protocols || Runs on both Delphi and Lazarus/FPC | | [http://www.nsoftware.com/ipworks/#plat-delphi '''IP*Works!'''] || team || Windows, Linux || Commercial || numerous protocols || Runs on both Delphi and Lazarus/FPC | ||
Line 24: | Line 26: | ||
==Web Frameworks== | ==Web Frameworks== | ||
+ | It's actually hard to define what particular functionality a web-framework should provide. At least it should be able to communicate with a web-server OR even provide web-server functionality itself. | ||
+ | |||
+ | The content and a coverage of each framework listed below varies. Some libraries provide functionality that is implemented in other libraries, i.e. HTML creation, database interaction, encryption, handling archive files, while others do not. It's questionable, if such functionality is mandatory for a web-framework. | ||
+ | |||
{|class="wikitable sortable" | {|class="wikitable sortable" | ||
!Library | !Library | ||
Line 37: | Line 43: | ||
|GPLv3 | |GPLv3 | ||
|- | |- | ||
− | |Brook | + | |Brook |
− | |https://github.com/risoflora/ | + | |https://github.com/risoflora/brookfreepascal |
− | | | + | |LGPLv2.1 |
|- | |- | ||
− | |mORMot | + | |[[mORMot]] |
|https://github.com/synopse/mORMot | |https://github.com/synopse/mORMot | ||
− | | | + | |MPLv1.1 |
+ | GPLv2.0 | ||
+ | LGPLv2.1 | ||
|- | |- | ||
|Fano Framework | |Fano Framework | ||
− | |https://github.com/fanoframework/ | + | |https://github.com/fanoframework/fano |
− | https:// | + | https://fanoframework.github.io/ |
− | | | + | |MIT |
|- | |- | ||
|[[Powtils]] | |[[Powtils]] | ||
|https://github.com/z505/powtils | |https://github.com/z505/powtils | ||
| | | | ||
+ | |- | ||
+ | |FastPlaz | ||
+ | |https://github.com/fastplaz/fastplaz | ||
+ | |||
+ | https://github.com/fastplaz | ||
+ | |Freeware? | ||
+ | |||
+ | The library is based on fcl-web in order to handle the communication. | ||
+ | |||
+ | Provides high level MVC routines. | ||
|} | |} | ||
− | ===Comparison by WebServer | + | ===Comparison by WebServer Communication=== |
{|class="wikitable sortable" | {|class="wikitable sortable" | ||
!Library | !Library | ||
Line 63: | Line 81: | ||
!SCGI | !SCGI | ||
!Apache Module | !Apache Module | ||
+ | !uWSGI | ||
|- | |- | ||
|fcl-web | |fcl-web | ||
− | |Yes | + | |class="working"|Yes |
− | |Yes | + | |class="working"|Yes |
− | |No | + | |class="not"|No |
− | |Yes | + | |class="working"|Yes |
+ | |class="not"|No | ||
+ | |- | ||
+ | |ExtPascal | ||
+ | |class="working"|Yes | ||
+ | |class="working"|Yes | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |- | ||
+ | |Brook | ||
+ | |class="working"|Yes | ||
+ | |class="working"|Yes | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |- | ||
+ | |mORMot | ||
+ | |class="working"|Yes | ||
+ | |class="working"|Yes | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |- | ||
+ | |Fano | ||
+ | |class="working"|Yes | ||
+ | |class="working"|Yes | ||
+ | |class="working"|Yes | ||
+ | |class="not"|No | ||
+ | |class="working"|Yes | ||
+ | |- | ||
+ | |Powtils | ||
+ | |class="working"|Yes | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
+ | |class="not"|No | ||
|} | |} | ||
− | |||
− | |||
− | |||
− |
Revision as of 20:49, 21 September 2021
│
English (en) │
français (fr) │
polski (pl) │
Name | Developers | Platforms | License | Supported protocols | Remarks |
---|---|---|---|---|---|
lNet | Aleš Katona | Windows, Linux | Modified LGPL | TCP, UDP, HTTP, HTTPS, FTP, SMTP, TELNET | |
Synapse | Lukas Gebauer | Windows, Linux, macOS | BSD style license | TCP, UDP, HTTP, HTTPS, FTP, SMTP, SNMP, NTP, POP3, PING, IMAP, LDAP, FTPS, DNS | Runs on both Delphi and Lazarus/FPC |
Indy | team | Windows, Linux, macOS, iOS, Android | MPL, modified BSD | numerous protocols | Runs on both Delphi and Lazarus/FPC |
Internet Tools | Benito van der Zander | Windows, Linux, macOS, Android | GPL | HTTP, HTTPS | |
IP*Works! | team | Windows, Linux | Commercial | numerous protocols | Runs on both Delphi and Lazarus/FPC |
ICS | François Piette | Windows | Freeware(*) | numerous protocols | Delphi/FPC. Kylix/FPC is a separate, abandoned codebase |
(*) request to send a postcard when used in production.
Web Frameworks
It's actually hard to define what particular functionality a web-framework should provide. At least it should be able to communicate with a web-server OR even provide web-server functionality itself.
The content and a coverage of each framework listed below varies. Some libraries provide functionality that is implemented in other libraries, i.e. HTML creation, database interaction, encryption, handling archive files, while others do not. It's questionable, if such functionality is mandatory for a web-framework.
Library | Link | Notes |
---|---|---|
fcl-web | FPC packages | |
ExtPascal | https://github.com/farshadmohajeri/extpascal | GPLv3 |
Brook | https://github.com/risoflora/brookfreepascal | LGPLv2.1 |
mORMot | https://github.com/synopse/mORMot | MPLv1.1
GPLv2.0 LGPLv2.1 |
Fano Framework | https://github.com/fanoframework/fano | MIT |
Powtils | https://github.com/z505/powtils | |
FastPlaz | https://github.com/fastplaz/fastplaz | Freeware?
The library is based on fcl-web in order to handle the communication. Provides high level MVC routines. |
Comparison by WebServer Communication
Library | CGI | FastCGI | SCGI | Apache Module | uWSGI |
---|---|---|---|---|---|
fcl-web | Yes | Yes | No | Yes | No |
ExtPascal | Yes | Yes | No | No | No |
Brook | Yes | Yes | No | No | No |
mORMot | Yes | Yes | No | No | No |
Fano | Yes | Yes | Yes | No | Yes |
Powtils | Yes | No | No | No | No |