Difference between revisions of "Networking libraries"

From Lazarus wiki
m
(Add page template and remove categories (defined in the template))
(25 intermediate revisions by 5 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, Mac OS X || [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
+
| [[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 || MPL, modified BSD || numerous protocols || Runs on both Delphi and Lazarus/FPC
 
|-
 
|-
| [[Internet Tools]] || Benito van der Zander || Windows, Linux || GPL || HTTP, HTTPS
+
| [[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.overbyte.be '''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.
 +
 
 +
{|class="wikitable sortable"
 +
!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
 
|-
 
|-
| [[http://www.nsoftware.com/ipworks/#plat-delphi|'''IP*Works!''']] || team || Windows, Linux || Commercial || numerous protocols || Runs on both Delphi and Lazarus/FPC
+
|Fano Framework
 +
|https://github.com/fanoframework/fano
 +
 
 +
https://fanoframework.github.io/
 +
|MIT
 
|-
 
|-
| [[http://www.overbyte.be|'''ICS''']] || François Piette || Windows|| Freeware(*) || numerous protocols || Delphi/FPC. Kylix/FPC is a separate, abandoned codebase
+
|[[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.
  
(*) request to send a postcard when used in production.
+
Provides high level MVC routines.
 +
|}
  
[[Category:Networking]]
+
===Comparison by WebServer Communication===
[[Category:Comparisons]]
+
{|class="wikitable sortable"
[[Category:Libraries]]
+
!Library
 +
!CGI
 +
!FastCGI
 +
!SCGI
 +
!Apache Module
 +
!uWSGI
 +
|-
 +
|fcl-web
 +
|class="working"|Yes
 +
|class="working"|Yes
 +
|class="not"|No
 +
|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 19:16, 1 May 2020

English (en) français (fr)

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

https://fanoframework.github.io/

MIT
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 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