radlib
radlib 2.2.5
radlib is a C language library developed to abstract details of interprocess communications. more>>
It encourages developers (whether expert or novice) to use a proven paradigm of event-driven, asynchronous design.
By abstracting interprocess messaging, events, timers, and any I/O device that can be represented as a file descriptor, radlib simplifies the implementation of multi-purpose processes, as well as multi-process applications.
radlib greatly improves typical process performance through the use of shared memory buffers to avoid costly "malloc" and "free" library calls.
These buffers are also used for interprocess messages. radlib also utilizes shared memory constructs to provide global message queue management and global "Queue Groups" for increased interprocess communications flexibility.
All shared resources are semaphore protected to avoid issues with concurrent access.
In short, radlib is a sincere attempt to provide real-time OS capability on a non-real-time OS. It has been successfully deployed on linux, MacOSX and FreeBSD but there is no reason it would not build and run on any flavor of unix supporting System V IPC.
Specifically, radlib provides fast system buffers, a simple config file utility, events, doubly-linked lists, process logging through syslog, message queues, semaphores, shared memory utilities, timers, stacks, state machine utilities, a process framework, a process management utility to start/stop groups of processes, optional MySQL or PostgreSQL database API, straightforward TCP/streams socket API, and other assorted system utilities.
Enhancements:
- hanged some database field processing to comply with the postgresql changes made in version 8.
Rapid Application Development Library 2.8.3
Rapid Application Development Library 2.8.3 is yet another excellent utility you should not miss. It is actually a C language library developed to abstract details of interprocess communications and more>>
Rapid Application Development Library 2.8.3 is yet another excellent utility you should not miss. It is actually a C language library developed to abstract details of interprocess communications and common linux/unix system facilities so that application developers can concentrate on application solutions. It encourages developers (whether expert or novice) to use a proven paradigm of event-driven, asynchronous design. By abstracting interprocess messaging, events, timers, and any I/O device that can be represented as a file descriptor, radlib simplifies the implementation of multi-purpose processes, as well as multi-process applications.
Radlib greatly improves typical process performance through the use of shared memory buffers to avoid costly "malloc" and "free" library calls. These buffers are used for interprocess messages. radlib utilizes shared memory constructs to provide global message queue management and global "Queue Groups" for increased interprocess communications flexibility. All shared resources are semaphore protected to avoid issues with concurrent access.
In short, radlib is a sincere attempt to provide real-time OS capability on a non-real-time OS. It has been successfully deployed on linux, MacOSX and FreeBSD but there is no reason it would not build and run on any flavor of unix supporting System V IPC.
Specifically, radlib provides fast system buffers, a simple config file utility, events, doubly-linked lists, process logging through syslog, message queues, semaphores, shared memory utilities, timers, stacks, state machine utilities, a process framework, a process management utility to start/stop groups of processes, optional MySQL or PostgreSQL database API, a straightforward TCP/streams socket API, a UDP/datagram unicast/multicast/broadcast API, CRC and SHA utility APIs, and other assorted system utilities.
An example application template is provided in the distribution (see the "Example Application Template" link in the left column of this page). The template example serves two purposes: it demonstrates, through source code inspection, how a well constructed radlib process is implemented and it provides an example build environment with the capability for someone new to radlib to build and execute an example application "right out of the box".
Proprietary forms of radlib have been used in several mission-critical commercial applications with excellent results. It is light yet very powerful and efficient in real time. radlib is BSD-licensed (free to use in binary or source forms) and distributed as source to be built on the target platform. Build instructions are included in the distribution. See the file "COPYING" in the distribution for details concerning open source software and the BSD license.
Major Features:
- Includes SQLite3 support.
- Can be used on both 32 and 64 bit platforms with no special configuration required.
- Supports native development on the LinkSys NSLU2 as well as binary package support for radlib applications. See the README file for details.
- Includes a new message router daemon and API. This new paradigm simplifies interprocess communications substantially. See radmsgRouter.h for details.
- Includes a new example template which demonstrates multiprocess applications and the new message router API. See template/README in the distro for details.
- Built with libtool which generates shared libraries as well as static if supported on the build platform. Header files are now C++ friendly and radlib can be linked with C++ applications. LIST and LIST_ID were changed to RADLIST and RADLIST_ID to avoid problems with newer versions of MySQL.
- Includes SHA-1, SHA-256 and CRC16/32 utilities. See the header files "radsha.h" and "radcrc.h" for details.
- Page: 1 of 1
- 1