Repository Summary
| Description | Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. |
| Checkout URI | https://github.com/ros-tooling/topic_tools.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-08-13 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| topic_tools | 1.1.1 |
| topic_tools_interfaces | 1.1.1 |
README
topic_tools
This package is the ROS 2 port of https://wiki.ros.org/topic_tools
Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. These tools do not generally perform serialization on the streams being manipulated, instead acting on generic binary data using rclcpp’s GenericPublisher and GenericSubscription.
The tools in this package are provided as composable ROS 2 component nodes, so that they can be spawned into an existing process, launched from launchfiles, or invoked from the command line.
Components
- Relay: Subscribes to a topic and republishes to another.
- RelayField: Republishes data in a different message type.
- Transform: Manipulates a topic or a field and outputs data on another topic.
- Throttle: Republishes data with bandwidth or rate limit.
- Drop: Republishes by dropping X out of every Y incoming messages.
- Mux: Multiplexes incoming topics to an output.
- Delay: Delays and republishes incoming data.
Relay
Relay is ROS 2 node that subscribes to a topic and republishes all incoming data to another topic. It can work with any message type.
Usage
ros2 run topic_tools relay <intopic> [outtopic]
Subscribe to intopic and republish to either
-
outtopicif specified -
<intopic>_relayif not
E.g. rename base_scan to my_base_scan:
ros2 run topic_tools relay base_scan my_base_scan
Parameters
-
input_topic(string)- the same as if provided as a command line argument
-
output_topic(string, default=<input_topic>_relay)- the same as if provided as a command line argument
-
lazy(bool, default=False)- If True, only subscribe to
input_topicif there is at least one subscriber on theoutput_topic
- If True, only subscribe to
RelayField
RelayField is a ROS 2 node that allows to republish data in a different message type.
Usage
ros2 run topic_tools relay_field <input topic> <output topic> <output type> [<expression on m>]
Subscribe to input topic and republish one or many of its fields onto another field in a different message type
E.g. publish the contents of the data field in a std_msgs/msg/String onto the frame_id field of a std_msgs/msg/Header:
ros2 run topic_tools relay_field /chatter /header std_msgs/Header "{stamp: {sec: 0, nanosec: 0}, frame_id: m.data}"
Transform
Transform is a ROS 2 node that allows to take a topic or one of it fields and output it on another topic.
Usage
ros2 run topic_tools transform <input topic> <output topic> <output type> [<expression on m>] [--import <modules>] [--field <topic_field>]
Subscribe to input topic and convert topic content or its field into
-
output topicwhose type isoutput typebased onexpression on m
E.g. transform imu orientation to norm:
ros2 run topic_tools transform /imu --field orientation /norm std_msgs/Float64 'std_msgs.msg.Float64(data=numpy.sqrt(numpy.sum(numpy.array([m.x, m.y, m.z, m.w]))))' --import std_msgs numpy
Throttle
Throttle is ROS 2 node that subscribes to a topic and republishes incoming data to another topic, either at a maximum bandwidth or maximum message rate.
Usage
throttle message (rate)
ros2 run topic_tools throttle messages <intopic> <msgs_per_sec> [outtopic]
Throttle messages on intopic to a particular rate.
-
intopic: Incoming topic to subscribe to -
msgs_per_sec: Maximum messages per second to let through. -
outtopic: Outgoing topic to publish on (default: intopic_throttle)
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Description | Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. |
| Checkout URI | https://github.com/ros-tooling/topic_tools.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-08-13 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| topic_tools | 1.3.3 |
| topic_tools_interfaces | 1.3.3 |
README
topic_tools
This package is the ROS 2 port of https://wiki.ros.org/topic_tools
Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. These tools do not generally perform serialization on the streams being manipulated, instead acting on generic binary data using rclcpp’s GenericPublisher and GenericSubscription.
The tools in this package are provided as composable ROS 2 component nodes, so that they can be spawned into an existing process, launched from launchfiles, or invoked from the command line.
Components
- Relay: Subscribes to a topic and republishes to another.
- RelayField: Republishes data in a different message type.
- Transform: Manipulates a topic or a field and outputs data on another topic.
- Throttle: Republishes data with bandwidth or rate limit.
- Drop: Republishes by dropping X out of every Y incoming messages.
- Mux: Multiplexes incoming topics to an output.
- Demux: Demultiplexes an incoming topic to one of multiple outputs
- Delay: Delays and republishes incoming data.
Relay
Relay is ROS 2 node that subscribes to a topic and republishes all incoming data to another topic. It can work with any message type.
Usage
ros2 run topic_tools relay <intopic> [outtopic]
Subscribe to intopic and republish to either
-
outtopicif specified -
<intopic>_relayif not
E.g. rename base_scan to my_base_scan:
ros2 run topic_tools relay base_scan my_base_scan
Parameters
-
input_topic(string)- the same as if provided as a command line argument
-
output_topic(string, default=<input_topic>_relay)- the same as if provided as a command line argument
-
lazy(bool, default=False)- If True, only subscribe to
input_topicif there is at least one subscriber on theoutput_topic
- If True, only subscribe to
RelayField
RelayField is a ROS 2 node that allows to republish data in a different message type.
Usage
ros2 run topic_tools relay_field <input topic> <output topic> <output type> [<expression on m>]
Subscribe to input topic and republish one or many of its fields onto another field in a different message type
E.g. publish the contents of the data field in a std_msgs/msg/String onto the frame_id field of a std_msgs/msg/Header:
ros2 run topic_tools relay_field /chatter /header std_msgs/Header "{stamp: {sec: 0, nanosec: 0}, frame_id: m.data}"
Transform
Transform is a ROS 2 node that allows to take a topic or one of it fields and output it on another topic.
Usage
ros2 run topic_tools transform <input topic> <output topic> <output type> [<expression on m>] [--import <modules>] [--field <topic_field>]
Subscribe to input topic and convert topic content or its field into
-
output topicwhose type isoutput typebased onexpression on m
E.g. transform imu orientation to norm:
ros2 run topic_tools transform /imu --field orientation /norm std_msgs/Float64 'std_msgs.msg.Float64(data=numpy.sqrt(numpy.sum(numpy.array([m.x, m.y, m.z, m.w]))))' --import std_msgs numpy
Throttle
Throttle is ROS 2 node that subscribes to a topic and republishes incoming data to another topic, either at a maximum bandwidth or maximum message rate.
Usage
throttle message (rate)
ros2 run topic_tools throttle messages <intopic> <msgs_per_sec> [outtopic]
Throttle messages on intopic to a particular rate.
-
intopic: Incoming topic to subscribe to -
msgs_per_sec: Maximum messages per second to let through.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Description | Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. |
| Checkout URI | https://github.com/ros-tooling/topic_tools.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2025-08-14 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| topic_tools | 1.4.3 |
| topic_tools_interfaces | 1.4.3 |
README
topic_tools
This package is the ROS 2 port of https://wiki.ros.org/topic_tools
Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. These tools do not generally perform serialization on the streams being manipulated, instead acting on generic binary data using rclcpp’s GenericPublisher and GenericSubscription.
The tools in this package are provided as composable ROS 2 component nodes, so that they can be spawned into an existing process, launched from launchfiles, or invoked from the command line.
Components
- Relay: Subscribes to a topic and republishes to another.
- RelayField: Republishes data in a different message type.
- Transform: Manipulates a topic or a field and outputs data on another topic.
- Throttle: Republishes data with bandwidth or rate limit.
- Drop: Republishes by dropping X out of every Y incoming messages.
- Mux: Multiplexes incoming topics to an output.
- Demux: Demultiplexes an incoming topic to one of multiple outputs
- Delay: Delays and republishes incoming data.
Relay
Relay is ROS 2 node that subscribes to a topic and republishes all incoming data to another topic. It can work with any message type.
Usage
ros2 run topic_tools relay <intopic> [outtopic]
Subscribe to intopic and republish to either
-
outtopicif specified -
<intopic>_relayif not
E.g. rename base_scan to my_base_scan:
ros2 run topic_tools relay base_scan my_base_scan
Parameters
-
input_topic(string)- the same as if provided as a command line argument
-
output_topic(string, default=<input_topic>_relay)- the same as if provided as a command line argument
-
lazy(bool, default=False)- If True, only subscribe to
input_topicif there is at least one subscriber on theoutput_topic
- If True, only subscribe to
RelayField
RelayField is a ROS 2 node that allows to republish data in a different message type.
Usage
ros2 run topic_tools relay_field <input topic> <output topic> <output type> [<expression on m>]
Subscribe to input topic and republish one or many of its fields onto another field in a different message type
E.g. publish the contents of the data field in a std_msgs/msg/String onto the frame_id field of a std_msgs/msg/Header:
ros2 run topic_tools relay_field /chatter /header std_msgs/Header "{stamp: {sec: 0, nanosec: 0}, frame_id: m.data}"
Transform
Transform is a ROS 2 node that allows to take a topic or one of it fields and output it on another topic.
Usage
ros2 run topic_tools transform <input topic> <output topic> <output type> [<expression on m>] [--import <modules>] [--field <topic_field>]
Subscribe to input topic and convert topic content or its field into
-
output topicwhose type isoutput typebased onexpression on m
E.g. transform imu orientation to norm:
ros2 run topic_tools transform /imu --field orientation /norm std_msgs/Float64 'std_msgs.msg.Float64(data=numpy.sqrt(numpy.sum(numpy.array([m.x, m.y, m.z, m.w]))))' --import std_msgs numpy
Throttle
Throttle is ROS 2 node that subscribes to a topic and republishes incoming data to another topic, either at a maximum bandwidth or maximum message rate.
Usage
throttle message (rate)
ros2 run topic_tools throttle messages <intopic> <msgs_per_sec> [outtopic]
Throttle messages on intopic to a particular rate.
-
intopic: Incoming topic to subscribe to -
msgs_per_sec: Maximum messages per second to let through.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Description | Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. |
| Checkout URI | https://github.com/ros-tooling/topic_tools.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2025-08-14 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| topic_tools | 1.4.3 |
| topic_tools_interfaces | 1.4.3 |
README
topic_tools
This package is the ROS 2 port of https://wiki.ros.org/topic_tools
Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. These tools do not generally perform serialization on the streams being manipulated, instead acting on generic binary data using rclcpp’s GenericPublisher and GenericSubscription.
The tools in this package are provided as composable ROS 2 component nodes, so that they can be spawned into an existing process, launched from launchfiles, or invoked from the command line.
Components
- Relay: Subscribes to a topic and republishes to another.
- RelayField: Republishes data in a different message type.
- Transform: Manipulates a topic or a field and outputs data on another topic.
- Throttle: Republishes data with bandwidth or rate limit.
- Drop: Republishes by dropping X out of every Y incoming messages.
- Mux: Multiplexes incoming topics to an output.
- Demux: Demultiplexes an incoming topic to one of multiple outputs
- Delay: Delays and republishes incoming data.
Relay
Relay is ROS 2 node that subscribes to a topic and republishes all incoming data to another topic. It can work with any message type.
Usage
ros2 run topic_tools relay <intopic> [outtopic]
Subscribe to intopic and republish to either
-
outtopicif specified -
<intopic>_relayif not
E.g. rename base_scan to my_base_scan:
ros2 run topic_tools relay base_scan my_base_scan
Parameters
-
input_topic(string)- the same as if provided as a command line argument
-
output_topic(string, default=<input_topic>_relay)- the same as if provided as a command line argument
-
lazy(bool, default=False)- If True, only subscribe to
input_topicif there is at least one subscriber on theoutput_topic
- If True, only subscribe to
RelayField
RelayField is a ROS 2 node that allows to republish data in a different message type.
Usage
ros2 run topic_tools relay_field <input topic> <output topic> <output type> [<expression on m>]
Subscribe to input topic and republish one or many of its fields onto another field in a different message type
E.g. publish the contents of the data field in a std_msgs/msg/String onto the frame_id field of a std_msgs/msg/Header:
ros2 run topic_tools relay_field /chatter /header std_msgs/Header "{stamp: {sec: 0, nanosec: 0}, frame_id: m.data}"
Transform
Transform is a ROS 2 node that allows to take a topic or one of it fields and output it on another topic.
Usage
ros2 run topic_tools transform <input topic> <output topic> <output type> [<expression on m>] [--import <modules>] [--field <topic_field>]
Subscribe to input topic and convert topic content or its field into
-
output topicwhose type isoutput typebased onexpression on m
E.g. transform imu orientation to norm:
ros2 run topic_tools transform /imu --field orientation /norm std_msgs/Float64 'std_msgs.msg.Float64(data=numpy.sqrt(numpy.sum(numpy.array([m.x, m.y, m.z, m.w]))))' --import std_msgs numpy
Throttle
Throttle is ROS 2 node that subscribes to a topic and republishes incoming data to another topic, either at a maximum bandwidth or maximum message rate.
Usage
throttle message (rate)
ros2 run topic_tools throttle messages <intopic> <msgs_per_sec> [outtopic]
Throttle messages on intopic to a particular rate.
-
intopic: Incoming topic to subscribe to -
msgs_per_sec: Maximum messages per second to let through.
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Description | Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. |
| Checkout URI | https://github.com/ros-tooling/topic_tools.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2023-11-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| topic_tools | 1.3.0 |
| topic_tools_interfaces | 1.3.0 |
README
topic_tools
This package is the ROS 2 port of https://wiki.ros.org/topic_tools
Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. These tools do not generally perform serialization on the streams being manipulated, instead acting on generic binary data using rclcpp’s GenericPublisher and GenericSubscription.
The tools in this package are provided as composable ROS 2 component nodes, so that they can be spawned into an existing process, launched from launchfiles, or invoked from the command line.
Components
- Relay: Subscribes to a topic and republishes to another.
- RelayField: Republishes data in a different message type.
- Transform: Manipulates a topic or a field and outputs data on another topic.
- Throttle: Republishes data with bandwidth or rate limit.
- Drop: Republishes by dropping X out of every Y incoming messages.
- Mux: Multiplexes incoming topics to an output.
- Delay: Delays and republishes incoming data.
Relay
Relay is ROS 2 node that subscribes to a topic and republishes all incoming data to another topic. It can work with any message type.
Usage
ros2 run topic_tools relay <intopic> [outtopic]
Subscribe to intopic and republish to either
-
outtopicif specified -
<intopic>_relayif not
E.g. rename base_scan to my_base_scan:
ros2 run topic_tools relay base_scan my_base_scan
Parameters
-
input_topic(string)- the same as if provided as a command line argument
-
output_topic(string, default=<input_topic>_relay)- the same as if provided as a command line argument
-
lazy(bool, default=False)- If True, only subscribe to
input_topicif there is at least one subscriber on theoutput_topic
- If True, only subscribe to
RelayField
RelayField is a ROS 2 node that allows to republish data in a different message type.
Usage
ros2 run topic_tools relay_field <input topic> <output topic> <output type> [<expression on m>]
Subscribe to input topic and republish one or many of its fields onto another field in a different message type
E.g. publish the contents of the data field in a std_msgs/msg/String onto the frame_id field of a std_msgs/msg/Header:
ros2 run topic_tools relay_field /chatter /header std_msgs/Header "{stamp: {sec: 0, nanosec: 0}, frame_id: m.data}"
Transform
Transform is a ROS 2 node that allows to take a topic or one of it fields and output it on another topic.
Usage
ros2 run topic_tools transform <input topic> <output topic> <output type> [<expression on m>] [--import <modules>] [--field <topic_field>]
Subscribe to input topic and convert topic content or its field into
-
output topicwhose type isoutput typebased onexpression on m
E.g. transform imu orientation to norm:
ros2 run topic_tools transform /imu --field orientation /norm std_msgs/Float64 'std_msgs.msg.Float64(data=numpy.sqrt(numpy.sum(numpy.array([m.x, m.y, m.z, m.w]))))' --import std_msgs numpy
Throttle
Throttle is ROS 2 node that subscribes to a topic and republishes incoming data to another topic, either at a maximum bandwidth or maximum message rate.
Usage
throttle message (rate)
ros2 run topic_tools throttle messages <intopic> <msgs_per_sec> [outtopic]
Throttle messages on intopic to a particular rate.
-
intopic: Incoming topic to subscribe to -
msgs_per_sec: Maximum messages per second to let through. -
outtopic: Outgoing topic to publish on (default: intopic_throttle)
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
Repository Summary
| Description | Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. |
| Checkout URI | https://github.com/ros-tooling/topic_tools.git |
| VCS Type | git |
| VCS Version | iron |
| Last Updated | 2023-11-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| topic_tools | 1.2.0 |
| topic_tools_interfaces | 1.2.0 |
README
topic_tools
This package is the ROS 2 port of https://wiki.ros.org/topic_tools
Tools for directing, throttling, selecting, and otherwise manipulating ROS 2 topics at a meta-level. These tools do not generally perform serialization on the streams being manipulated, instead acting on generic binary data using rclcpp’s GenericPublisher and GenericSubscription.
The tools in this package are provided as composable ROS 2 component nodes, so that they can be spawned into an existing process, launched from launchfiles, or invoked from the command line.
Components
- Relay: Subscribes to a topic and republishes to another.
- RelayField: Republishes data in a different message type.
- Transform: Manipulates a topic or a field and outputs data on another topic.
- Throttle: Republishes data with bandwidth or rate limit.
- Drop: Republishes by dropping X out of every Y incoming messages.
- Mux: Multiplexes incoming topics to an output.
- Delay: Delays and republishes incoming data.
Relay
Relay is ROS 2 node that subscribes to a topic and republishes all incoming data to another topic. It can work with any message type.
Usage
ros2 run topic_tools relay <intopic> [outtopic]
Subscribe to intopic and republish to either
-
outtopicif specified -
<intopic>_relayif not
E.g. rename base_scan to my_base_scan:
ros2 run topic_tools relay base_scan my_base_scan
Parameters
-
input_topic(string)- the same as if provided as a command line argument
-
output_topic(string, default=<input_topic>_relay)- the same as if provided as a command line argument
-
lazy(bool, default=False)- If True, only subscribe to
input_topicif there is at least one subscriber on theoutput_topic
- If True, only subscribe to
RelayField
RelayField is a ROS 2 node that allows to republish data in a different message type.
Usage
ros2 run topic_tools relay_field <input topic> <output topic> <output type> [<expression on m>]
Subscribe to input topic and republish one or many of its fields onto another field in a different message type
E.g. publish the contents of the data field in a std_msgs/msg/String onto the frame_id field of a std_msgs/msg/Header:
ros2 run topic_tools relay_field /chatter /header std_msgs/Header "{stamp: {sec: 0, nanosec: 0}, frame_id: m.data}"
Transform
Transform is a ROS 2 node that allows to take a topic or one of it fields and output it on another topic.
Usage
ros2 run topic_tools transform <input topic> <output topic> <output type> [<expression on m>] [--import <modules>] [--field <topic_field>]
Subscribe to input topic and convert topic content or its field into
-
output topicwhose type isoutput typebased onexpression on m
E.g. transform imu orientation to norm:
ros2 run topic_tools transform /imu --field orientation /norm std_msgs/Float64 'std_msgs.msg.Float64(data=numpy.sqrt(numpy.sum(numpy.array([m.x, m.y, m.z, m.w]))))' --import std_msgs numpy
Throttle
Throttle is ROS 2 node that subscribes to a topic and republishes incoming data to another topic, either at a maximum bandwidth or maximum message rate.
Usage
throttle message (rate)
ros2 run topic_tools throttle messages <intopic> <msgs_per_sec> [outtopic]
Throttle messages on intopic to a particular rate.
-
intopic: Incoming topic to subscribe to -
msgs_per_sec: Maximum messages per second to let through. -
outtopic: Outgoing topic to publish on (default: intopic_throttle)
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.