Skip to content
/ magi Public

Simple ANSI C library implementing CGI

License

Notifications You must be signed in to change notification settings

aversey/magi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

    Description
Magi Library (libmagi) implements Common Gateway Interface.

    Overview
Magi is free and open-source software: legal info is in the 'LICENSE' file.
It is written in ANSI C without dependencies except for C standard library.
All source and inner header files are in the 'src' directory.
The 'include' directory is intended to be used in your include environment.
Headers in it contain library interface and its description in comments.
They are in subdirectory 'include/magi', due to their short and simple names.
If you are not about choosing which header to include and just want everything
to be included you can '#include <magi.h>'.
For detailed documentation look into 'man' directory.

    Compiling
Compilation and its options are described in the Makefile.
Running make produces 'build/libmagi.a', which is precompiled library itself,
ready to be statically linked into your project.  In order to install magi
you can run 'make install', and to uninstall run 'make uninstall'.
Since default include (/usr/include), lib (/usr/lib) and man (/usr/share/man)
directories can be not valid for you, don't forget to specify them in either
environment variables or the Makefile itself.

    Examples
Running 'make examples' produces executable for each example in 'examples'.
Descriptions and details are in corresponding source files.

    Usage
magi_request handles incoming request, general workflow is to:
1. prepare request for analysis, setup defaults via magi_request_init;
2. analyse CGI request via magi_parse;
4. do your work, and response request:
   1. specify and send headers (magi_response_...),
   2. response body (through stdout);
5. finally, free memory via magi_request_free.

    Motivation
Web must be fun.