Skip to content

Shared implementation of 42ITy core protocols, using Malamute and used by the different agents (assets, metrics, alerts)

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
LICENSE
GPL-2.0
COPYING
Notifications You must be signed in to change notification settings

42ity/fty-proto

Repository files navigation

Core protocol implementation for FTY

How to build

To build, run:

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=usr -DBUILD_TESTING=On ..
make
sudo make install

Scope and goals

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

Ownership and license

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.

Building and Installing

You need libzmq and czmq prior to building fty-proto.

Using Open Build Service

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).

From source code

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 ..

API summary

See fty_proto.h for API.

Development

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?

How to compile and test projects using fty-proto by 42ITy standards

zproject

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" />

CMake/ CMakeLists.txt

Make your target depends on fty_proto.

About

Shared implementation of 42ITy core protocols, using Malamute and used by the different agents (assets, metrics, alerts)

Resources

License

Unknown, GPL-2.0 licenses found

Licenses found

Unknown
LICENSE
GPL-2.0
COPYING

Stars

Watchers

Forks

Packages

No packages published