GithubHelp home page GithubHelp logo

libcprops's Introduction

cprops - c prototyping tools
============================

The c prototyping tools library consists of implementations for several widely 
used data structures and patterns, rudimentary tcp / httpd functionality and
a database abstraction layer. Object oriented development environments usually 
feature readymade implementations of such tools. 

Coding in c often allows better performance and closer control over application
behavior, which can be crucial in real life situations. libcprops provides 
generic tools for application development in plain c covering basic data 
structure implementations, persistence, threading and tcp communication. 

	data structures
	---------------
	o	linked list
	o	heap
	o	priority_list
	o	hashtable
	o	hashlist
	o	sorted hash
	o	AVL tree
	o	red-black tree
	o	splay tree
	o	N-ary tree
	o	PATRICIA tree - a character trie
	o	multimap - a data structure to support multiple indices
	
	application level
	-----------------
	o	cp_mempool, cp_shared_mempool - memory pool
	o	cp_thread - thread pool
	o	cp_client, cp_socket - tcp sockets
	o	cp_httpclient, cp_httpsocket - an HTTP socket api
	o	cp_dbms - a database abstraction layer


For your entertainment, the distribution comes with cpsvc, a web server based
on the cprops api and featuring support for CGI and cpsp, a c based page 
scripting environment. For more on cpsvc and cpsp see README under the svc/ 
directory.

Dependencies
============

 * libcprops relies on the POSIX threads api for synchronization features.

 * ssl features are implemented with OpenSSL. 

 * the build process uses libtool (see 
   http://www.gnu.org/software/libtool/libtool.html)

 * cp_dbms postgres support is based on libpq

 * cp_dbms mysql support is based on libmysqlclient
 
Compiling
=========
Once you've installed the library (see INSTALL), you should be able to compile
and link against either libcprops.a or libcprops.so, depending on the 
configuration settings you chose. Here's how you might compile the included
testhttpsrv.c program on linux:

$ gcc -D_REENTRANT -D_XOPEN_SOURCE=500 -c testhttpsrv.c
$ gcc -o testhttpsrv testhttpsrv.o -lcprops -lpthread -lssl

on Solaris, add -lsocket to the link command.

Documentation
=============
In the works. Man pages for data structures as well as socket, thread pool and 
http socket apis are available under man3 directory. To see an overview of the 
library before installing try 

$ man -M . cprops


Thank you for choosing libcprops. If you find a bug, please email 
[email protected].

libcprops's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.