Crate nautilus_core

Source
Expand description

Core foundational types and utilities for PoseiTrader.

The core crate is designed to be lightweight, efficient, and to provide zero-cost abstractions wherever possible. It supplies the essential building blocks used across the PoseiTrader ecosystem, including:

  • Time handling and atomic clock functionality.
  • UUID generation and management.
  • Mathematical functions and interpolation utilities.
  • Correctness validation functions.
  • Serialization traits and helpers.
  • Cross-platform environment utilities.
  • Abstractions over common collections.

§Platform

PoseiTrader is an open-source, high-performance, production-grade algorithmic trading platform, providing quantitative traders with the ability to backtest portfolios of automated trading strategies on historical data with an event-driven engine, and also deploy those same strategies live, with no code changes.

PoseiTrader’s design, architecture, and implementation philosophy prioritizes software correctness and safety at the highest level, with the aim of supporting mission-critical, trading system backtesting and live deployment workloads.

§Feature flags

This crate provides feature flags to control source code inclusion during compilation, depending on the intended use case, i.e. whether to provide Python bindings for the posei_trader Python package, or as part of a Rust only build.

  • ffi: Enables the C foreign function interface (FFI) from cbindgen.
  • python: Enables Python bindings from PyO3.

Re-exports§

pub use crate::nanos::UnixNanos;
pub use crate::time::AtomicTime;
pub use crate::uuid::UUID4;

Modules§

collections
Abstraction layer over common hash-based containers.
consts
Core constants.
correctness
Functions for correctness checks similar to the design by contract philosophy.
datetime
Common data and time functions.
env
Cross-platform environment variable utilities.
ffi
C foreign function interface (FFI) from cbindgen.
math
Mathematical functions and interpolation utilities.
message
Common message types.
nanos
A UnixNanos type for working with timestamps in nanoseconds since the UNIX epoch.
parsing
Core parsing functions.
paths
Utility functions for resolving project and workspace directory paths.
python
Python bindings and interoperability helpers built on top of PyO3.
serialization
Common serialization traits and functions.
time
The core AtomicTime for real-time and static clocks.
uuid
A UUID4 Universally Unique Identifier (UUID) version 4 (RFC 4122).