Skip to main content

linera_service/
lib.rs

1// Copyright (c) Facebook, Inc. and its affiliates.
2// Copyright (c) Zefchain Labs, Inc.
3// SPDX-License-Identifier: Apache-2.0
4
5//! This module provides the executables needed to operate a Linera service, including a placeholder wallet acting as a GraphQL service for user interfaces.
6
7#![recursion_limit = "256"]
8#![deny(missing_docs)]
9
10pub mod cli;
11pub mod cli_wrappers;
12/// Configuration types for the service binaries.
13pub mod config;
14/// The controller that orchestrates worker services.
15pub mod controller;
16/// The GraphQL node service exposing wallet and chain state.
17pub mod node_service;
18/// Helpers for creating and building application projects.
19pub mod project;
20/// Tracking of GraphQL subscriptions by query.
21pub mod query_subscription;
22/// Storage backend selection for the service binaries.
23pub mod storage;
24pub mod task_processor;
25pub mod tracing;
26/// Assorted helper utilities for the service binaries.
27pub mod util;
28pub use linera_wallet_json::PersistentWallet as Wallet;
29
30/// Registers every metric this crate declares.
31///
32/// Without this, a metric is only exported after the code path that observes it has run, so a
33/// rarely-taken path leaves its panels blank and makes a routine restart look like the metric
34/// was removed.
35#[cfg(with_metrics)]
36pub fn init_metrics() {
37    linera_base::init_metrics();
38    linera_cache::init_metrics();
39    linera_chain::init_metrics();
40    linera_core::init_metrics();
41    linera_execution::init_metrics();
42    linera_exporter::init_metrics();
43    linera_faucet_server::init_metrics();
44    linera_rpc::init_metrics();
45    linera_storage::init_metrics();
46    linera_views::init_metrics();
47    node_service::query_cache_metrics::init_metrics();
48    task_processor::metrics::init_metrics();
49}