Eclipse iceoryx2™ - true zero-copy inter-process-communication in pure Rust

Overview

Benchmarks Changelog Crates.io Examples FAQ License Roadmap

iceoryx2 - Zero-Copy Lock-Free IPC Purely Written In Rust

  1. Introduction
  2. Performance
  3. Getting Started
    1. Publish Subscribe
    2. Events
    3. Custom Configuration
  4. Supported Platforms
  5. Language Bindings
  6. Thanks To All Contributors

Introduction

Welcome to Iceoryx2, the efficient, and ultra-low latency inter-process communication middleware. This library is designed to provide you with fast and reliable zero-copy and lock-free inter-process communication mechanisms.

Iceoryx2 is all about providing a seamless experience for inter-process communication, featuring versatile messaging patterns. Whether you're diving into publish-subscribe, events, or the promise of upcoming features like request-response, pipelines, and blackboard, Iceoryx2 has you covered.

One of the features of Iceoryx2 is its consistently low transmission latency regardless of payload size, ensuring a predictable and reliable communication experience.

Iceoryx2's origins can be traced back to iceoryx. By overcoming past technical debts and refining the architecture, Iceoryx2 enables the modularity we've always desired.

In the near future, Iceoryx2 is poised to support at least the same feature set and platforms as iceoryx, ensuring a seamless transition and offering enhanced capabilities for your inter-process communication needs. So, if you're looking for lightning-fast, cross-platform communication that doesn't compromise on performance or modularity, Iceoryx2 is your answer.

Performance

gantt
    title Latency (in ns) - 64b payload
    dateFormat X
    axisFormat %s

    section iceoryx2
    240 : 0, 240
    section iceoryx
    1000 : 0, 1000
    section MQueue
    700 : 0, 700
    section UDS
    1500 : 0, 1500
gantt
    title Latency (in ns) - 64kb payload
    dateFormat X
    axisFormat %s

    section iceoryx2
    240 : 0, 240
    section iceoryx
    1000 : 0, 1000
    section MQueue
    14000 : 0, 14000
    section UDS
    23000 : 0, 23000

Benchmark-System

  • CPU: Intel(R) Core(TM) i7-10875H CPU @ 2.30GHz
  • OS: Linux 6.5.9-arch2-1 #1 SMP PREEMPT_DYNAMIC GNU/Linux
  • Compiler:
    • rustc 1.72.1
    • gcc 13.2.1 20230801

Getting Started

Publish Subscribe

This minimal example showcases a publisher sending the number 1234 every second, while a subscriber efficiently receives and prints the data.

publisher.rs

use core::time::Duration;
use iceoryx2::prelude::*;

const CYCLE_TIME: Duration = Duration::from_secs(1);

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let service_name = ServiceName::new("My/Funk/ServiceName")?;

    let service = zero_copy::Service::new(&service_name)
        .publish_subscribe()
        .open_or_create::<usize>()?;

    let publisher = service.publisher().create()?;

    while let Iox2Event::Tick = Iox2::wait(CYCLE_TIME) {
        let sample = publisher.loan_uninit()?;
        let sample = sample.write_payload(1234);
        publisher.send(sample)?;
    }

    Ok(())
}

subscriber.rs

use core::time::Duration;
use iceoryx2::prelude::*;

const CYCLE_TIME: Duration = Duration::from_secs(1);

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let service_name = ServiceName::new("My/Funk/ServiceName")?;

    let service = zero_copy::Service::new(&service_name)
        .publish_subscribe()
        .open_or_create::<usize>()?;

    let subscriber = service.subscriber().create()?;

    while let Iox2Event::Tick = Iox2::wait(CYCLE_TIME) {
        while let Some(sample) = subscriber.receive()? {
            println!("received: {:?}", *sample);
        }
    }

    Ok(())
}

This example is a simplified version of the publish-subscribe example. You can execute it by opening two terminals and calling:

Terminal 1:

cargo run --example publish_subscribe_publisher

Terminal 2:

cargo run --example publish_subscribe_subscriber

Events

This minimal example showcases an event notification between two processes.

notifier.rs

use core::time::Duration;
use iceoryx2::prelude::*;

const CYCLE_TIME: Duration = Duration::from_secs(1);

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let event_name = ServiceName::new("MyEventName")?;

    let event = zero_copy::Service::new(&event_name)
        .event()
        .open_or_create()?;

    let notifier = event.notifier().create()?;

    let mut counter: u64 = 0;
    while let Iox2Event::Tick = Iox2::wait(CYCLE_TIME) {
        counter += 1;
        notifier.notify_with_custom_event_id(EventId::new(counter))?;

        println!("Trigger event with id {} ...", counter);
    }

    Ok(())
}

listener.rs

use core::time::Duration;
use iceoryx2::prelude::*;

const CYCLE_TIME: Duration = Duration::from_secs(1);

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let event_name = ServiceName::new("MyEventName")?;

    let event = zero_copy::Service::new(&event_name)
        .event()
        .open_or_create()?;

    let mut listener = event.listener().create()?;

    while let Iox2Event::Tick = Iox2::wait(Duration::ZERO) {
        if let Ok(events) = listener.timed_wait(CYCLE_TIME) {
            for event_id in events {
                println!("event was triggered with id: {:?}", event_id);
            }
        }
    }

    Ok(())
}

This example is a simplified version of the event example. You can execute it by opening two terminals and calling:

Terminal 1:

cargo run --example event_notifier

Terminal 2:

cargo run --example event_listener

Custom Configuration

It is possible to configure default quality of service settings, paths and file suffixes in a custom configuration file. For more details visit the configuration directory.

Supported Platforms

The support levels can be adjusted when required.

Operating System State Current Support Level Target Support Level
Android planned - tier 1
FreeBSD done tier 2 tier 1
FreeRTOS planned - tier 2
iOS planned - tier 2
Linux (x86_64) done tier 2 tier 1
Linux (aarch64) done tier 2 tier 1
Linux (32-bit) in-progress tier 3 tier 1
Mac OS done tier 2 tier 2
QNX planned - tier 1
WatchOS planned - tier 2
Windows done tier 2 tier 2
  • tier 1 - All safety and security features are working.
  • tier 2 - Works with a restricted security and safety feature set.
  • tier 3 - Work in progress. Might compile and run or not.

Language Bindings

Language State
C / C++ planned
Lua planned
Python planned
Zig planned

Thanks To All Contributors

Christian »elfenpiff« Eltzschig
Christian »elfenpiff« Eltzschig
Mathias »elBoberido« Kraus
Mathias »elBoberido« Kraus
Comments
  • docs.rs iceoryx2 build fails since libacl.h is missing

    docs.rs iceoryx2 build fails since libacl.h is missing

    Required information

    See build log: https://docs.rs/crate/iceoryx2/0.0.4/builds/1061128

    In the default environment in docs.rs the libacl.h is not available and therefore the build fails. Either we need to install it, provide a stub implementation of the interface just for docs.rs or we deactivate all acl abstractions in docs.rs.

    I would favor a solution where we make libacl.h somehow available, even when it is just a stub.

    The first affected crate is iceoryx2_bb_posix and then every crate that depends on it.

    bug 
    opened by elfenpiff 3
  • [#58] add functionality to vec

    [#58] add functionality to vec

    Notes for Reviewer

    Please review #57 first since this PR is based on it.

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #58

    opened by elfenpiff 2
  • [#64] Implement Display for MessagingPattern

    [#64] Implement Display for MessagingPattern

    Notes for Reviewer

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #64 Closes #66

    opened by elfenpiff 1
  • [#61] fix undefined behavior in string

    [#61] fix undefined behavior in string

    Notes for Reviewer

    Just turn FixedSizeByteString::new_unchecked into a non-const function. As it turned out, it had some impact to the concept layer.

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #61

    opened by elfenpiff 1
  • [#56] Introduce `from_bytes_truncated`

    [#56] Introduce `from_bytes_truncated`

    Notes for Reviewer

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #56

    opened by elfenpiff 1
  • [#16] same name different messaging pattern allowed

    [#16] same name different messaging pattern allowed

    Notes for Reviewer

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #16

    opened by elfenpiff 1
  • iox2-51 shm long name support

    iox2-51 shm long name support

    Notes for Reviewer

    Do not review before #52 is merged, since it is based on it.

    MacOS has the restrictions that only 31 characters are allowed for the shared memory name but iceoryx2 requires much more. The trick is that a file is created to:

    • be able to list all shared memorys in mac os (already present)
    • store the actual shm name, the file name corresponds to the user given shared memory name

    In the file is then the triple stored ($PID$_$TIMESTAMP_SECS$_$TIMESTAMP_NSEC$). In the worst case scenario where PID + SEC is larger than 1.000.000.000 it would hit the max name length of mac os (32 > 31), but to our luck NSEC is always smaller than 1.000.000.000 giving us the extra character we need.

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #ISSUE-NUMBER

    opened by elfenpiff 1
  • iox2-51 integrate posix condition variable for mac os

    iox2-51 integrate posix condition variable for mac os

    Notes for Reviewer

    This is the first of some PR for mac os support. In this PR the mac os condition variable is finalized by using a low level semaphore based on atomics and atomic wait operations.

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Relates to #51

    opened by elfenpiff 1
  • [#2] Fill contributing.md file

    [#2] Fill contributing.md file

    Notes for Reviewer

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] ~~Unit tests have been written for new behavior~~
    • [x] ~~Public API is documented~~
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Relates to #2

    documentation 
    opened by elfenpiff 1
  • [#42] Add acl feature flag and deactive it by default

    [#42] Add acl feature flag and deactive it by default

    Notes for Reviewer

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [ ] Commits are properly organized and messages are according to the guideline
    • [ ] Unit tests have been written for new behavior
    • [ ] Public API is documented
    • [ ] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [ ] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Relates to #2

    opened by elfenpiff 1
  • [#2] Add shields and correct link

    [#2] Add shields and correct link

    Notes for Reviewer

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [x] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Relates to #2

    opened by elfenpiff 1
  • [#54] Rename char in types.rs to c_char.

    [#54] Rename char in types.rs to c_char.

    • Changes propogated

    Notes for Reviewer

    Look at errno.rs for the change in buffer type from char to c_char. Looks valid to me but that was the only involved change.

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [ ] Assign PR to reviewer
    10. [ ] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [ ] Commits are properly organized and messages are according to the guideline
    • [ ] Unit tests have been written for new behavior
    • [ ] Public API is documented
    • [ ] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [ ] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #54

    opened by Shock-1 7
  • Service list fails when service directory does not exist.

    Service list fails when service directory does not exist.

    Required information

    The code from the iceoryx2 discovery example will fail when the service directory does not exist, this is unexpected.

    It should be interpreted as no active services.

    bug 
    opened by elfenpiff 0
  • miri integration

    miri integration

    Brief feature description

    To increase the code quality, fix potential undefined behavior and unravel race conditions and memory synchronization issues in lock-free code we need to integrate miri in our development workflow.

    Todo

    • [ ] Create CI script that runs miri scans on all files based on an allowed list. In the beginning, the allowed list can be empty
    • [ ] Fix miri issues beginning from the lowest layer up to the highest one and add fixed files/components to the allowed list.
    enhancement 
    opened by elfenpiff 0
  • Rename `char` in platform to `c_char`

    Rename `char` in platform to `c_char`

    (Code) Example Of Cumbersome API

    The type alias char in iceoryx2_pal/posix/src/$PLATFORM$/types.rs is mapped to core::ffi::c_char and not u8, this may lead to mixing it up with the rust primitive type char.

    Improvement Suggestion

    To have a clear distinction, the type alias in types.rs shall be renamed to c_char

    enhancement good first issue 
    opened by elfenpiff 0
  • [#48] Adding audit scripts

    [#48] Adding audit scripts

    Notes for Reviewer

    Pre-Review Checklist for the PR Author

    1. [x] Add sensible notes for the reviewer
    2. [x] PR title is short, expressive and meaningful
    3. [x] Relevant issues are linked
    4. [x] Every source code file has a copyright header with SPDX-License-Identifier: Apache-2.0 OR MIT
    5. [x] Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
    6. [x] Commits messages are according to this guideline
      • [x] Commit messages have the issue ID ([#123] Add posix ipc example)
      • [x] Commit author matches Eclipse Contributor Agreement (and ECA is signed)
    7. [x] Tests follow the best practice for testing
    8. [x] Changelog updated in the unreleased section including API breaking changes
    9. [x] Assign PR to reviewer
    10. [x] All checks have passed (except task-list-completed)

    Checklist for the PR Reviewer

    • [x] Commits are properly organized and messages are according to the guideline
    • [x] Unit tests have been written for new behavior
    • [x] Public API is documented
    • [x] PR title describes the changes

    Post-review Checklist for the PR Author

    1. [ ] All open points are addressed and tracked via issues

    References

    Use either 'Closes #123' or 'Relates to #123' to reference the corresponding issue.

    Closes #ISSUE-NUMBER

    opened by hydroid7 1
  • Add 'cargo-audit' to the CI

    Add 'cargo-audit' to the CI

    I think a first step in this direction would be to add an automatic audit using https://crates.io/crates/cargo-audit

    Extending the CI file wouldn't be that hard either:

    iox2_cargo_fmt_and_clippy_template: &IOX2_CARGO_FMT_AND_CLIPPY
      cargo_fmt_and_clippy_script:
        - cargo fmt --all -- --check
        - cargo clippy -- -D warnings
        - cargo audit
    

    Originally posted by @hydroid7 in https://github.com/eclipse-iceoryx/iceoryx2/issues/6#issuecomment-1857554174

    opened by elBoberido 1
Releases(v0.1.1)
Elkodon - true zero-copy inter-process-communication in rust

elkodon - Zero-Copy Lock-Free IPC Purely Written In Rust Introduction Performance Getting Started Publish Subscribe Events Custom Configuration Suppor

null 12 Nov 27, 2023
The true next-gen L7 minecraft proxy and load balancer. Built in Rust.

Lure The true next-gen L7 minecraft proxy and load balancer. Built in Rust, Tokio and Valence. Why? Rust is a powerful programming language and a grea

Sammwy 67 Apr 16, 2023
A simple configuration-based module for inter-network RPC in Holochain hApps.

DNA Auth Resolver A simple configuration-based module for inter-network RPC in Holochain hApps. About Usage In the origin zome In the destination DNA

Shadman Baig 0 Feb 4, 2022
Altruistic Angelshark is a project devoted to making Communication Manager (ACM) automation easier.

This project makes automating over one or more Communication Managers easier via OSSI over SSH.

ADP, LLC. 3 Feb 13, 2022
Druid Exporter plays a fundamental role as a receiver of metrics events coming from Druid clusters, adopting the HTTP format as a means of communication

Druid Exporter plays a fundamental role as a receiver of metrics events coming from Druid clusters, adopting the HTTP format as a means of communication. In addition to this capability, its primary function is to export these metrics to Prometheus, thus allowing the creation of meaningful graphs and visualizations.

Kiwfy 3 Sep 21, 2023
Druid Exporter plays a fundamental role as a receiver of metrics events coming from Druid clusters, adopting the HTTP format as a means of communication.

Druid Exporter plays a fundamental role as a receiver of metrics events coming from Druid clusters, adopting the HTTP format as a means of communication. In addition to this capability, its primary function is to export these metrics to Prometheus, thus allowing the creation of meaningful graphs and visualizations.

Not Empty Free Software Foundation 5 Oct 24, 2023
A copy of ziad87 "very stupid thing" (rip). Now in v2: Electric Boogaloo

IPv6-Place-v2 A re-implementation of ziad87's awesome "Place: IPv6" site. Written in Rust with Axum using Server-Sent-Events for the fun instead of WS

Server Scanning Inc. 4 Jun 6, 2023
⏱ Cross-platform Prometheus style process metrics collector of metrics crate

⏱ metrics-process This crate provides Prometheus style process metrics collector of metrics crate for Linux, macOS, and Windows. Collector code is man

Alisue 12 Dec 16, 2022
DHCP Server programmed in rust with zero dependencies and unsafe.

RustyDHCP A simple and zero-dependency DHCP server written in Rust, with credit to Richard Warburton for contributions to parts of the code. Features

null 53 Nov 6, 2023
Drop-in proxy for Discord gateway connections and sessions allowing for zero downtime deploys

gateway-proxy This is a very hacky project, so it might stop working if Discord changes their API core. This is unlikely, but keep that in mind while

Jens Reidel 39 Nov 26, 2022
Zero-Trust Decentralized Package Network

Zero-Trust Decentralized Package Network Current Development Phase ?? We are looking for your feedback! This project is currently in the "sandbox" ??️

Pyrsia 240 Jan 3, 2023
A pure Rust implementation of WebRTC API

A pure Rust implementation of WebRTC API

WebRTC.rs 2.7k Jan 7, 2023
Backroll is a pure Rust implementation of GGPO rollback networking library.

backroll-rs Backroll is a pure Rust implementation of GGPO rollback networking library. Development Status This is still in an untested alpha stage. A

Hourai Teahouse 273 Dec 28, 2022
rseip (eip-rs) - EtherNet/IP in pure Rust

rseip rseip (eip-rs) - EtherNet/IP in pure Rust Features Pure Rust Library Asynchronous Extensible Explicit Messaging (Connected / Unconnected) Open S

joylei 18 Dec 27, 2022
Pure rust mqtt cilent

NOTE: Archived. No further development under this repo. Follow progress of a different implementation here Pure rust MQTT client which strives to be s

Ather Energy Pvt Ltd 201 Dec 2, 2022
Grow Rust is a Growtopia Private Server made in Rust

Grow Rust is a Growtopia Private Server made in Rust

null 14 Dec 7, 2022
Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo workspace

ra-multiplex   Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo wor

max 95 Dec 29, 2022
DNS Server written in Rust for fun, see https://dev.to/xfbs/writing-a-dns-server-in-rust-1gpn

DNS Fun Ever wondered how you can write a DNS server in Rust? No? Well, too bad, I'm telling you anyways. But don't worry, this is going to be a fun o

Patrick Elsen 26 Jan 13, 2023
Rust crate for configurable parallel web crawling, designed to crawl for content

url-crawler A configurable parallel web crawler, designed to crawl a website for content. Changelog Docs.rs Example extern crate url_crawler; use std:

Pop!_OS 56 Aug 22, 2021