RecentIP
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
Installation
Add to your Cargo.toml:
[]
= "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/compliancecertifying compliance with the SOME/IP specs backed. - Real network tests not using turmoil.
- API behavior tests for non-spec behavior.
# Run most tests (~15s)
# Run all tests (~15s)
# Generate coverage report
# Doc tests
RecentIP Lints
RecentIP comes with a lint rule for detecting wrong usage of the it that cannot be enforced by types.
- The
RUNTIME_MUST_SHUTDOWNlint warns when aSomeIpmight be dropped withoutshutdown().
Use the included dylint lint crate:
# Install dylint
# Run lints
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.