rocketmq-runtime 1.0.0

Unofficial Rust implementation of Apache RocketMQ
Documentation
// Copyright 2023 The RocketMQ Rust Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#![deny(missing_docs)]

//! Runtime substrate for the RocketMQ Rust unified thread model.
//!
//! This crate standardizes how components own or borrow a Tokio runtime, how
//! they derive service-level task scopes through [`RootServiceContext`] and
//! [`ChildServiceContext`], how
//! [`TaskGroup`] and [`ScheduledTaskGroup`] track long-running and periodic
//! tasks, how [`BlockingExecutor`] isolates short blocking work, and how
//! [`ShutdownReport`] records verifiable shutdown evidence.
//!
//! Process entrypoints own [`RuntimeOwner`] and derive a single
//! [`RootServiceContext`]. Production libraries receive a
//! [`ChildServiceContext`] or a narrower capability. [`RuntimeContext`] is a
//! test and migration harness.
//!
//! [`prelude`] documents the recommended entry path with an example that runs
//! as a test.

pub mod blocking;
/// Common types and operations.
pub mod common;
/// Config types and operations.
mod config;
/// Context types and operations.
mod context;
/// Critical task failure records and handling.
mod critical;
mod diagnostics;
/// Error types and operations.
mod error;
mod handle;
mod metadata_io;
mod metadata_target;
mod operation;
/// Owner types and operations.
mod owner;
pub mod prelude;
mod public_api;
/// Resource budget types and operations.
pub mod resource_budget;
mod resources;
/// Scheduled types and operations.
mod scheduled;
/// Service context types and operations.
pub mod service_context;
mod service_lifecycle;
/// Shutdown deadline types and operations.
pub mod shutdown_deadline;
/// Shutdown report types and operations.
pub mod shutdown_report;
/// Signal types and operations.
pub mod signal;
mod stack;
/// Task types and operations.
pub mod task;
/// Task group types and operations.
pub mod task_group;
mod task_spawner;

pub use blocking::BlockingExecutorSnapshot;
pub use blocking::BlockingKind;
pub use blocking::BlockingLane;
pub use blocking::BlockingLanePolicies;
pub use blocking::BlockingPoolPolicy;
pub use blocking::BlockingTaskSnapshot;
pub use config::RuntimeConfig;
pub use context::RuntimeContext;
pub use critical::CriticalFailure;
pub use critical::CriticalFailureKind;
pub use critical::CriticalFailureState;
pub use critical::CriticalFailureSubscription;
pub use error::ExternalOperation;
pub use error::RuntimeContractPolicy;
pub use error::RuntimeContractViolation;
pub use error::RuntimeError;
pub use error::RuntimeErrorKind;
pub use error::RuntimeOperation;
pub use error::RuntimeResult;
pub use metadata_io::LocalMetadataFileSystem;
pub use metadata_io::MetadataDeadline;
pub use metadata_io::MetadataDurability;
pub use metadata_io::MetadataFileSystem;
pub use metadata_io::MetadataGeneration;
pub use metadata_io::MetadataIoActor;
pub use metadata_io::MetadataIoActorLimitsProfile;
pub use metadata_io::MetadataIoAdmissionOutcome;
pub use metadata_io::MetadataIoBlockingLaneProfile;
pub use metadata_io::MetadataIoCommitAdmissionOutcome;
pub use metadata_io::MetadataIoCommitObservation;
pub use metadata_io::MetadataIoCommitOutcome;
pub use metadata_io::MetadataIoConfig;
pub use metadata_io::MetadataIoDurabilityOutcome;
pub use metadata_io::MetadataIoEffectiveProfile;
pub use metadata_io::MetadataIoLegacyBlockingField;
pub use metadata_io::MetadataIoObserver;
pub use metadata_io::MetadataIoOperation;
pub use metadata_io::MetadataIoPlan;
pub use metadata_io::MetadataIoReceipt;
pub use metadata_io::MetadataIoResourceSnapshot;
pub use metadata_io::MetadataIoShutdownReport;
pub use metadata_io::MetadataIoSnapshot;
pub use metadata_io::MetadataLimitSource;
pub use metadata_io::MetadataWriteRequest;
pub use metadata_target::{MetadataTargetIdentity, MetadataTargetRegistryStats, MetadataTargetRetirementOutcome};
pub use public_api::*;
pub use resource_budget::BudgetCapacity;
pub use resource_budget::BudgetClass;
pub use resource_budget::BudgetDimension;
pub use resource_budget::BudgetLimit;
pub use resource_budget::BudgetRejection;
pub use resource_budget::BudgetRejectionReason;
pub use resource_budget::BudgetSnapshot;
pub use resource_budget::BudgetedItem;
pub use resource_budget::BudgetedQueue;
pub use resource_budget::DynamicBudgetKey;
pub use resource_budget::DynamicKeyAdmissionRejection;
pub use resource_budget::DynamicKeyRegistrationFailure;
pub use resource_budget::DynamicKeyRetirement;
pub use resource_budget::ForeignPermit;
pub use resource_budget::FullPolicy;
pub use resource_budget::HostMemoryFileView;
pub use resource_budget::ManagedMemoryBudget;
pub use resource_budget::ManagedMemoryPolicy;
pub use resource_budget::ManagedMemoryRequest;
pub use resource_budget::MemoryFileView;
pub use resource_budget::MemoryLimitSource;
pub use resource_budget::MonotonicClock;
pub use resource_budget::PermitRebindOutcome;
pub use resource_budget::ProcessMemoryLimit;
pub use resource_budget::QueuePushOutcome;
pub use resource_budget::QueuePushRejection;
pub use resource_budget::QueueSnapshot;
pub use resource_budget::RateLimit;
pub use resource_budget::ResourceBudgetTree;
pub use resource_budget::ResourcePermit;
pub use resource_budget::SystemMonotonicClock;
pub use scheduled::MissedTickPolicy;
pub use scheduled::ScheduleMode;
pub use scheduled::ScheduledExecutionPolicy;
pub use scheduled::ScheduledTaskConcurrency;
pub use scheduled::ScheduledTaskConfig;
pub use scheduled::ScheduledTaskControl;
pub use scheduled::ScheduledTaskGroup;
pub use scheduled::ScheduledTaskObserver;
pub use scheduled::ScheduledTaskRegistrationOutcome;
pub use scheduled::ScheduledTaskSnapshot;
pub use service_context::ScopeId;
pub use service_lifecycle::CriticalFailureRecovery;
pub use service_lifecycle::DependencyReadiness;
pub use service_lifecycle::DrainRequestMethods;
pub use service_lifecycle::ServiceLifecycle;
pub use service_lifecycle::ServiceLifecycleConfig;
pub use service_lifecycle::ServiceLifecycleObserver;
pub use service_lifecycle::ServiceLifecycleState;
pub use service_lifecycle::ServiceLifecycleTransition;
pub use service_lifecycle::ShutdownReason;
pub use service_lifecycle::ShutdownRequest;
pub use shutdown_report::ShutdownAnnotation;
pub use shutdown_report::TaskSnapshot;
pub use signal::wait_for_signal;
pub use signal::wait_for_signal_result;
pub use stack::current_thread_committed_stack_bytes;
pub use task_group::TaskGroupEventCounts;
pub use task_group::TaskGroupId;
pub use task_group::TaskGroupLifecycleState;
pub use task_group::TaskId;
pub use task_group::TaskKind;
pub use task_group::TaskName;
pub use task_group::TaskResult;
pub use task_spawner::TaskSpawner;