malloc implementation
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 1823
Bellagio OpenMAX IL Implementation 0.3.1
Bellagio is a sample implementation of OpenMAX IL for Linux. more>>
Bellagio is a sample implementation of OpenMAX IL for Linux.
It enables software developers and ISVs to familiarize themselves with the OpenMAX IL API and to develop their own OpenMAX multimedia and streaming media components for mobile devices, including codecs, video I/O, and audio mixers.
Included sample components comply with the OpenMAX base and interoperability profiles and can be tunnelled together.
Main features:
- a shared library with the IL core and a "reference" OpenMAX component
- a number of OpenMAX components which pass Khronos conformance tests
- a set of GStreamer plugins that use the IL API (not available yet)
Enhancements:
New video components:
- ffmpeg based MPEG4/H.264 decoder
- color converter component YUV -> RGB
- video renderer based on devFB
New audio component:
- audio file reader based on ffmpeg audio format
- volume component
Fixed known bugs:
- FFMPEG audio decoder now works on FC6 and other distributions with the latest ffmpeg release (0.4.9-0.35.20070204)
Known pending bugs:
- some ogg streams can not be decoded properly
- the tunneling between file reader, mp3 dec based on ffmpeg - alsa sink ends in a deadlock sometimes.
- This behavior has been detected some times using FC6 and UBUNTU, not with the FC4
Full list of components:
Audio:
- ogg decoder based on libvorbis (stand alone components, and multiple roles component)
- mp3 decoder based on mad decoder
- mp3 decoder based on ffmpeg (multiple roles component)
- volume component
- alsa audio sink
- ffmpeg audio file reader (to be used with mp3 ffmpeg decoder)
Video:
- MPEG4 decoder based on ffmpeg (multiple roles component)
- H.264 decoder based on ffmpeg (multiple roles component)
- Color converter based on ffmpeg
- video renderer based on devFB
- Major additions to the 0.2
- New port classes
The components are:
- multiple formats audio decoder component that supports mp3 and ogg audio formats
- alsa sink component
- all the other components are NOT compatible with the new architecture.
- They have been removed and will be ported to the new architecture in a further delivery
<<lessIt enables software developers and ISVs to familiarize themselves with the OpenMAX IL API and to develop their own OpenMAX multimedia and streaming media components for mobile devices, including codecs, video I/O, and audio mixers.
Included sample components comply with the OpenMAX base and interoperability profiles and can be tunnelled together.
Main features:
- a shared library with the IL core and a "reference" OpenMAX component
- a number of OpenMAX components which pass Khronos conformance tests
- a set of GStreamer plugins that use the IL API (not available yet)
Enhancements:
New video components:
- ffmpeg based MPEG4/H.264 decoder
- color converter component YUV -> RGB
- video renderer based on devFB
New audio component:
- audio file reader based on ffmpeg audio format
- volume component
Fixed known bugs:
- FFMPEG audio decoder now works on FC6 and other distributions with the latest ffmpeg release (0.4.9-0.35.20070204)
Known pending bugs:
- some ogg streams can not be decoded properly
- the tunneling between file reader, mp3 dec based on ffmpeg - alsa sink ends in a deadlock sometimes.
- This behavior has been detected some times using FC6 and UBUNTU, not with the FC4
Full list of components:
Audio:
- ogg decoder based on libvorbis (stand alone components, and multiple roles component)
- mp3 decoder based on mad decoder
- mp3 decoder based on ffmpeg (multiple roles component)
- volume component
- alsa audio sink
- ffmpeg audio file reader (to be used with mp3 ffmpeg decoder)
Video:
- MPEG4 decoder based on ffmpeg (multiple roles component)
- H.264 decoder based on ffmpeg (multiple roles component)
- Color converter based on ffmpeg
- video renderer based on devFB
- Major additions to the 0.2
- New port classes
The components are:
- multiple formats audio decoder component that supports mp3 and ogg audio formats
- alsa sink component
- all the other components are NOT compatible with the new architecture.
- They have been removed and will be ported to the new architecture in a further delivery
Download (0.49MB)
Added: 2007-06-06 License: GPL (GNU General Public License) Price:
895 downloads
Procinfo NG 2.0.113 (C++ Implementation)
Procinfo NG is a ground-up rewrite of the procinfo program. more>>
Procinfo NG is a ground-up rewrite of the procinfo program. Procinfo NGs goal is to make the code more readable (and reusable) and to restore broken functionality of the original program.
The original program was written for Linux 1.0, and updated through 2.2. This version is for 2.6.
Enhancements:
- Updates were made to match what some Linux distributions have done to procinfo-18.
- Support for MSI and XEN interrupts were added.
- Some non-x86 architectures are handled.
- Assorted bugs and 80-character console nonsense were fixed.
<<lessThe original program was written for Linux 1.0, and updated through 2.2. This version is for 2.6.
Enhancements:
- Updates were made to match what some Linux distributions have done to procinfo-18.
- Support for MSI and XEN interrupts were added.
- Some non-x86 architectures are handled.
- Assorted bugs and 80-character console nonsense were fixed.
Download (0.041MB)
Added: 2007-08-11 License: GPL (GNU General Public License) Price:
805 downloads
Other version of Procinfo NG
License:GPL (GNU General Public License)
Fast MD5 Implementation in Java 2.6.1
Fast MD5 Implementation in Java is a heavily optimized implementation of the MD5 hashing algorithm written in Java. more>>
Fast MD5 Implementation in Java is a heavily optimized implementation of the MD5 hashing algorithm written in Java.
Fast MD5 Implementation in Java includes an optional native method for even greater speed improvements.
How Fast Is It?
Short answer:Much faster than any other Java implementation that I have tested and (surprisingly) even faster than the native, non-Java MD5 implementation on some systems.
Long answer:First of all, it is important to note that the term "fast" is used here in relative terms. The implementation of the MD5 message digest algorithm available on this page is written in Java and is fast compared with other implementations written in Java, both because it is heavily optimized by itself and because there is an optional native method that makes it even faster when the platform supports it. How it compares to a sensible implementation written in a language, such as C, that is compiled directly to machine code, is heavily dependent upon how good of a job the JIT compiler in your JVM does in compiling the code or whether you are able to use the optional native method.
Enhancements:
- Martin West contributed a bug fix and some code refactoring to make all targets work out of the box in the Ant build file. Previously, the "dist" target did not work if the "docs" directory was not present.
<<lessFast MD5 Implementation in Java includes an optional native method for even greater speed improvements.
How Fast Is It?
Short answer:Much faster than any other Java implementation that I have tested and (surprisingly) even faster than the native, non-Java MD5 implementation on some systems.
Long answer:First of all, it is important to note that the term "fast" is used here in relative terms. The implementation of the MD5 message digest algorithm available on this page is written in Java and is fast compared with other implementations written in Java, both because it is heavily optimized by itself and because there is an optional native method that makes it even faster when the platform supports it. How it compares to a sensible implementation written in a language, such as C, that is compiled directly to machine code, is heavily dependent upon how good of a job the JIT compiler in your JVM does in compiling the code or whether you are able to use the optional native method.
Enhancements:
- Martin West contributed a bug fix and some code refactoring to make all targets work out of the box in the Ant build file. Previously, the "dist" target did not work if the "docs" directory was not present.
Download (0.073MB)
Added: 2006-03-06 License: LGPL (GNU Lesser General Public License) Price:
1350 downloads
Suffix tree implementation library 1.2
Suffix tree implementation library is a C library, an implementation of the suffix trees algorithm to store/retrieve key/data pa more>>
Suffix tree implementation library is a C library, an implementation of the suffix trees algorithm to store/retrieve key/data pairs.
The main advantages are a linear indexing time, little memory usage, and very fast retrieving.
It has been developped on FreeBSD/gcc but should be fairly portable.
The source code "testsfx.c" show an example of how to use the library both for inserting, retrieving, and deleting data. There arent many functions and comments should be enough to give you an idea of how to use the library. (read the header of the source file)
You should edit sfxdisk.h to suit your needs: you can change the alphabet size and the offset type. It should be OK to use "long long" 64 bits ints instead of long, in fact I tested it succesfully but havent gone to the point of filling more than 2 GB of data (needless to say you need a 64 bits filesystem).
Two "tools" come with the library (new with version 1.2): dumpsfx and loadsfx. dumpsfx is used to dump the database: dumpsfx [-s separator] if you want to output the result as readable text or dumpsfx < file.sfx > -h to output it for reloading with loadsfx.
dumpsfx outputs on stdout and loadsfx reads from stdin. loadsfx < suffix tree file to create > < dumped_file
Enhancements:
- removed an useless offset incrementation in STwritenode
<<lessThe main advantages are a linear indexing time, little memory usage, and very fast retrieving.
It has been developped on FreeBSD/gcc but should be fairly portable.
The source code "testsfx.c" show an example of how to use the library both for inserting, retrieving, and deleting data. There arent many functions and comments should be enough to give you an idea of how to use the library. (read the header of the source file)
You should edit sfxdisk.h to suit your needs: you can change the alphabet size and the offset type. It should be OK to use "long long" 64 bits ints instead of long, in fact I tested it succesfully but havent gone to the point of filling more than 2 GB of data (needless to say you need a 64 bits filesystem).
Two "tools" come with the library (new with version 1.2): dumpsfx and loadsfx. dumpsfx is used to dump the database: dumpsfx [-s separator] if you want to output the result as readable text or dumpsfx < file.sfx > -h to output it for reloading with loadsfx.
dumpsfx outputs on stdout and loadsfx reads from stdin. loadsfx < suffix tree file to create > < dumped_file
Enhancements:
- removed an useless offset incrementation in STwritenode
Download (0.015MB)
Added: 2006-08-07 License: GPL (GNU General Public License) Price:
1189 downloads
Objective Modula-2 1.00 (Reference Implementation)
Objective Modula-2 programming language is a hybrid between Smalltalk and Modula-2. more>>
Objective Modula-2 programming language is a hybrid between Smalltalk and Modula-2 based on the object model and runtime of Objective-C.
The design is an example how native Cocoa/GNUstep support can be added to static imperative programming languages without implementing a bridge.
Objective Modula-2s scope encompasses the design of the Objective Modula-2 programming language and the implementation of a compiler to implement it. The initial compiler will generate Objective-C source code.
Enhancements:
- This code is used to verify ideas and concepts which come up in the course of defining the language.
- It is in an early stage, incomplete and subject to frequent changes.
<<lessThe design is an example how native Cocoa/GNUstep support can be added to static imperative programming languages without implementing a bridge.
Objective Modula-2s scope encompasses the design of the Objective Modula-2 programming language and the implementation of a compiler to implement it. The initial compiler will generate Objective-C source code.
Enhancements:
- This code is used to verify ideas and concepts which come up in the course of defining the language.
- It is in an early stage, incomplete and subject to frequent changes.
Download (0.019MB)
Added: 2007-07-21 License: (FDL) GNU Free Documentation License Price:
825 downloads
smalloc 1.0
smalloc (Static memory buffer malloc) is an ideal memory manager for Realtime Linux Kernel modules. more>>
smalloc short from Static memory buffer malloc, is an ideal memory manager for Realtime Linux Kernel modules that cant use dynamic memory offered by kmalloc because of the non-realtime nature of kmalloc.
Like malloc(), smalloc() doles out memory to client code. Unlike malloc, however, smalloc takes a static memory buffer (as an initialization parameter). It is this buffer that smalloc manages when doling out memory to client code.
This design makes smalloc ideal for use inside a Realtime Linux kernel module. It also makes it much easire to port userspace code that relies on malloc() in C or operator new() in C++ for memory management to a realtime kernel module.
For example:
(the below is linux kernel code)
< code >
#include "smalloc.h"
#include < linux/slab.h >
#define MEMPOOLSZ (1024*1024*1024)
char *buf;
...
buf = kmalloc(MEMPOOLSZ, GFP_KERNEL); /* 1 megabyte buffer in kernel
module.. */
smalloc_set_memory_pool(buf, sizeof(buf));
...
MyStruct *s;
s = smalloc(sizeof(MyStruct)); /* example of code that uses this
static memory buffer */
< /code >
The above example is a typical usage pattern of smalloc.
<<lessLike malloc(), smalloc() doles out memory to client code. Unlike malloc, however, smalloc takes a static memory buffer (as an initialization parameter). It is this buffer that smalloc manages when doling out memory to client code.
This design makes smalloc ideal for use inside a Realtime Linux kernel module. It also makes it much easire to port userspace code that relies on malloc() in C or operator new() in C++ for memory management to a realtime kernel module.
For example:
(the below is linux kernel code)
< code >
#include "smalloc.h"
#include < linux/slab.h >
#define MEMPOOLSZ (1024*1024*1024)
char *buf;
...
buf = kmalloc(MEMPOOLSZ, GFP_KERNEL); /* 1 megabyte buffer in kernel
module.. */
smalloc_set_memory_pool(buf, sizeof(buf));
...
MyStruct *s;
s = smalloc(sizeof(MyStruct)); /* example of code that uses this
static memory buffer */
< /code >
The above example is a typical usage pattern of smalloc.
Download (0.007MB)
Added: 2006-03-22 License: Public Domain Price:
1314 downloads
nedmalloc 1.04 Alpha
nedmalloc an alternative malloc implementation written in C for multiple threads without lock contention. more>>
nedmalloc an alternative malloc implementation written in C for multiple threads without lock contention based on dlmalloc v2.8.3.
It is more or less a newer implementation of ptmalloc2, the standard allocator in Linux (which is based on dlmalloc v2.7.0) but also contains a per-thread cache for maximum CPU scalability. It comes under the Boost software license which permits commercial usage.
It is more than 125 times faster than the standard Win32 memory allocator, 4-10 times faster than the standard FreeBSD memory allocator and up to twice as fast as ptmalloc2, the standard Linux memory allocator. It can sustain between 7.3m and 8.2m malloc & free pair operations per second on a 2200Mhz AMD Athlon64 machine.
It scales with extra CPUs far better than either the standard Win32 memory allocator or ptmalloc2 and can cause significantly less memory bloating than ptmalloc2. nedmalloc project avoids processor serialisation (locking) entirely when the requested memory size is in the thread cache.
Enhancements:
- This is an interim release from SVN as there have been many critical bugs fixed as nedmalloc was deployed on very high end architectures.
- Further speed ups and scalability improvements also made.
- However, this release is marked "alpha" since the usual thorough release testing has not been performed.
<<lessIt is more or less a newer implementation of ptmalloc2, the standard allocator in Linux (which is based on dlmalloc v2.7.0) but also contains a per-thread cache for maximum CPU scalability. It comes under the Boost software license which permits commercial usage.
It is more than 125 times faster than the standard Win32 memory allocator, 4-10 times faster than the standard FreeBSD memory allocator and up to twice as fast as ptmalloc2, the standard Linux memory allocator. It can sustain between 7.3m and 8.2m malloc & free pair operations per second on a 2200Mhz AMD Athlon64 machine.
It scales with extra CPUs far better than either the standard Win32 memory allocator or ptmalloc2 and can cause significantly less memory bloating than ptmalloc2. nedmalloc project avoids processor serialisation (locking) entirely when the requested memory size is in the thread cache.
Enhancements:
- This is an interim release from SVN as there have been many critical bugs fixed as nedmalloc was deployed on very high end architectures.
- Further speed ups and scalability improvements also made.
- However, this release is marked "alpha" since the usual thorough release testing has not been performed.
Download (0.069MB)
Added: 2006-10-08 License: Open Software License Price:
1112 downloads
Download (0.004MB)
Added: 2007-06-01 License: BSD License Price:
881 downloads
cid-compiler 0.1
cid-compiler is a language tool to easily create C code with object oriented features. more>>
cid-compiler is a language tool to easily create C code with object oriented features. Its compiler generates header (.h) files and implementations (.c) from a specification file (.i).
The generated C code consists of a struct, a opaque pointer to it (in the header file) and rewritten functions. The defined functions will get prefixed with the class name, they will also get a new first argument that is a pointer to the newly defined struct.
Functions that do not have a return value are considered constructors and will not get a new 1st argument but will automatically get a return value of pointer to the struct. The place between @class "name" and @attributes is e. g. for include statements and will make it into the header file.
To ease renaming the class, you can use the define CLASS, which will always be a define to a pointer of the new struct type.
Interface example
@class cstring
#include < stdio.h >
#include < string.h >
@attributes
char *c;
@methods
new(char *n) {
CLASS i = NEWCLASS;
i->c = strdup(n);
return i;
}
int length() {
return strlen(this->c);
}
@end
will yield a cstring.h file:
#ifndef _CSTRING_H_
#define _CSTRING_H_
#include < stdio.h >
#include < string.h >
typedef struct cstring *cstring;
cstring cstring_new(char *n);
int cstring_length(cstring this);
#endif
and a cstring.c file:
#include "cstring.h"
#define CLASS cstring
#define NEWCLASS malloc(sizeof(struct cstring));
#define NEWCLASS_M malloc(sizeof(struct cstring));
#define NEWCLASS_C calloc(1,sizeof(struct cstring));
struct cstring {
char *c;
};
cstring cstring_new(char *n) {
CLASS i = NEWCLASS;
i->c = strdup(n);
return i;
}
int cstring_length(cstring this) {
return strlen(this->c);
}
Issues:
The current compiler (v0.1) will reject quite some valid C code. Also the given error is not very helpful;
<<lessThe generated C code consists of a struct, a opaque pointer to it (in the header file) and rewritten functions. The defined functions will get prefixed with the class name, they will also get a new first argument that is a pointer to the newly defined struct.
Functions that do not have a return value are considered constructors and will not get a new 1st argument but will automatically get a return value of pointer to the struct. The place between @class "name" and @attributes is e. g. for include statements and will make it into the header file.
To ease renaming the class, you can use the define CLASS, which will always be a define to a pointer of the new struct type.
Interface example
@class cstring
#include < stdio.h >
#include < string.h >
@attributes
char *c;
@methods
new(char *n) {
CLASS i = NEWCLASS;
i->c = strdup(n);
return i;
}
int length() {
return strlen(this->c);
}
@end
will yield a cstring.h file:
#ifndef _CSTRING_H_
#define _CSTRING_H_
#include < stdio.h >
#include < string.h >
typedef struct cstring *cstring;
cstring cstring_new(char *n);
int cstring_length(cstring this);
#endif
and a cstring.c file:
#include "cstring.h"
#define CLASS cstring
#define NEWCLASS malloc(sizeof(struct cstring));
#define NEWCLASS_M malloc(sizeof(struct cstring));
#define NEWCLASS_C calloc(1,sizeof(struct cstring));
struct cstring {
char *c;
};
cstring cstring_new(char *n) {
CLASS i = NEWCLASS;
i->c = strdup(n);
return i;
}
int cstring_length(cstring this) {
return strlen(this->c);
}
Issues:
The current compiler (v0.1) will reject quite some valid C code. Also the given error is not very helpful;
Download (0.098MB)
Added: 2006-03-07 License: BSD License Price:
1327 downloads
Smalltalk YX 0.1.4
Smalltalk YX is an open source Smalltalk-80 implementation. more>>
Smalltalk YX software is an open source Smalltalk-80 implementation.
Main features:
- Readable code
- Flexibility trough easy creation of plugins
- Portable to most important platforms
- Optimized
- Modern
- Embeddable in C applications
- Easy to use, powerful and well-structured environment
- Small
<<lessMain features:
- Readable code
- Flexibility trough easy creation of plugins
- Portable to most important platforms
- Optimized
- Modern
- Embeddable in C applications
- Easy to use, powerful and well-structured environment
- Small
Download (0.077MB)
Added: 2007-08-01 License: MIT/X Consortium License Price:
817 downloads
libiconv 1.11
libiconv is a character set conversion library, portable iconv implementation. more>>
GNU libiconv provides an iconv() implementation for use on systems which dont have one or whose implementation cannot convert from/to Unicode.
libiconv supports all the important encodings in use today.
Enhancements:
- The iconv program now supports substitutions for unconvertible characters.
- The encodings BIG5-2003 and AtariST have been added.
- Mappings of private area characters have been improved.
<<lesslibiconv supports all the important encodings in use today.
Enhancements:
- The iconv program now supports substitutions for unconvertible characters.
- The encodings BIG5-2003 and AtariST have been added.
- Mappings of private area characters have been improved.
Download (3.8MB)
Added: 2006-12-05 License: LGPL (GNU Lesser General Public License) Price:
1069 downloads
javaLogic 0.1
Javalogic is a free library that leads to the creation of a visual implementation of the application logics. more>>
Javalogic is a free library that leads to the creation of a visual implementation of the application logics.
This will let the software developer not to worry about changing code againts any rule modification.
The software developer can delegate this to his customer, supplying him with a SIMPLE construction window.
javaLogic is free software released under the LGPL.
<<lessThis will let the software developer not to worry about changing code againts any rule modification.
The software developer can delegate this to his customer, supplying him with a SIMPLE construction window.
javaLogic is free software released under the LGPL.
Download (1.9MB)
Added: 2006-01-10 License: LGPL (GNU Lesser General Public License) Price:
1382 downloads
libarena 0.3.4
libarena is a custom memory allocator interface and implementation. more>>
libarena library is a custom memory allocator interface and implementation. Three allocators are provided: flat "LIFO" arena allocator, object pool allocator and a malloc(3) wrapper. These can be used directly, or through their exported prototype interfaces.
libarena is meant to provide a baseline interface so allocators can be stacked, and to provide a well defined interface for libraries and applications. It is not meant to restrict or confine what custom allocators can actually accomplish. For instance, the included pool and arena allocators include a suite of string utilities which arent available in the generic exportable interface. However, they are built upon the generic interface (see util.h).
Almost no malloc(3) library "replacements" support a context pointer argument. Theyre useless for many or most of the tasks where the ability to specify an alternate malloc(3) could actually be useful, e.g. one shot dealloction of a task structure and all associated allocations. For network daemons especially this feature is useful; all allocations for a particular session can be freed simply by closing the lowest-level allocator object.
The arena allocator behaves similarly to GNU obstacks. If allocations are freed in reverse order than the underlying buffers will be freed accordingly; out-of-order deallocations will lead to fragmentation. The arena allocator also supports position marking. The state at any given instance can be stored and the allocator later reset to that state. All allocations which occured after, in time, the saved state will behave as-if they were explicitly deallocated.
The pool allocator keeps a pool of sets of fixed sized buffers. Each buffer size can be arbitrary. Allocations which cannot be met from the existing buckets will result in the creation of a new bucket. Memory returned to the pool will be reused. Currently the pool will never shrink, only grow.
Upon closing of the arena or pool allocator objects all memory used will be released back to their underlying allocator (either the one passed on instantiation, or by default `ARENA_STDLIB, the standard library wrapper.
Enhancements:
- The makefiles are no longer recursive, so this should build and install using either GNU Make or BSD pmake.
<<lesslibarena is meant to provide a baseline interface so allocators can be stacked, and to provide a well defined interface for libraries and applications. It is not meant to restrict or confine what custom allocators can actually accomplish. For instance, the included pool and arena allocators include a suite of string utilities which arent available in the generic exportable interface. However, they are built upon the generic interface (see util.h).
Almost no malloc(3) library "replacements" support a context pointer argument. Theyre useless for many or most of the tasks where the ability to specify an alternate malloc(3) could actually be useful, e.g. one shot dealloction of a task structure and all associated allocations. For network daemons especially this feature is useful; all allocations for a particular session can be freed simply by closing the lowest-level allocator object.
The arena allocator behaves similarly to GNU obstacks. If allocations are freed in reverse order than the underlying buffers will be freed accordingly; out-of-order deallocations will lead to fragmentation. The arena allocator also supports position marking. The state at any given instance can be stored and the allocator later reset to that state. All allocations which occured after, in time, the saved state will behave as-if they were explicitly deallocated.
The pool allocator keeps a pool of sets of fixed sized buffers. Each buffer size can be arbitrary. Allocations which cannot be met from the existing buckets will result in the creation of a new bucket. Memory returned to the pool will be reused. Currently the pool will never shrink, only grow.
Upon closing of the arena or pool allocator objects all memory used will be released back to their underlying allocator (either the one passed on instantiation, or by default `ARENA_STDLIB, the standard library wrapper.
Enhancements:
- The makefiles are no longer recursive, so this should build and install using either GNU Make or BSD pmake.
Download (0.020MB)
Added: 2007-06-06 License: MIT/X Consortium License Price:
872 downloads
XML::Atom 0.19
XML::Atom is an Atom feed and API implementation. more>>
XML::Atom is an Atom feed and API implementation.
SYNOPSIS
use XML::Atom;
Atom is a syndication, API, and archiving format for weblogs and other data. XML::Atom implements the feed format as well as a client for the API.
<<lessSYNOPSIS
use XML::Atom;
Atom is a syndication, API, and archiving format for weblogs and other data. XML::Atom implements the feed format as well as a client for the API.
Download (0.058MB)
Added: 2006-06-30 License: Perl Artistic License Price:
1211 downloads
Rapid Application Development Library 2.7.0
radlib is a C language library developed to abstract details of interprocess communications and common linux/unix systems. more>>
radlib is 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 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.
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.
radlib is currently used as the foundation of my unix/linux-based weather application, wview, which interfaces with the Davis Vantage Pro console to archive weather data in real-time and periodically (every 60 seconds) generate weather images and html files suitable for use on web sites (see my weather page). It uses multiple radlib processes which illustrate radlibs interprocess communications flexibility. Feel free to download the wview source as another example of radlib implementation.
Enhancements:
- Updated to work properly on both 32- and 64-bit architectures.
- No special configuration is required.
- A few API calls have been changed ("int" arguments became "long"), but only a few.
- This release increases the default system buffer numbers and adds an additional size of 8192 to better support 64-bit platforms.
<<lessradlib 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.
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.
radlib is currently used as the foundation of my unix/linux-based weather application, wview, which interfaces with the Davis Vantage Pro console to archive weather data in real-time and periodically (every 60 seconds) generate weather images and html files suitable for use on web sites (see my weather page). It uses multiple radlib processes which illustrate radlibs interprocess communications flexibility. Feel free to download the wview source as another example of radlib implementation.
Enhancements:
- Updated to work properly on both 32- and 64-bit architectures.
- No special configuration is required.
- A few API calls have been changed ("int" arguments became "long"), but only a few.
- This release increases the default system buffer numbers and adds an additional size of 8192 to better support 64-bit platforms.
Download (0.42MB)
Added: 2007-03-31 License: BSD License Price:
943 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above malloc implementation search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed