Metadata-Version: 2.4
Name: roboto-mcap-codec
Version: 0.2.0rc3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: pyarrow>=20 ; platform_machine != 'ARM64' or sys_platform != 'win32'
License-File: LICENSE
License-File: NOTICE
License-File: THIRD_PARTY_LICENSES/ahash-0.8.12/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/ahash-0.8.12/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/aho-corasick-1.1.5/COPYING
License-File: THIRD_PARTY_LICENSES/aho-corasick-1.1.5/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/anyhow-1.0.104/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/anyhow-1.0.104/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/arc-swap-1.9.2/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/arc-swap-1.9.2/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/array-init-2.1.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/array-init-2.1.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/arrayvec-0.5.2/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/arrayvec-0.5.2/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/arrow-array-59.0.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/arrow-array-59.0.0/LICENSE.txt
License-File: THIRD_PARTY_LICENSES/arrow-array-59.0.0/NOTICE.txt
License-File: THIRD_PARTY_LICENSES/arrow-buffer-59.0.0/LICENSE.txt
License-File: THIRD_PARTY_LICENSES/arrow-buffer-59.0.0/NOTICE.txt
License-File: THIRD_PARTY_LICENSES/arrow-data-59.0.0/LICENSE.txt
License-File: THIRD_PARTY_LICENSES/arrow-data-59.0.0/NOTICE.txt
License-File: THIRD_PARTY_LICENSES/arrow-pyarrow-59.0.0/LICENSE.txt
License-File: THIRD_PARTY_LICENSES/arrow-pyarrow-59.0.0/NOTICE.txt
License-File: THIRD_PARTY_LICENSES/arrow-pyarrow-59.0.0/UPSTREAM.json
License-File: THIRD_PARTY_LICENSES/arrow-schema-59.0.0/LICENSE.txt
License-File: THIRD_PARTY_LICENSES/arrow-schema-59.0.0/NOTICE.txt
License-File: THIRD_PARTY_LICENSES/base64-0.22.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/base64-0.22.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/bimap-0.6.3/LICENSE_APACHE
License-File: THIRD_PARTY_LICENSES/bimap-0.6.3/LICENSE_MIT
License-File: THIRD_PARTY_LICENSES/binrw-0.12.1/LICENSE
License-File: THIRD_PARTY_LICENSES/binrw-0.12.1/UPSTREAM.json
License-File: THIRD_PARTY_LICENSES/binrw_derive-0.12.1/LICENSE
License-File: THIRD_PARTY_LICENSES/binrw_derive-0.12.1/UPSTREAM.json
License-File: THIRD_PARTY_LICENSES/bitflags-1.3.2/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/bitflags-1.3.2/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/bitflags-2.13.2/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/bitflags-2.13.2/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/bytecount-0.3.2/LICENSE.Apache2
License-File: THIRD_PARTY_LICENSES/bytecount-0.3.2/LICENSE.MIT
License-File: THIRD_PARTY_LICENSES/bytecount-0.6.9/LICENSE.Apache2
License-File: THIRD_PARTY_LICENSES/bytecount-0.6.9/LICENSE.MIT
License-File: THIRD_PARTY_LICENSES/bytemuck-1.25.2/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/bytemuck-1.25.2/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/bytemuck-1.25.2/LICENSE-ZLIB
License-File: THIRD_PARTY_LICENSES/byteorder-1.5.0/COPYING
License-File: THIRD_PARTY_LICENSES/byteorder-1.5.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/bytes-1.12.1/LICENSE
License-File: THIRD_PARTY_LICENSES/cc-1.4.7/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/cc-1.4.7/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/cfg-if-1.0.5/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/cfg-if-1.0.5/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/chrono-0.4.45/LICENSE.txt
License-File: THIRD_PARTY_LICENSES/const-random-0.1.18/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/const-random-0.1.18/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/const-random-macro-0.1.16/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/const-random-macro-0.1.16/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/core-foundation-sys-0.8.7/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/core-foundation-sys-0.8.7/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/crc32fast-1.5.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/crc32fast-1.5.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/crunchy-0.2.4/LICENSE
License-File: THIRD_PARTY_LICENSES/darling-0.21.3/LICENSE
License-File: THIRD_PARTY_LICENSES/darling_core-0.21.3/LICENSE
License-File: THIRD_PARTY_LICENSES/darling_macro-0.21.3/LICENSE
License-File: THIRD_PARTY_LICENSES/either-1.18.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/either-1.18.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/enumset-1.1.14/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/enumset-1.1.14/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/enumset_derive-0.15.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/enumset_derive-0.15.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/find-msvc-tools-0.1.13/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/find-msvc-tools-0.1.13/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/fnv-1.0.7/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/fnv-1.0.7/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/getrandom-0.2.17/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/getrandom-0.2.17/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/getrandom-0.3.4/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/getrandom-0.3.4/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/getrandom-0.4.3/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/getrandom-0.4.3/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/half-2.7.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/half-2.7.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/hashbrown-0.17.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/hashbrown-0.17.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/heck-0.5.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/heck-0.5.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/iana-time-zone-0.1.65/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/iana-time-zone-0.1.65/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/ident_case-1.0.1/LICENSE
License-File: THIRD_PARTY_LICENSES/inventory.json
License-File: THIRD_PARTY_LICENSES/itertools-0.14.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/itertools-0.14.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/itoa-1.0.18/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/itoa-1.0.18/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/jobserver-0.1.35/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/jobserver-0.1.35/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/lexical-core-0.7.6/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/lexical-core-0.7.6/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/libc-0.2.186/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/libc-0.2.186/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/libm-0.2.16/LICENSE.txt
License-File: THIRD_PARTY_LICENSES/log-0.4.31/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/log-0.4.31/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/logos-0.16.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/logos-0.16.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/logos-codegen-0.16.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/logos-codegen-0.16.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/logos-derive-0.16.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/logos-derive-0.16.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/lz4-1.28.1/LICENSE
License-File: THIRD_PARTY_LICENSES/lz4-sys-1.11.1+lz4-1.10.0/LICENSE
License-File: THIRD_PARTY_LICENSES/lz4-sys-1.11.1+lz4-1.10.0/liblz4/LICENSE
License-File: THIRD_PARTY_LICENSES/lz4-sys-1.11.1+lz4-1.10.0/liblz4/contrib/djgpp/LICENSE
License-File: THIRD_PARTY_LICENSES/lz4-sys-1.11.1+lz4-1.10.0/liblz4/examples/COPYING
License-File: THIRD_PARTY_LICENSES/lz4-sys-1.11.1+lz4-1.10.0/liblz4/lib/LICENSE
License-File: THIRD_PARTY_LICENSES/lz4-sys-1.11.1+lz4-1.10.0/liblz4/programs/COPYING
License-File: THIRD_PARTY_LICENSES/lz4-sys-1.11.1+lz4-1.10.0/liblz4/tests/COPYING
License-File: THIRD_PARTY_LICENSES/mcap-0.24.0/LICENSE
License-File: THIRD_PARTY_LICENSES/mcap-0.24.0/PATCH.md
License-File: THIRD_PARTY_LICENSES/mcap-0.24.0/UPSTREAM.json
License-File: THIRD_PARTY_LICENSES/memchr-2.8.3/COPYING
License-File: THIRD_PARTY_LICENSES/memchr-2.8.3/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/minimal-lexical-0.2.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/minimal-lexical-0.2.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/minimal-lexical-0.2.1/LICENSE.md
License-File: THIRD_PARTY_LICENSES/nom-5.1.3/LICENSE
License-File: THIRD_PARTY_LICENSES/nom-7.1.3/LICENSE
License-File: THIRD_PARTY_LICENSES/nom-greedyerror-0.4.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/nom-greedyerror-0.4.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/nom_locate-1.0.0/LICENSE
License-File: THIRD_PARTY_LICENSES/nom_locate-1.0.0/UPSTREAM.json
License-File: THIRD_PARTY_LICENSES/nom_locate-2.1.0/LICENSE
License-File: THIRD_PARTY_LICENSES/nom_locate-4.2.0/LICENSE
License-File: THIRD_PARTY_LICENSES/num-bigint-0.4.8/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/num-bigint-0.4.8/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/num-complex-0.4.6/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/num-complex-0.4.6/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/num-integer-0.1.47/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/num-integer-0.1.47/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/num-traits-0.2.19/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/num-traits-0.2.19/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/num_cpus-1.17.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/num_cpus-1.17.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/once_cell-1.21.4/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/once_cell-1.21.4/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/ordered-float-2.10.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/owo-colors-3.5.0/LICENSE
License-File: THIRD_PARTY_LICENSES/paste-1.0.15/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/paste-1.0.15/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/proc-macro2-1.0.107/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/proc-macro2-1.0.107/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/prost-0.14.3/LICENSE
License-File: THIRD_PARTY_LICENSES/prost-derive-0.14.4/LICENSE
License-File: THIRD_PARTY_LICENSES/prost-reflect-0.16.4/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/prost-reflect-0.16.4/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/prost-types-0.14.3/LICENSE
License-File: THIRD_PARTY_LICENSES/pyo3-0.28.3/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/pyo3-0.28.3/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/pyo3-0.28.3/pyo3-runtime/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/pyo3-0.28.3/pyo3-runtime/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/pyo3-build-config-0.28.3/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/pyo3-build-config-0.28.3/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/pyo3-ffi-0.28.3/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/pyo3-ffi-0.28.3/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/pyo3-log-0.13.4/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/pyo3-log-0.13.4/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/pyo3-macros-0.28.3/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/pyo3-macros-0.28.3/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/pyo3-macros-backend-0.28.3/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/pyo3-macros-backend-0.28.3/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/python3-dll-a-0.2.15/LICENSE
License-File: THIRD_PARTY_LICENSES/quote-1.0.47/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/quote-1.0.47/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/regex-automata-0.4.18/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/regex-automata-0.4.18/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/regex-syntax-0.8.11/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/regex-syntax-0.8.11/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/regex-syntax-0.8.11/src/unicode_tables/LICENSE-UNICODE
License-File: THIRD_PARTY_LICENSES/rmp-0.8.15/LICENSE
License-File: THIRD_PARTY_LICENSES/rmpv-1.3.1/LICENSE
License-File: THIRD_PARTY_LICENSES/rustversion-1.0.23/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/rustversion-1.0.23/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/ryu-1.0.23/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/ryu-1.0.23/LICENSE-BOOST
License-File: THIRD_PARTY_LICENSES/serde-1.0.228/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/serde-1.0.228/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/serde-value-0.7.0/COPYING
License-File: THIRD_PARTY_LICENSES/serde_core-1.0.228/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/serde_core-1.0.228/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/serde_derive-1.0.228/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/serde_derive-1.0.228/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/serde_json-1.0.150/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/serde_json-1.0.150/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/shlex-2.0.1/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/shlex-2.0.1/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/static_assertions-1.1.0/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/static_assertions-1.1.0/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/syn-1.0.109/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/syn-1.0.109/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/syn-2.0.119/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/syn-2.0.119/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/t4_idl_parser-0.1.1/LICENSE
License-File: THIRD_PARTY_LICENSES/target-lexicon-0.13.5/LICENSE
License-File: THIRD_PARTY_LICENSES/thiserror-1.0.69/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/thiserror-1.0.69/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/thiserror-2.0.18/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/thiserror-2.0.18/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/thiserror-impl-1.0.69/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/thiserror-impl-1.0.69/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/thiserror-impl-2.0.18/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/thiserror-impl-2.0.18/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/tiny-keccak-2.0.2/LICENSE
License-File: THIRD_PARTY_LICENSES/unicode-ident-1.0.26/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/unicode-ident-1.0.26/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/unicode-ident-1.0.26/LICENSE-UNICODE
License-File: THIRD_PARTY_LICENSES/windows-link-0.2.1/license-apache-2.0
License-File: THIRD_PARTY_LICENSES/windows-link-0.2.1/license-mit
License-File: THIRD_PARTY_LICENSES/zerocopy-0.8.57/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/zerocopy-0.8.57/LICENSE-BSD
License-File: THIRD_PARTY_LICENSES/zerocopy-0.8.57/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/zerocopy-derive-0.8.57/LICENSE-APACHE
License-File: THIRD_PARTY_LICENSES/zerocopy-derive-0.8.57/LICENSE-BSD
License-File: THIRD_PARTY_LICENSES/zerocopy-derive-0.8.57/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/zerodds-cdr-1.0.0-rc.1/LICENSE
License-File: THIRD_PARTY_LICENSES/zerodds-cdr-1.0.0-rc.1/NOTICE
License-File: THIRD_PARTY_LICENSES/zerodds-cdr-1.0.0-rc.1/UPSTREAM.json
License-File: THIRD_PARTY_LICENSES/zerodds-foundation-1.0.0-rc.6/LICENSE
License-File: THIRD_PARTY_LICENSES/zerodds-foundation-1.0.0-rc.6/NOTICE
License-File: THIRD_PARTY_LICENSES/zerodds-foundation-1.0.0-rc.6/UPSTREAM.json
License-File: THIRD_PARTY_LICENSES/zmij-1.0.23/LICENSE-MIT
License-File: THIRD_PARTY_LICENSES/zstd-0.13.3/LICENSE
License-File: THIRD_PARTY_LICENSES/zstd-safe-7.2.4/LICENSE
License-File: THIRD_PARTY_LICENSES/zstd-safe-7.2.4/LICENSE.Apache-2.0
License-File: THIRD_PARTY_LICENSES/zstd-safe-7.2.4/LICENSE.Mit
License-File: THIRD_PARTY_LICENSES/zstd-sys-2.0.16+zstd.1.5.7/LICENSE
License-File: THIRD_PARTY_LICENSES/zstd-sys-2.0.16+zstd.1.5.7/LICENSE.Apache-2.0
License-File: THIRD_PARTY_LICENSES/zstd-sys-2.0.16+zstd.1.5.7/LICENSE.BSD-3-Clause
License-File: THIRD_PARTY_LICENSES/zstd-sys-2.0.16+zstd.1.5.7/LICENSE.Mit
License-File: THIRD_PARTY_LICENSES/zstd-sys-2.0.16+zstd.1.5.7/zstd/COPYING
License-File: THIRD_PARTY_LICENSES/zstd-sys-2.0.16+zstd.1.5.7/zstd/LICENSE
Summary: Decodes one channel of an MCAP file (ROS, DDS/IDL, JSON or MessagePack messages) into Apache Arrow, and single messages into Python objects.
Keywords: mcap,cdr,ros,ros2,dds,omgidl,ros2idl,decoder,robotics
Author: Roboto Technologies, Inc.
License-Expression: MPL-2.0
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://www.roboto.ai

# roboto-mcap-codec

Decodes one channel of an MCAP file into Apache Arrow, and single messages into
Python objects. `open_mcap_file` reads the file through a byte-range reader you
supply: its footer and summary, then only the chunks that hold the channel's
messages within the requested row range and, for a window on log time, overlap
that window. It decodes ROS 1 messages, ROS 2 and OMG IDL messages over CDR, and
JSON or MessagePack messages described by a JSON Schema. The rows arrive as
`pyarrow.RecordBatch` values, one per batch, each owning its data, so it stays
valid after the file and the cursor that read it are gone.

Each `open_mcap_file` call opens a cursor over one channel of one file, and
cursors on separate threads run in parallel, since each decodes without holding
the interpreter lock. With the default limits, one cursor reads messages of up
to 64 MiB, such as camera images and lidar point clouds.

The package ships prebuilt wheels for Linux (`manylinux2014` and
`musllinux_1_2`, x86-64 and aarch64), macOS (Intel and Apple Silicon) and
Windows (x86-64 and ARM64). Each wheel targets CPython's stable ABI, so one
wheel per platform serves CPython 3.10 and later. The package is published as
these wheels only, so pip cannot install it on any other platform. It depends
on PyArrow 20 or later, except on Windows ARM64, where PyArrow publishes no
wheel and `open_mcap_file` needs one built separately.

## Install

```sh
pip install roboto-mcap-codec
```

## Quick start

```python
import os

import mcap_codec

path = "recording.mcap"
with open(path, "rb") as file:

    # Called for each byte range the cursor reads; return exactly `length` bytes.
    def read_bytes(offset: int, length: int) -> bytes:
        file.seek(offset)
        return file.read(length)

    with mcap_codec.open_mcap_file(
        read_bytes,
        os.path.getsize(path),
        channel=mcap_codec.TopicName("/odometry"),
        projection=[["speed"], ["pose", "x"]],
        timestamp=mcap_codec.TimestampSource("message_log_time"),
        time_window=(1_700_000_000_000_000_000, 1_700_000_060_000_000_000),
    ) as cursor:
        for batch in cursor:
            ...  # use the rows of this pyarrow.RecordBatch
```

- Column 0 of every batch is the row number: the message's zero-based position
  among the channel's messages, in the order the file stores them. Column 1 is
  the timestamp in nanoseconds, from the source the `timestamp` argument names.
  The projected fields follow. An `open_mcap_file` call without
  `projection` gets every top-level field, and an empty `projection` gets none.
- Read each cursor from one thread at a time: a second call on a cursor while
  the first still runs raises `RuntimeError`.
- `cursor.to_record_batch_reader()` returns a `pyarrow.RecordBatchReader` over
  the remaining batches, which PyArrow, DuckDB and Polars accept.
- Close a cursor you stop reading, so it makes no further `read_bytes` calls;
  the `with` statement closes it when its block ends.
- A failure raises `CodecError`, a `ValueError` whose `code` names it, such as
  `unknown_channel`, `corrupt_input` or `resource_limit`. The exceptions: an
  exception your `read_bytes` raises propagates unchanged, and a value of the
  wrong type, including a `read_bytes` result that is not `bytes`, raises
  `TypeError`.

The docstrings, such as `help(mcap_codec.open_mcap_file)`, document every
argument, class and error code.

## Decoding single messages

A `RosCdrCodec` decodes one message at a time, from its bytes, without reading
a file. Constructing one parses a schema, so build one per schema and reuse it
for every message that schema describes:

```python
from mcap_codec import RosCdrCodec, UnsupportedMessage

# schema_data: the schema's bytes, such as an MCAP Schema record's `data`
codec = RosCdrCodec("ros2msg", "cdr", schema_data, "sensor_msgs/msg/Imu")

# payload: a Message record's `data`; a CDR payload starts with its 4-byte
# encapsulation header
try:
    message = codec.decode(payload)
    partial = codec.decode_fields(
        payload, ["angular_velocity.x", "header.stamp.sec"]
    )
except UnsupportedMessage:
    message = partial = None  # a message the decoder declines; skip it
```

`decode` returns the message as `dict`s, `list`s and scalars, with each array of
a fixed-width numeric type as an `array.array`. `decode_fields` returns the
fields at the dotted paths it is given, nested as in the whole message, and
builds no Python objects for the others. A message the decoder declines, such
as one holding an IDL `wstring` outside a `@mutable` struct, raises
`UnsupportedMessage`, a `CodecError` you can catch to skip it.

## Changes from 0.1

- `McapBatchDecoder` is removed; use `open_mcap_file`.
- `UnsupportedMessage` derives from `CodecError`, and so from `ValueError`,
  where 0.1 derived it from `Exception`. Place an `except UnsupportedMessage`
  clause before any `except ValueError` clause, which would otherwise catch it.
- `RosCdrCodec` raises `CodecError`, still a `ValueError`, with message text
  that differs from 0.1's; match on `code`, not on the text.

## License

The package is licensed under MPL-2.0; see `LICENSE`. Versions 0.1.19 and
earlier were published under Apache-2.0 and remain under it. `NOTICE` and
`THIRD_PARTY_LICENSES/` cover the third-party components compiled into the
wheels.

