libraries.md raw

Libraries

NameDescription
liblimenka_cliRPC client functionality used by limenka-cli executable
liblimenka_commonHome for common functionality shared by different executables and libraries. Similar to liblimenka_util, but higher-level (see Dependencies).
liblimenka_consensusConsensus functionality used by liblimenka_node and liblimenka_wallet and also exposed as a shared library.
liblimenkaconsensusStable, backwards-compatible shared library build of static liblimenka_consensus library
liblimenka_cryptoHardware-optimized functions for data encryption, hashing, message authentication, and key derivation.
liblimenka_kernelConsensus engine and support library used for validation by liblimenka_node.
liblimenkaqtGUI functionality used by limenka-qt and limenka-gui executables.
liblimenka_ipcIPC functionality used by limenka-node, limenka-wallet, limenka-gui executables to communicate when `-DWITH_MULTIPROCESS=ON` is used.
liblimenka_nodeP2P and RPC server functionality used by limenkad and limenka-qt executables.
liblimenka_utilHome for common functionality shared by different executables and libraries. Similar to liblimenka_common, but lower-level (see Dependencies).
liblimenka_walletWallet functionality used by limenkad and limenka-wallet executables.
liblimenka_wallet_toolLower-level wallet functionality used by limenka-wallet executable.
liblimenka_zmqZeroMQ functionality used by limenkad and limenka-qt executables.

Conventions

- liblimenka_node code lives in src/node/ in the node:: namespace - liblimenka_wallet code lives in src/wallet/ in the wallet:: namespace - liblimenka_ipc code lives in src/ipc/ in the ipc:: namespace - liblimenka_util code lives in src/util/ in the util:: namespace - liblimenka_consensus code lives in src/consensus/ in the Consensus:: namespace

Dependencies

<table><tr><td>


%%{ init : { "flowchart" : { "curve" : "basis" }}}%%

graph TD;

limenka-cli[limenka-cli]-->liblimenka_cli;

limenkad[limenkad]-->liblimenka_node;
limenkad[limenkad]-->liblimenka_wallet;

limenka-qt[limenka-qt]-->liblimenka_node;
limenka-qt[limenka-qt]-->liblimenkaqt;
limenka-qt[limenka-qt]-->liblimenka_wallet;

limenka-wallet[limenka-wallet]-->liblimenka_wallet;
limenka-wallet[limenka-wallet]-->liblimenka_wallet_tool;

liblimenka_cli-->liblimenka_util;
liblimenka_cli-->liblimenka_common;

liblimenka_consensus-->liblimenka_crypto;

liblimenka_common-->liblimenka_consensus;
liblimenka_common-->liblimenka_crypto;
liblimenka_common-->liblimenka_util;

liblimenka_kernel-->liblimenka_consensus;
liblimenka_kernel-->liblimenka_crypto;
liblimenka_kernel-->liblimenka_util;

liblimenka_node-->liblimenka_consensus;
liblimenka_node-->liblimenka_crypto;
liblimenka_node-->liblimenka_kernel;
liblimenka_node-->liblimenka_common;
liblimenka_node-->liblimenka_util;

liblimenkaqt-->liblimenka_common;
liblimenkaqt-->liblimenka_util;

liblimenka_util-->liblimenka_crypto;

liblimenka_wallet-->liblimenka_common;
liblimenka_wallet-->liblimenka_crypto;
liblimenka_wallet-->liblimenka_util;

liblimenka_wallet_tool-->liblimenka_wallet;
liblimenka_wallet_tool-->liblimenka_util;

classDef bold stroke-width:2px, font-weight:bold, font-size: smaller;
class limenka-qt,limenkad,limenka-cli,limenka-wallet bold

</td></tr><tr><td>

Dependency graph. Arrows show linker symbol dependencies. Crypto lib depends on nothing. Util lib is depended on by everything. Kernel lib depends only on consensus, crypto, and util.

</td></tr></table>

Work in progress