This page has moved. Please go here
Lundman's Unix Projects

NetBSD Rules!
About .  Features .  Logo .  Download .  Changelog . 
LION [Lundman's Input Output Network library]

  • Nonblocking Networking.
  • Nonblocking File I/O.
  • Nonblocking pipe/system and fork commands for spawning helper programs. [1]
  • Event driven, event passback for all situations.
  • SSL incorporated, with auto-detection.
  • Portable (Already confirmed NetBSD, Solaris, Linux, OsX and Win32)
  • Single process / thread library. [2]
  • Numerous Sample programs included.
  • Support both in-library sleep/CPU-release, or in Application.
  • Full buffering control, and flow control.
  • CPS (KB/s) rate limits on _any_ I/O type. (Socket, File & Pipe)
  • Adoptable foreign file-descriptors API. [3]
  • Clean API with documentation, although man-page comming.
  • Direct, or event driven, failure modes supported.
  • Exclusive File I/O locking optional, across all platforms.
  • Internal compression optional.
  • Very simple to use for line-by-line protocols, or binary chunk data transfers.
  • Full UDP support [4]
  • Encrypted File IO support (blowfish, dependent on SSL)
  • contrib/ sources include Directory listings library for all platforms.
  • Python support! Using SWIG [5] there now is an easy way to do async SSL in Python

[1] Win32 naturally does not have true fork() but this is simulated for you by LiON.
[2] Win32 version require a thread per file to support all version of Windows.
[3] You can adopt in a file-descriptor opened elsewhere, like that of stdin or stdout.
[4] Includes optional advanced mode where you can request a new handle per remote IP:port pair. Useful for Games and applications creating an object per unique UDP connection.
[5] There is no reason why the other languages supported by SWIG wouldn't also work.

Sources are in CVS as "lion", so "cvs co lion" should do it. Same details as the Unix front page to gain anonymous CVS.

Apps already based on this is "ssl-lbnc".
A third party is using LION to start work on a ncurses ftp client.