Skip to content

Commit b578e73

Browse files
committed
[eclipse-iceoryx#4] Update roadmap
1 parent df775df commit b578e73

File tree

2 files changed

+48
-34
lines changed

2 files changed

+48
-34
lines changed

ROADMAP.md

+47-34
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,37 @@
11
# Roadmap
22

3-
## v0.5
3+
## v0.6
44

55
### Main Focus
66

7-
* [ ] (Waitset), event multiplexing and advanced push notifications
8-
* [ ] Finalize C and C++ API
9-
* [ ] Fully dynamic payload for pub/sub
10-
* [ ] ROS 2 rmw binding
11-
* [ ] Health monitoring
12-
* [ ] Reliability features for pub/sub
7+
The list is sorted by priority
8+
9+
* [ ] Request/Response
10+
* [ ] Zenoh Gateway
11+
* [ ] Finalize C and C++ API (still some tiny things open)
12+
* [ ] Add `libc` based platform for better cross-compilation support
13+
* [ ] `#![no_std]` for low-level crates
14+
* [ ] Finish ROS 2 rmw binding (requires request/response)
1315

1416
### Bonus
1517

18+
The list is sorted by priority
19+
1620
* [ ] Derive macro for SHM transferable types
21+
* [ ] proof of concept with <https://github.com/rkyv/rkyv>
1722
* [ ] `serde`-based shm serialization to transmit arbitrary types
18-
* [ ] Request/Response
1923

20-
## Moonshots
24+
## Backlog
25+
26+
### Moonshots
2127

2228
* [ ] high performance d-bus alternative (thanks to true zero-copy)
2329
* [ ] `#![no_std]` on `nightly` on all tier 1 platforms
2430
* [ ] `#![no_std]` on `stable` on all tier 1 platforms
25-
* [ ] completely dynamic setup with dynamic shared memory
31+
* [x] completely dynamic setup with dynamic shared memory
2632
* [ ] iceoryx on a rover on the moon
2733

28-
## Shared Memory Container & Types
34+
### Shared Memory Container & Types
2935

3036
* [ ] Make `iceoryx2_bb_container` public with announcement
3137
* [ ] Create and document dynamic size container concept for shared memory and
@@ -38,22 +44,26 @@
3844
* [ ] Add `derive` proc macro to ensure that only shm compatible types can be
3945
transferred via zero-copy
4046

41-
## Language Bindings
47+
### Language Bindings
4248

4349
* [x] C
4450
* [x] C++
45-
* [ ] Lua
4651
* [ ] Python
52+
* [ ] Swift
53+
* [ ] Kotlin
54+
* [ ] Typescript
55+
* [ ] Lua
4756
* [ ] Zig
57+
* [ ] C#
4858

49-
## Building Blocks
59+
### Building Blocks
5060

51-
* [ ] WaitSet - event multiplexer based on reactor pattern
61+
* [x] WaitSet - event multiplexer based on reactor pattern
5262
* [ ] Introduce trait and proc macro to generate types that can be sent via
5363
shared memory
5464
* ensure that only these types are used for inter-process communication
5565

56-
## Gateways
66+
### Gateways
5767

5868
* [ ] Host2Host Communication based on <https://github.com/smoltcp-rs/smoltcp>
5969
* [ ] mqtt (rumqtt)
@@ -62,9 +72,9 @@
6272
* [ ] someip (maybe sommr)
6373
* [ ] dbus (zbus)
6474

65-
## Microservices (Quality of Life Improvements)
75+
### Microservices (Quality of Life Improvements)
6676

67-
### iceoryx Tooling
77+
#### iceoryx Tooling
6878

6979
* [ ] Service Discovery
7080
* [ ] Introspection Service
@@ -75,11 +85,11 @@
7585
* [ ] Tooling for advanced introspection, cool WebGUI
7686
* [ ] Command line client as interface to microservices
7787

78-
### Tools and Gadgets
88+
#### Tools and Gadgets
7989

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

82-
## Communication
92+
### Communication
8393

8494
* [x] publish subscribe
8595
* [x] events
@@ -104,13 +114,13 @@
104114
* Introduce runtime fixed-size types
105115
* [x] Untyped API
106116

107-
## Expert/Advanced Features
117+
### Expert/Advanced Features
108118

109119
* [ ] Filtering/Routing of messages in pub-sub
110120
* [ ] Handle approach to resend samples that could not be delivered caused by a
111121
full queue in pub-sub
112122

113-
## Robustness
123+
### Robustness
114124

115125
* [X] Node as basis for monitoring and resource cleanup
116126
* [ ] Add ability to recover samples when subscriber died
@@ -121,7 +131,7 @@
121131
OS
122132
* add `iceoryx2_cal` implementations that are using the `SharedMemoryGroup`
123133

124-
## Platform Support
134+
### Platform Support
125135

126136
* [ ] Android
127137
* [x] Linux
@@ -132,36 +142,39 @@
132142
* [x] FreeBSD
133143
* [ ] FreeRTOS
134144
* [ ] QNX
145+
* [ ] VxWorks
146+
* [ ] BareMetal
147+
* [ ] Sandbox Mode (only process internal communication)
135148

136-
## Hardware Support
149+
### Hardware Support
137150

138151
* [x] x86_64
139152
* [x] aarch64
140153
* [ ] armv7
141154
* [ ] x32
142155
* [ ] risc-v
143156

144-
## Framework Integration
157+
### Framework Integration
145158

146159
* [ ] ROS2 rmw binding
147160
* [ ] dora-rs integration
148161

149-
## Safety & Security
162+
### Safety & Security
150163

151-
* [ ] Mixed Criticallity setup, e.g. applications do not interfer with each
164+
* [ ] Mixed Criticality setup, e.g. applications do not interfere with each
152165
other
153-
* [ ] Sample Tracking when application crashes
166+
* [x] Sample Tracking when application crashes
154167
* [ ] Identity and Access Management, e.g. service that create additional
155168
services
156169
* [ ] Use Kani, Loom and Miri for tests of lock-free constructs
157170

158-
## Development
171+
### Development
159172

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

164-
## Quality Of Life Improvements
177+
### Quality Of Life Improvements
165178

166179
* [ ] Evaluate and refactor basic error handling approach based on enums
167180
* all error classes should implement `std::error::Error` for the non `no_std`
@@ -172,20 +185,20 @@
172185
`publish_subscribe`
173186
* or maybe rename it into behavior: queue and ringbuffer, get inspired by
174187
crossbeam queues
175-
* [ ] Provide `[T]` (slice) as special transmission type for pub/sub
188+
* [x] Provide `[T]` (slice) as special transmission type for pub/sub
176189
* `loan_slice`, `loan_uninit_slice` and `loan_uninit_slice_with_alignment`
177190
* [ ] QoS feature for blocking publisher or pub/sub failures to perform custom
178191
error handling or expert behavior
179192
* explore implementation as trait
180193
* explore implementation as callback
181-
* [ ] Explore if it is useful to have the same service name for different
194+
* [x] Explore if it is useful to have the same service name for different
182195
messaging patterns
183196
* separate them via internal suffix/prefix
184197
* simple use case: pub/sub + event to notify subscriber to notify sample send
185198
* would reduce error handling: connect to service with wrong messaging pattern
186-
* [ ] Implement Resizable SharedMemoryConcept that is able to extend the shared
199+
* [x] Implement Resizable SharedMemoryConcept that is able to extend the shared
187200
memory by adding additional POSIX shared memory objects
188201

189-
## Integration Into Other Projects
202+
### Integration Into Other Projects
190203

191204
* [ ] Maybe Hyprland

doc/how-to-create-an-iceoryx2-release.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
1. Write release announcement blog article
66
2. Write LinkedIn post
77
3. Write reddit/hacker news post
8+
4. Update the `ROADMAP.md` document
89

910
### Article Templates
1011

0 commit comments

Comments
 (0)