CHANGELOG
Changelog for package cloudini_lib
1.0.0 (2026-02-21)
minor changes
feat: add bag directory support and metadata.yaml generation to rosbag converter The converter now accepts ROS2 bag directories as input (in addition to bare .mcap files), auto-detects sibling metadata.yaml, and generates a transformed metadata.yaml alongside the output with updated topic types and file references. Output defaults to a new sibling directory to prevent accidental overwrites of the original bag. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: add single-threaded compression mode to PointcloudEncoder Add use_threads field to EncodingInfo (defaults to true). When false, LZ4/ZSTD compression runs inline in the calling thread instead of spawning a worker thread. Useful for simpler deployments, debugging, and environments where threading overhead isn’t worth the pipelining benefit. No wire format changes — the field is runtime-only and not serialized.
Fixed cmake issues and added some improvements (#55)
fix: harden encoder/decoder against UB, data races, and corrupted input (#57) * fix: harden encoder/decoder against UB, data races, and corrupted input Address issues found during code review: - Fix decodeVarint shift UB: check overflow before shift operation - Fix decodeVarint underflow: guard against uval==0 on corrupted data - Fix worker thread deadlock: detect dead worker on subsequent encode() - Fix WASM encode: avoid extra allocation by encoding directly when buffer fits - Clean up waitForCompressionComplete: only set worker_failed_ in error path - Optimize encode(BufferView&): use header_.size() instead of YAML reserialization - Improve readability and error messages in DecodeHeader/MaxSerializedFieldSize - Add explicit <cstring> include in encoding_utils.hpp - Fix pre-existing FloatLossy test bug: use float instead of double for kResolution - Re-enable previously commented-out tests * fix: additional hardening for decoder bounds checks and encoder thread safety - Add per-point bounds check in decodeChunk to replace per-field checks in fixed-size decoders (FieldDecoderCopy, FieldDecoderFloat_XOR), eliminating 12-14% decode overhead while maintaining safety - Keep per-field checks for variable-size decoders (Float_Lossy, FloatN_Lossy) where overhead is negligible relative to varint decoding - Fix encoder deadlock on re-use after worker thread failure by joining dead thread and re-spawning; protect shared state resets with mutex - Tighten decodeVarint overflow check from shift>=64 to shift>=63 - Derive point count from actual data size in ROS conversion instead of trusting metadata width*height to prevent over-allocation DoS * fix: remove non-existent apt package from Jazzy CI workflow python3-ament-package does not exist on Ubuntu 24.04. The setup-ros action and action-ros-ci already handle installing colcon and ament dependencies, matching the working Humble CI workflow. * fix: install ros-humble-ament-cmake-test for test runner * revert some changes ——— Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Need to add these constructors for emscripten build to work on ubuntu 24 (#54) * Need to add these constructors for emscripten build to work * add default ctors and default values ———
Contributors: Alireza Moayyedi, Davide Faconti, tomdeblauwe
0.11.1 (2025-12-12)
fix ROS compilation
Contributors: Davide Faconti
0.11.0 (2025-11-29)
optimize yaml parser
yaml parser
fix benchmark
add better Draco benchmarking
Contributors: Davide Faconti
0.10.0 (2025-10-13)
working on the python code
critical bug fix
update
try fixing multi-threading code
cherry picking change from #38 . Better function name Thanks @Tanishq30052002 for the suggestions
tons of ROS examples and utilities
Contributors: Davide Faconti
0.9.0 (2025-10-11)
fix error in wasm module
fix mcap_converter
remove redundancy
Fix redundancy in ros msg utils (#37) * remove redundant function * remove code redundancy * move header decoding to common
Contributors: Davide Faconti, Tanishq Chaudhary
0.8.0 (2025-10-09)
0.7.0 (2025-09-19)
Merge pull request #27 from facontidavide/yaml_encoding Yaml encoding
each chunk should reset the state of encoders/decoders to allow parallel extraction
fix PCD conversion
use YAML instead
add JSON encoding to header and WIP pcl_converter
version 03: add multi-threading and chunks
Contributors: Davide Faconti
0.6.1 (2025-08-28)
bug fix (memory boundaries) and typo addressed
better benchmark print
Contributors: Davide Faconti
0.5.0 (2025-06-30)
fix 64 bits types
don’t create an encoder at each loop
add mcap cutter utility
speedup in rosbag conversion
fix compilation (clang++ 20) (#18) Co-authored-by: Giuseppe Rizzi <giuseppe.rizzi@ascento.ch>
Contributors: Davide Faconti, Giuseppe Rizzi
0.4.0 (2025-06-15)
downgrade MCAP for compatibility with ROS2 Jazzy
make MCAP a private dependency and copy metadata (#17) * make MCAP a private dependency and copy metadata * minor cleanup
fix buffer size in worst case scenario (#16) Co-authored-by: Giuseppe Rizzi <giuseppe.rizzi@ascento.ch>
Contributors: Davide Faconti, Giuseppe Rizzi
0.3.3 (2025-06-11)
Compression profile (MCAP writer) (#14) Co-authored-by: Giuseppe Rizzi <giuseppe.rizzi@ascento.ch>
Null character termination (#13)
add experimental WASM + web tester
Contributors: Davide Faconti, Giuseppe Rizzi
0.3.1 (2025-06-10)
fix formatting
Merge branch ‘main’ of github.com:facontidavide/cloudini
small speed optimization
fix bugs in PCL
fix compilation on arm (#9) Co-authored-by: Giuseppe Rizzi <giuseppe.rizzi@ascento.ch>
Contributors: Davide Faconti, Giuseppe Rizzi
0.3.0 (2025-06-03)
PCL conversion fixed and tested
same speed with varint 64
small fix
Contributors: Davide Faconti
0.2.0 (2025-05-31)
faster DDS decompression with less copies
add license
Contributors: Davide Faconti