123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- $Id: README,v 1.3 2007/11/21 00:09:10 adamcain Exp $
- nrappkit 1.0b2
- Copyright (C) 2006 Network Resonance, Inc.
- nrappkit is a toolkit for building standalone applications and
- appliances. It provides:
- - registry-based configuration (with change callbacks)
- - extensible command and configuration shell
- - extensible statistics system
- - configurable logging system
- - event and timer handling
- - generic plugin system
- - launcher daemon
- The contents of nrappkit were extracted from Network Resonance's
- product on the theory that they were generally useful for
- application developers.
- THIS PACKAGE DOES NOT GRANT A LICENSE OR RIGHT TO ANY OTHER NETWORK
- RESONANCE TECHNOLOGY OR SOFTWARE.
- BUILDING
- Builds are done semi-manually with port directories for each
- platform. There are pre-existing ports to FreeBSD, Linux (Ubuntu
- and Fedora Core), and Darwin (MacOSX). To build the system:
- cd src/make/<platform>
- gmake
- Some of the platforms come in several variants. Most notably,
- if a platform exists in "regular" and "-appliance" variant,
- this means that the regular variant just builds binaries intended
- to be run out of the make directory (for development) and the
- appliance variant is intended to be installed in a real system.
- By default we want to install things owned as user "pcecap".
- Either make this user or edit the Makefile to be a user you
- like (e.g., nobody).
- If you want to include the 'nrsh' command-line configuration
- tool in your build, you will need to make sure the line
- BUILD_NRSH=yes
- appears (uncommented-out) in your platform Makefile. You will
- also need to to build OpenSSL and libedit and point your nrappkit
- Makefile to the correct paths. You can obtain these packages at:
- openssl-0.9.7l
- http://www.openssl.org/source/openssl-0.9.7l.tar.gz
- libedit-20060829-2.9
- http://freshmeat.net/redir/editline/53029/url_tgz/libedit-20060829-2.9.tar.gz
- INSTALLING
- If you're doing an appliance as opposed to a development build,
- you'll want to install it. This is easy:
- su
- gmake install
- Most binaries and libraries ends up in /usr/local/pcecap while
- data files are in /var/pcecap. However, you can tweak
- this in the Makefile. By default it's all owned by pcecap.
- To ensure that dynamic libraries are loaded correctly at runtime,
- you'd want to make sure the right directory is included in your
- LD_LIBRARY_PATH or via ldconfig.
- QUICK TOUR
- The build makes the following binaries that you may find useful:
- - captured -- the launcher (the name is historical)
- - registryd -- the registry daemon
- - nrregctl -- a registry control program
- - nrsh -- the command shell (when included in build)
- - nrstatsctl -- the stats control program
- Using the nrcapctl script is the easiest way to interact with
- the applications. It is run as "nrcapctl <command>" with the
- following commands recognized:
- startup -- fires up captured, which in turn runs and
- initializes the registry
- shutdown -- kills captured and its child processes
- status -- prints the running status of captured in
- human-readable form
- stat -- prints the running status of captured in
- a form easily parsed by scripts
- enable -- alters the mode.txt file so that captured
- starts
- disable -- alters the mode.txt file so that captured
- does not start
- clear-statistics -- equivalent to "nrstatsctl -z" (requires
- that captured be running)
- Note: the "start" and "stop" nrcapctl commands do nothing as they
- use components not included in nrappkit. However the associated
- script logic in nrcapctl demonstrates how additional applications
- might be launched using nrcapctl and particular registry settings.
- EXTENDING
- When things come up, they're pretty dumb. You'll probably want to
- write your own applications, otherwise it's not clear why you're doing
- this. The general idea is that you write your application using the
- facilities that nrappkit provides and then write plugins to the
- nrappkit components as necessary. So, for example, say you want
- to write a network daemon. You would:
- - configure the launcher to launch your daemon (using the registry,
- naturally).
- - make calls to the registry to get configuration data
- - make calls to the logging system to log data
- - implement a stats module to record statistics
- - write a plugin to nrsh to let people configure your parameters
- Examples of some of this stuff can be found in examples/demo_plugin.
- Otherwise, read the source. More documentation will be on the way,
- hopefully.
|