From c299128eaefc813d1a6acdca8a9c724145686177 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Mon, 3 Feb 2020 19:43:53 +0300 Subject: [magi] Readme added + fixes. --- readme | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 readme (limited to 'readme') diff --git a/readme b/readme new file mode 100644 index 0000000..8cc3b8b --- /dev/null +++ b/readme @@ -0,0 +1,42 @@ + Description +Magi Library (libmagi) implements Gateway Interfaces, namely CGI and FastCGI. + + Overview +Magi is free and open-source software: legal info is in the 'license' file. +It is written in ANSI C, without any dependecies, except for C standard +library. All source and header files are located in the 'src' directory. +Files with 'inner' part in their names are not intended for external use. +Since filenames in the project are short and simple consider placing +header files in subdirectory 'magi' of your include. + + Compiling +Compilation and its options are described in the 'Makefile'. +Running 'make' produces 'libmagi.a' file, which is precompiled library itself, +ready to be statically linked into your project. + + Examples +Compilation and its options are described in the local 'examples/Makefile'. +Running 'make' in the 'examples' directory produces 'append', 'cookie', +'upload', and 'echo' CGI executables. Descriptions and details are in +corresponding source files. + + Usage +Magi main purpose is to analyse request and provide it in 'struct magi_request' +variable. It is described in 'src/request.h'; to setup defaults before actual +processing run 'magi_request_setup'. Next step is to analyse post-unrelated +part of request via 'magi_request_cgi'. Since post part can be realy big, +it is generally useful to constrain its analysis biased on the rest of request. +Post part analyse is done via 'magi_request_resume_cgi'. You can destroy +request structure via 'magi_request_destroy'. + +Also magi provide output capabilities via 'struct magi_response'. +Similary to request, 'magi_response_setup' is initialisation of response with +defaults. Content type need to be specified for response, to set it run +'magi_response_content_type'. You can set cookie with 'magi_response_cookie', +as well as discard them with 'magi_response_cookie_discard'. You can set HTTP +headers with 'magi_response_http'. For filling response body use +'magi_response_add' and 'magi_response_add_format'. To send response call +'magi_response_cgi'. Desctruction is provided in 'magi_response_destroy'. + + Motivation +Web must be fun. -- cgit v1.2.3