relay_system/
lib.rs

1//! Foundational system components for Relay's services.
2//!
3//! Relay's system is based on [`tokio`]. To use any of these components, ensure a tokio runtime is
4//! available.
5//!
6//! # Services
7//!
8//! The basic building block in Relay are asynchronous [`Service`]s. Each service implements an
9//! [`Interface`], which consists of one or many messages that can be sent to the service using its
10//! [`Addr`]. See the docs of these types for more information on how to implement and use them.
11//!
12//! # Shutdown
13//!
14//! The static [`Controller`] service can listen for process signals and initiate a graceful
15//! shutdown. Note that services must check a [`ShutdownHandle`] to receive these signals. See the
16//! struct level documentation for more information.
17
18#![warn(missing_docs)]
19#![doc(
20    html_logo_url = "https://raw.githubusercontent.com/getsentry/relay/master/artwork/relay-icon.png",
21    html_favicon_url = "https://raw.githubusercontent.com/getsentry/relay/master/artwork/relay-icon.png"
22)]
23#![allow(clippy::derive_partial_eq_without_eq)]
24
25mod controller;
26mod monitor;
27mod runtime;
28mod service;
29mod statsd;
30
31pub use self::controller::*;
32pub use self::monitor::*;
33pub use self::runtime::*;
34pub use self::service::*;