Self-contained services application framework
Go to file
Giacomo Pasini 5844bea0c9
remove unneeded type bounds on send
2023-01-09 17:44:34 +01:00
.github/workflows Remove codecoverage for PR 2022-12-16 15:44:05 +02:00
ci ci: Add Jenkins configuration and related files 2022-12-13 16:25:41 +02:00
examples/waku-chat Error handle and consume self in connect function (#11) 2022-12-10 16:01:16 +08:00
overwatch-derive Error handle and consume self in connect function (#11) 2022-12-10 16:01:16 +08:00
overwatch-rs remove unneeded type bounds on send 2023-01-09 17:44:34 +01:00
.gitignore Immutable connect (#10) 2022-12-02 19:57:45 +08:00
Cargo.lock Relay sink + stream (#13) 2022-12-14 15:41:01 +01:00
Cargo.toml Publish ready (#7) 2022-11-16 14:15:58 +01:00
LICENSE Public release 2022-10-20 11:47:50 +02:00
README.md ci: codecov and badges 2022-12-16 15:26:25 +02:00
shell.nix ci: Add Jenkins configuration and related files 2022-12-13 16:25:41 +02:00

README.md

Overwatch

MIT licensed Build Status Codecov Status

Overwatch is a framework to easily construct applications that requires of several independent parts that needs communication between them. Everything is self-contained, and it matches somewhat the advantages of microservices.

Design Goals

  • Modularity:

    • Components should be self-contained (as possible)
    • Communication relations between components should be specifically defined
    • Components should be mockable. This is rather important for measurements and testing.
  • Single responsibility:

    • It is easier to isolate problems
    • Minimal sharing when unavoidable
  • Debuggeability

    • Easy to track workflow
    • Easy to test
    • Easy to measure
    • Asynchronous Communication

Main components

  • Overwatch: the main messenger relay component (internal communications). It is also be responsible of managing other components lifecycle and handling configuration updates.
  • Services (handled by the overwatch)

Project Structure

  • overwatch: Services runner framework
  • overwatch-derive: Overwatch macros

Build & Test

Minimal Rust supported version: 1.63

When in development, please, use cargo clippy to build the project. Any warning is promoted to an error in our CI.

  • Use cargo test for executing tests, and cargo test -- --nocapture for seeing test outputs.
  • Use cargo run --exampel {example_name} to run an example.

Build Documentation

Simply run cargo doc --open --no-deps to build and access a copy of the generated documentation.