|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.
|
agnocast repositoryagnocast_e2e_test agnocast_ioctl_wrapper agnocast_sample_application agnocast_sample_interfaces agnocastlib cie_config_msgs cie_thread_configurator ros2agnocast |
ROS Distro
|
Repository Summary
| Checkout URI | https://github.com/tier4/agnocast.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-11-29 |
| Dev Status | UNMAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| agnocast_e2e_test | 2.1.2 |
| agnocast_ioctl_wrapper | 2.1.2 |
| agnocast_sample_application | 2.1.2 |
| agnocast_sample_interfaces | 2.1.2 |
| agnocastlib | 2.1.2 |
| cie_config_msgs | 0.0.0 |
| cie_thread_configurator | 0.0.0 |
| ros2agnocast | 2.1.2 |
README
ROS 2 Agnocast
An rclcpp-compatible true zero-copy IPC middleware that supports all ROS message types, including message structs already generated by rosidl.
This middleware is based on the following paper and the corresponding prototype. The paper has been accepted to IEEE ISORC 2025 (pdf).
- T. Ishikawa–Aso and S. Kato, “ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC,” in Proc. 28th Int. Symp. Real-Time Distributed Computing (ISORC), 2025, pp. 1–10.
BibTeX
```bibtex @inproceedings{ishikawa2025ros, title={ROS 2 Agnocast: Supporting Unsized Message Types for True Zero-Copy Publish/Subscribe IPC}, author={Ishikawa--Aso, Takahiro and Kato, Shinpei}, booktitle={2025 28th International Symposium on Real-Time Distributed Computing (ISORC)}, pages={01--10}, year={2025}, organization={IEEE} } ```Table of Contents
Supported Environments
Agnocast is currently available in the following environments. This reflects the current status, and support is expected to expand in the future.
| Category | Supported Versions / Notes |
|---|---|
| ROS 2 | Humble (only with rclcpp client library) |
| Linux Distribution | Ubuntu 22.04 (Jammy Jellyfish) |
| Linux Kernel | 5.x / 6.x series (detailed version matrix not yet available) |
The ROS 2 Jazzy–compatible release is scheduled for late February 2026.
For Users
Clone the repository
Since ROS packages under src/ such as agnocastlib are not yet distributed from the ROS build farm, a source build is currently required.
Therefore, to perform the source build, first check out the specific version as follows:
git clone --branch v2.1.2 https://github.com/tier4/agnocast.git
cd agnocast
Setup
Run the setup script to install dependencies:
bash scripts/setup
Manual installation of agnocast-heaphook and agnocast-kmod
If you prefer to install the packages manually instead of using the setup script: ```bash # Create keyrings directory sudo install -d -m 0755 /etc/apt/keyrings # Download and install GPG key curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xCFDB1950382092423DF37D3E075CD8B5C91E5ACA' \ | gpg --dearmor | sudo tee /etc/apt/keyrings/agnocast-ppa.gpg >/dev/null sudo chmod 0644 /etc/apt/keyrings/agnocast-ppa.gpg # Create repository configuration (deb822 format) cat <<EOF | sudo tee /etc/apt/sources.list.d/agnocast.sources Types: deb URIs: http://ppa.launchpad.net/t4-system-software/agnocast/ubuntu Suites: jammy Components: main Signed-By: /etc/apt/keyrings/agnocast-ppa.gpg EOF File truncated at 100 lines [see the full file](https://github.com/tier4/agnocast/tree/main/README.md)CONTRIBUTING
Contributing to Agnocast
Thank you for your interest in contributing to Agnocast!
Pull Request Requirements
Version Update Labels (Required)
Every pull request must have exactly one of the following labels:
-
need-major-update: User API breaking changes - requires MAJOR version update -
need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility) - requires MINOR version update -
need-patch-update: Bug fixes and other changes - requires PATCH version update
Important notes:
- PRs without a version label or with multiple version labels will not be mergeable due to automated checks.
-
PR Title Convention: If you need
need-major-updateorneed-minor-update, please include this in the PR title as well.- Example:
fix(foo)[needs major version update]: bar - Example:
feat(baz)[needs minor version update]: qux
- Example:
-
Build Test Requirement: After receiving approval from reviewers, add the
run-build-testlabel. The PR can only be merged after the build tests pass.
Versioning Rules
Agnocast follows a modified semantic versioning scheme:
MAJOR version (need-major-update)
Increment when you make breaking changes to the User API.
Examples:
- Changing public API function signatures
- Removing or renaming user-facing APIs
- Modifying behavior that affects users of the library
MINOR version (need-minor-update)
Increment when you make breaking changes to internal APIs or component compatibility.
This includes changes that affect compatibility between:
- heaphook
- kmod
- agnocastlib
Examples:
- Removing or renaming ioctl commands
- Modifying data structures used in ioctl interfaces
- Changing shared data structures between heaphook/kmod/agnocastlib
- Breaking changes to internal APIs not exposed to end users
PATCH version (need-patch-update)
Increment for bug fixes and other changes that don’t fall into the above categories.
Examples:
- Bug fixes
- Documentation updates
- Performance improvements (without API changes)
- Refactoring (without API changes)
- Test additions or improvements
Testing Requirements
Before submitting a PR, please ensure the following tests pass:
- Autoware (required)
-
bash scripts/e2e_test_1to1_with_ros2sub(required) -
bash scripts/e2e_test_2to2(required) - kunit tests (required when modifying the kernel module)
Questions?
If you’re unsure which version label to use, feel free to ask in the PR comments or open a discussion.