Common utility actors built with Ractor
A pure-Rust actor framework. Inspired from Erlang's gen_server, with the speed + performance of Rust!
This crate contains some utility actors for Ractor-based systems. Additionally because ractor is built on tokio,
you can often intermingle these utility actors with non-actor async workflows.
This crate is WIP
[dependencies]
ractor_actors = "0.7"Version 0.7 targets Ractor 0.16 and requires Rust 1.87 or newer.
The following utility actors are defined in this crate (enable with the associated feature in brackets):
- Filewatcher (feature
filewatcher) - Watch files and directories for changes. Built withnotify. - Tcp actors (feature
net) - Listen for incoming connections and handle messages in/out from them as sessions. - Cron management actor (feature
time) - A basic cron-job managing actor, which supports the full cron syntax and will execute operations on a period - Stream processing actors (feature
streams) - Actors for common tasks processing streams, including infinite/finite loops, stream processing, and stream multiplexing. - Watchdog process (feature
watchdog) - A "global" watchdog process, which can be used to terminate actors after some level of inactivity.
This project uses an automated dependency tracking system to monitor major version updates for critical dependencies (ractor, chrono, cron, notify). The system:
- Runs weekly (every Monday at 10:00 AM UTC)
- Checks crates.io for major version updates
- Automatically creates PRs with version bumps
- Bumps
ractor_actorsversion (minor bump for major dependency updates)
You can manually trigger the dependency checker:
# Dry run - shows what would be updated
cargo xtask check-deps --dry-run
# Local test - creates branch and commits but doesn't push
cargo xtask check-deps --no-push
# Full run (CI mode) - creates PRs
cargo xtask check-deps --ciThe dependency tracker is configured in .github/dependency-tracker.yml:
dependencies:
ractor:
enabled: true
track: major
bump_strategy: minorSee the workflow file for implementation details.
To learn more about contributing to ractor please see CONTRIBUTING.md.
This project is licensed under MIT.