BeepFp

From Lazarus wiki
Jump to navigationJump to search

About

BeepFp is a Free Pascal componentset to allow development of custom protocols using BEEP in native Object Pascal.

BeepFp does not implement BEEP itself, but rather builds an easy to use componentset on top of a stable and proven library. The library, LibVortex, is a full RFC3080 implementation.

BEEP is a network application framework protocol. It is not a complete protocol but only provides the building blocks common to most network protocols to ease custom protocol design and speed up implementation. To understand exactly what BEEP is, see www.beepcore.org and RFC3080.

The main characteristics of BeepFp are :

  • Built on a proven library
  • Event driven communication
  • Blocking and non-blocking modes
  • Requires only a few event handlers to implement full-blown network protocol
  • Multiple channels on a single TCP/IP connection


The main characteristics of BEEP are :

  • Common parts of network protocols are in the specification
  • Provides for authentication using SASL
  • Provides for encryption using TLS
  • Protocols can be defined in a peer-to-peer mode, client-server mode or a combination thereof
  • Each socket connection between peers runs multiple concurrent channels.
  • Each channel can deliver messages synchronously or asynchronously.

Author

Wimpie Nortje (User:Wimpie)

License

modified LGPL (same as the FPC RTL and the Lazarus LCL). You can contact the author if the modified LGPL doesn't work with your project licensing.

The LibAxl and LibVortex shared libraries is under LGPL. Contact the authors at www.aspl.es with any questions.

Download

The latest stable release can be found on http://sourceforge.net/projects/lazarus-ccr/files/BeepFp/.

Change Log

  • Release 1.1 31 March 2010
    • Events are triggered in main application thread.
    • Lazarus component to manage thread synchronisation.
    • Numerous fixes.
  • Release 1.0 14 August 2009
    • Initial release with most of the basic BEEP functionality

Dependencies / System Requirements


Status: Stable


Issues

  • Denying a channel request doesn't work properly
  • Requesting unsopported profiles causes problems
  • The server cannot initiate a connection close. It hangs when trying to.

Installation

  • Obtain the LibAxl and LibVortex libraries.
  • Install and test the libraries following the included transactions.
  • Open the libaxl package, compile
  • Open the libvortex package, compile
  • Open the BeepFp package, compile
  • In a project, add BeepFp package as requirement

The BEEP_Listen Server Example Application

  • Open example/BEEP_Listen.lpi
  • compile
  • run

The BEEP_Client Client Example Application

  • Open example/BEEP_Client.lpi
  • compile
  • run