recentip 0.4.1

An opinionated async SOME/IP implementation for Rust — boring by design, backed by Tokio.
Documentation

RecentIP

Crate Docs License: GPL-3.0

An opinionated async and boring SOME/IP protocol implementation.

This is a hobby project for fun and exploration. The goal is to create a solid, performant and easy-to-use-and-maintain SOME/IP implementation.

=> Show me some examples! <=

Supported SOME/IP

Right now, this lib only implements these core parts of the SOME/IP protocol:

  • Service Discovery — Automatic discovery via multicast SD protocol
  • RPC — Request/response and fire-and-forget method calls
  • Pub/Sub — Event subscriptions with eventgroup management

Compliance report

Installation

Add to your Cargo.toml:

[dependencies]
recentip = "0.4.1"

Documentation

API Documentation — Configuration, API overview, and compile-checked examples

Testing

The library heavily leverages turmoil for deterministic and fast network and time simulation. There are several test suites:

  • Unit tests in each module
  • Compliance tests in tests/compliance certifying compliance with the SOME/IP specs backed.
  • Real network tests not using turmoil.
  • API behavior tests for non-spec behavior.
# Run most tests (~15s)
cargo nextest run

# Run all tests (~15s)
cargo nextest run --cargo-profile fast-release --features slow-tests

# Generate coverage report
cargo llvm-cov nextest --features slow-tests

# Doc tests
cargo test --doc

RecentIP Lints

RecentIP comes with a lint rule for detecting wrong usage of the it that cannot be enforced by types.

  • The RUNTIME_MUST_SHUTDOWN lint warns when a SomeIp might be dropped without shutdown().

Use the included dylint lint crate:

# Install dylint
cargo install cargo-dylint dylint-link

# Run lints
cargo dylint --all

Specification Compliance

This implementation targets full compliance with the open SOME/IP 2025-12 specification. Support per requirement can be verified using the traceability report.

License

Currently, this project is licensed under the GPL-3.0 License.

Contributing

See CONTRIBUTING.md.