To build, run:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=usr -DBUILD_TESTING=On ..
make
sudo make install
Implementation of core protocols (assets, metrics, alerts messages) for 42ity project.
It defines three types of main messages/objects on the system
- metrics
- assets
- alerts
The contributors are listed in AUTHORS. This project uses the GPL2+ license, see LICENSE.
fty-proto uses the C4.1 (Collective Code Construction Contract) process for contributions.
fty-proto uses the CLASS (C Language Style for Scalabilty) guide for code style.
To report an issue, use the 42Ity issue tracker at github.com.
You need libzmq and czmq prior to building fty-proto.
Zeromq community maintain packages network:zeromq for a lot of Linux distributions. Check if your system is supported and install devel packagage of czmq (libczmq-dev, czmq-devel).
Here's how to build CZMQ from GitHub (building from packages is very similar, you don't clone a repo but unpack a tarball), including the libzmq (ZeroMQ core) library (NOTE: skip ldconfig on OSX):
git clone git://github.com/zeromq/libzmq.git
cd libzmq
./autogen.sh
# do not specify "--with-libsodium" if you prefer to use internal tweetnacl security implementation (recommended for development)
./configure --with-libsodium
make check
sudo make install
sudo ldconfig
cd ..
git clone git://github.com/zeromq/czmq.git
cd czmq
./autogen.sh && ./configure && make check
sudo make install
sudo ldconfig
cd ..
Then build fty-proto itself
git clone git://github.com/42ity/fty-proto.git
cd fty-proto
cmake -B build && cd build
make
sudo make install
sudo ldconfig
cd ..
See fty_proto.h for API.
fty-proto is developed through a test-driven process that guarantees no memory violations or leaks in the code:
- Modify a class or method.
- Update the test method for that class.
- Run the 'selftest' script, which uses the Valgrind memcheck tool.
- Repeat until perfect.
Always ask - can I make it simpler?
Add this block in the project.xml file :
<use project = "fty-proto" libname = "libfty_proto" header = "fty_proto.h" prefix = "fty_proto"
min_major = "1"
repository = "https://github.com/42ity/fty-proto.git" />
Make your target depends on fty_proto
.