Home

Awesome

#libngxcore

libngxcore is the library built from nginx core APIs.

Why is libngxcore needed?

nginx has powerful core APIs. but they are not able to used outside nginx. If we write a nginx module, we must build a nginx module with nginx. This way is a pain when we try as quick. libngxcore simplify to try nginx core APIs.

For example, Let's try the nginx string API with libngxcore.

#include <stdio.h>

#include <nginx.h>
#include <ngx_core.h>
#include <ngx_string.h>

int main (int argc, char *argv[]) {
    ngx_str_t s = ngx_string("bokko");

    printf("s            :%s\n",  s.data);             // bokko
    printf("ngx_strlen(s):%zd\n", ngx_strlen(s.data)); // 5

    return 0;
}

Use examples as a reference about Building.

Build libngxcore.a

$ make

Build examples

$ cd examples && scons

Execute examples in Mac OS X

When libngxcore is build in Mac OS X, libngxcore.dylib as not a static library but a shared library is generated. So set DYLD_LIBRARY_PATH when executing libngxcore examples.

$ cd examples
$ ./string
dyld: Library not loaded: libngxcore.dylib
  Referenced from: /Users/bokko/workspace/libngxcore/examples/./string
  Reason: image not found
zsh: trace trap  ./string
$ DYLD_LIBRARY_PATH=../ ./string
s            :bokko
ngx_strlen(s):5
$