Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#2] Set version to 0.1.0 #38

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,26 +33,26 @@ license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/eclipse-iceoryx/iceoryx2"
rust-version = "1.72.1"
version = "0.0.5"
version = "0.1.0"

[workspace.dependencies]
iceoryx2-bb-threadsafe = { version = "0.0.5", path = "iceoryx2-bb/threadsafe/" }
iceoryx2-bb-lock-free = { version = "0.0.5", path = "iceoryx2-bb/lock-free/" }
iceoryx2-bb-container = { version = "0.0.5", path = "iceoryx2-bb/container/" }
iceoryx2-bb-elementary = { version = "0.0.5", path = "iceoryx2-bb/elementary/" }
iceoryx2-bb-log = { version = "0.0.5", path = "iceoryx2-bb/log/" }
iceoryx2-bb-memory = { version = "0.0.5", path = "iceoryx2-bb/memory/" }
iceoryx2-bb-posix = { version = "0.0.5", path = "iceoryx2-bb/posix/" }
iceoryx2-bb-system-types = { version = "0.0.5", path = "iceoryx2-bb/system-types/" }
iceoryx2-bb-testing = { version = "0.0.5", path = "iceoryx2-bb/testing/" }
iceoryx2-bb-threadsafe = { version = "0.1.0", path = "iceoryx2-bb/threadsafe/" }
iceoryx2-bb-lock-free = { version = "0.1.0", path = "iceoryx2-bb/lock-free/" }
iceoryx2-bb-container = { version = "0.1.0", path = "iceoryx2-bb/container/" }
iceoryx2-bb-elementary = { version = "0.1.0", path = "iceoryx2-bb/elementary/" }
iceoryx2-bb-log = { version = "0.1.0", path = "iceoryx2-bb/log/" }
iceoryx2-bb-memory = { version = "0.1.0", path = "iceoryx2-bb/memory/" }
iceoryx2-bb-posix = { version = "0.1.0", path = "iceoryx2-bb/posix/" }
iceoryx2-bb-system-types = { version = "0.1.0", path = "iceoryx2-bb/system-types/" }
iceoryx2-bb-testing = { version = "0.1.0", path = "iceoryx2-bb/testing/" }

iceoryx2-pal-concurrency-sync = { version = "0.0.5", path = "iceoryx2-pal/concurrency-sync/" }
iceoryx2-pal-posix = { version = "0.0.5", path = "iceoryx2-pal/posix/" }
iceoryx2-pal-configuration = { version = "0.0.5", path = "iceoryx2-pal/configuration/" }
iceoryx2-pal-concurrency-sync = { version = "0.1.0", path = "iceoryx2-pal/concurrency-sync/" }
iceoryx2-pal-posix = { version = "0.1.0", path = "iceoryx2-pal/posix/" }
iceoryx2-pal-configuration = { version = "0.1.0", path = "iceoryx2-pal/configuration/" }

iceoryx2-cal = { version = "0.0.5", path = "iceoryx2-cal" }
iceoryx2-cal = { version = "0.1.0", path = "iceoryx2-cal" }

iceoryx2 = { version = "0.0.5", path = "iceoryx2/" }
iceoryx2 = { version = "0.1.0", path = "iceoryx2/" }

bindgen = { version = "0.65.1" }
bitflags = { version = "1.3.2" }
Expand Down
59 changes: 31 additions & 28 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
# Roadmap

## Milestones
## Moonshots

* [ ] d-bus replacement
* [ ] `#![no_std]` on `nightly` on the unix platform
* [ ] `#![no_std]` on `stable` on the unix platform
* [ ] high performance d-bus alternative (thanks to true zero-copy)
* [ ] `#![no_std]` on `nightly` on all tier 1 platforms
* [ ] `#![no_std]` on `stable` on all tier 1 platforms
* [ ] completely dynamic setup with dynamic shared memory

## Language Bindings

* [ ] C / C++
* [ ] Python
* [ ] C
* [ ] C++
* [ ] Lua
* [ ] Python
* [ ] Zig

## Building Blocks
Expand All @@ -22,18 +24,26 @@
## Gateways

* [ ] Host2Host Communication based on <https://github.com/smoltcp-rs/smoltcp>
* [ ] zbus
* [ ] sommr
* [ ] data-rs
* [ ] rustdds
* [ ] mqtt (rumqtt)
* [ ] dds (rustdds or dustdds)
* [ ] zenoh
* [ ] rumqtt
* [ ] someip (maybe sommr)
* [ ] dbus (zbus)

## Microservices
## Microservices (Quality of Life Improvements)

### Iceoryx Tooling

* [ ] Service Discovery
* [ ] Health Monitor
* [ ] Introspection Service
* [ ] Process Monitor (process can register and cleans up resources when process dies)
* [ ] Health Monitor
* [ ] Basic command line introspection tooling
* [ ] Tooling for advanced introspection, cool WebGUI
* [ ] Command line client as interface to microservices

### Tools and Gadgets

* [ ] System Monitor (show CPU load etc. like top)

## Communication
Expand All @@ -48,14 +58,17 @@
* [ ] PubSub, ReqRes, Pipeline variant that works with copies (poor mans mixed criticality)
* [ ] Zero-copy GPU communication with Cuda, NvSci, Vulkan
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zmostafa this might be interesting for you ;)

* [ ] Zero-copy across hypervisor partitions
* [ ] Zero-copy via QEmu ivshmem: <https://www.qemu.org/docs/master/system/devices/ivshmem.html>
* [ ] Zero-copy via QEMU ivshmem: <https://www.qemu.org/docs/master/system/devices/ivshmem.html>
* [ ] Support dynamic sized types in a memory efficient manner
* Buddy allocator for sender data-segment
* Introduce runtime fixed-size types

## Robustness

* [ ] Add ability to recover samples when subscriber died
* add sample tracker into ZeroCopyConnection
* add detection when subscriber returns non-received samples
* [ ] Huge Communication Setup Support
* [ ] Large Communication Setup Support
* handle the restriction of a max amount of posix shared memory objects of an OS
* add `iceoryx2_cal` implementations that are using the `SharedMemoryGroup`

Expand Down Expand Up @@ -84,12 +97,6 @@
* [ ] ROS2 rmw binding
* [ ] dora-rs integration

## Tooling

* [ ] Basic command line introspection tooling
* [ ] Tooling for advanced introspection, cool WebGUI
* [ ] command line client as interface to microservices

## Safety & Security

* [ ] Mixed Criticallity setup, e.g. applications do not interfer with each other
Expand All @@ -99,22 +106,18 @@

## Development

* [ ] Tracing integration for advanced performance measurements, see google chrome chrome://tracing/ and flame graphs
See lttng, add trace points to the source code on the important functions
* [ ] Tracing integration for advanced performance measurements, see google chrome
chrome://tracing/ and flame graphs
See lttng, add trace points to the source code on the important functions

## Quality Of Life Improvements

* [ ] Evaluate and refactor basic error handling approach based on enums
* all error classes should implement `std::error::Error` for the non `no_std` build (maybe use `thiserror`)
* should be compatible with `anyhow` and `eyre`
* explore error pyramid concept
* [ ] Evaluate crate `log` and `tracing` as backend for iceoryx2 logger
* `log` / `tracing` / `console_logger` one of them should be the default logger, depending on feature flagA
* [ ] Use `&str` and UTF-8 in `ServiceName`, there is no need for a length or ASCII restriction
* [ ] Rename `enable_safe_overflow` into `set_safe_overflow` in `ServiceBuilder` `publish_subscribe`
* or maybe rename it into behavior: queue and ringbuffer, get inspired by crossbeam queues
* [ ] Rename `publisher::loan` into `publisher::loan_uninit` and provide `publisher::loan` with default
constructed type
* [ ] Provide `[T]` (slice) as special transmission type for pub/sub
* `loan_slice`, `loan_uninit_slice` and `loan_uninit_slice_with_alignment`
* [ ] QoS feature for blocking publisher or pub/sub failures to perform custom error handling or expert behavior
Expand Down