- Full C/C++ Language bindings for all features #264
- Read LogLevel from environment variable #396
- Add Request-Response messaging pattern #429
- Lookup config file in default locations #442
- Introduce
socket_pair
abstraction in POSIX wrapper #508 - Introduce
socket_pair
event concept #508 - Deadline property for event services #573
- Use 'std_instead_of_core' clippy warning #579
- Use 'std_instead_of_alloc' and 'alloc_instead_of_core' clippy warning #581
- Introduce platform abstraction based on the 'libc' crate #604
- Extend benchmarks to test setups with multiple sending/receiving ports #610
- Reduce iceoryx2 dependencies #640
- Allow customizable payload and user header type name in C++ binding #643
- Expose set_log_level_from_env* APIs to C++ #653
- Add benchmark for request-response #687
- Corrupted services are removed when they are part of a dead node #458
- Remove stale shm state files in Windows #458
- Make process local services truly process local by using socket pairs for events #508
- Completion queue capacity exceeded when history > buffer #571
- Increase max supported shared memory size in Windows that restricts the maximum supported payload size #575
- Undefined behavior due to ZeroCopyConnection removal when stale resources are cleaned up #596
- Remove
SIGPOLL
that lead to compile issues on older glibc versions. Fix issue where fatal signals are generated with non-fatal values. #605 - LogLevel is considered for custom loggers. #608
- Allow missing legal characters in system type for user- and group-name #677
- Fix
wait_and_process_once_with_timeout
deadlock #695 - Fix Miri issues with MetaVec due to temporary borrow #682
- Remove the
print_system_configuration()
function iniceoryx2-bb/posix/src/system_configuration.rs
file and move it into the CLIiox2-config
#432 - Remove obsolete POSIX wrapper #594
- Updated all dependencies and increased MSRV to 1.81 #638
- Reduce indentation in
main.rs
of CLI binaries #646 - Improve naming in
AttributeSet
methods andServiceId
#697
-
Add requirement that every payload and user header type must implement
ZeroCopySend
for type safe shared memory usage #602// old #[repr(C)] pub struct TransmissionData { // ... } #[repr(C)] pub struct CustomHeader { // ... } let service = node .service_builder(&"ServiceName".try_into()?) .publish_subscribe::<TransmissionData>() .user_header::<CustomHeader>() .open_or_create()?; // new #[derive(ZeroCopySend)] #[repr(C)] pub struct TransmissionData { // ... } #[derive(ZeroCopySend)] #[repr(C)] pub struct CustomHeader { // ... } let service = node .service_builder(&"ServiceName".try_into()?) .publish_subscribe::<TransmissionData>() .user_header::<CustomHeader>() .open_or_create()?;
-
Renamed
PublisherLoanError
intoLoanError
// old let sample = match publisher.loan() { Ok(sample) => sample, Err(PublisherLoanError::OutOfMemory) => handle_error(), // ... }; // new let sample = match publisher.loan() { Ok(sample) => sample, Err(LoanError::OutOfMemory) => handle_error(), // ... };
-
Renamed
PublisherSendError
intoSendError
// old match sample.send() { Ok(n) => println!("send data to {n} subscribers"), Err(PublisherSendError::ConnectionCorrupted) => handle_error(), // ... }; // new match sample.send() { Ok(n) => println!("send data to {n} subscribers"), Err(SendError::ConnectionCorrupted) => handle_error(), // ... };
-
Renamed
SubscriberReceiveError
intoReceiveError
// old match subscriber.receive() { Ok(sample) => println!("received: {:?}", *sample), Err(SubscriberReceiveError::ExceedsMaxBorrowedSamples) => handle_error(), // ... } // new match subscriber.receive() { Ok(sample) => println!("received: {:?}", *sample), Err(ReceiveError::ExceedsMaxBorrowedSamples) => handle_error(), // ... }
-
Renamed
PublisherSendError::ConnectionBrokenSincePublisherNoLongerExists
intoSendError::ConnectionBrokenSinceSenderNoLongerExists
-
Renamed
ConnectionFailure::UnableToMapPublishersDataSegment
intoConnectionFailure::UnableToMapSendersDataSegment
-
Renamed
AttributeSet::len()
intoAttributeSet::number_of_attributes()
-
Renamed
AttributeSet::get_key_value_len()
intoAttributeSet::number_of_key_values()
-
Renamed
AttributeSet::get_key_value_at()
intoAttributeSet::key_value()
-
Renamed
AttributeSet::get_key_values()
intoAttributeSet::iter_key_values()
-
Renamed
ServiceId::max_len()
intoServiceId::max_number_of_characters()