Codebase Structure
Structure
The following file tree describes how the project is structure. More details about tooling follows.
trueno
assets: Project assets such as images and icons.
conf: Trueno configuration files(sources, settings, hostnames and ports).
lib: Where all logic resides(sources).
test: Testing suite directory.
.gitignore: Git ignore.
gulpfile.js: Gulp configuration file.
LICENCE: The project licence.
package.json: The Node.js modules configuration file.
README.md: The readme instruction file.
Codebase
The most important directories of the project are conf and lib.
conf
gremlin-server: The Gremlin Server configuration and binaries for the Trueno backend.
pm2-gui-custom.ini: The PM2 GUI custom configuration.
pm2-gui-custom.ini: The PM2 GUI configuration.
trueno-component-sources.yaml: The components sources(download links and info.
trueno-config.yaml: Trueno configurations and components settings overwrites.
trueno-config.yaml: Trueno configurations and components settings overwrites.
trueno-post-install.yaml: Post component installation sources/commands.
lib
balancer: Websocket load balancer sources.
compute: Graph compute layer sources.
console: Trueno CLI console sources.
core: Trueno core(central component sticking everything together) sources
search: Indexing and search layer(elasticsearch) sources.
ui: Web UI sources.
trueno-balancer.js: The load balancer entry script.
trueno-console.js: The console entry script.
trueno-post-start.js: Trueno's post initialization entry script.
trueno-setup.js: The setup entry script.
trueno-start.js: Trueno engine-start entry script.
trueno-stop.js: Trueno execution halt script.
trueno-tools.js: Command line tools entry script.
trueno.js: Trueno main execution script.
Finally, the most complex and important structure to explain may be the core directory:
core
api: The communication protocol library, all client calls are here.
binaries: Components binary folder, generated after setup.
communication: The WebSocket library for clients and internal communication.
data: The default data directory. Generated at runtime if no data path is provided.
data_structures: Shared datastructures, ex. Graph, Vertice, and Edge.
enum: Trueno enumerators.
initialize: The initialization library, the initial execution flow begins here.
logging: The logging library.
status: The metrics analyzer library.