Repository navigation
[btoon] new port - #54944
[btoon] new port#54944Alvar Laigna (alvarlaigna) wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
Note
Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.
π΅ Needs a closer look
This adds a new vcpkg port whose correct build/install behavior, exported CMake targets, codec dependency wiring, and inclusion of required thirdβparty/licensing artifacts require an actual multi-triplet vcpkg install and installed-file inspection that cannot be validated from the diffs alone.
No open issues π
What changed in this PR
Adds a new vcpkg port, btoon, packaging the upstream BTOON reference C++20 implementation (v0.1.1) with static-only linkage and optional, feature-gated compression codec support.
Changes:
- Introduces the new
ports/btoonport (manifest + CMake-based portfile) withzlibas a core dependency and optionalbrotli,lz4,snappy,zstdfeatures. - Registers
btoonin the vcpkg versioning database (baseline + per-port versions file) at0.1.1.
| File | Summary |
|---|---|
versions/βbaseline.json |
Adds the btoon baseline entry at version 0.1.1. |
versions/βb-/βbtoon.json |
Adds the initial versions database record for btoon (0.1.1). |
ports/βbtoon/βvcpkg.json |
Defines port metadata, core dependency on zlib, and optional codec features (brotli, lz4, snappy, zstd). |
ports/βbtoon/βportfile.cmake |
Implements the build/install recipe: fetches upstream source, configures CMake options (disabling tests/tools/examples), applies CMake config fixup, and installs license/copyright. |
Review effort: Balanced
|
@microsoft-github-policy-service agree |
6b6059e to
5358ab9
Compare
|
This looks good but I want to get confirmation on the name; when I search for this I also get pointed to https://github.com/yuki-koyama/btoon ; I think it's unlikely we would ever be involved with Blender plugins but likelihood of confusion still exists.
|
|
Thanks for taking a look! I'd like to keep If you'd rather disambiguate, |
Adds
btoon, the reference C++20 implementation of BTOON. BTOON is a compact binary serialization format: MessagePack plus a columnar encoding for arrays of records. It encodes canonically, and the decoder is hardened against hostile input.brotli,lz4,snappyandzstdenable the optional compression envelopes. zlib is always required.vcpkg_check_linkage(ONLY_STATIC_LIBRARY)): the C++ API has no DLL export annotations.btoonConfig.cmakecallsfind_dependencyfor exactly the codecs the build used. Codecs come from their CMake packages (lz4::lz4,zstd::libzstd,unofficial::brotli::*,Snappy::snappy), and pkg-config is disabled.Since the first CI run, upstream fixed the Android build: Android's libc has no
shm_open, and core now builds there and runs an NDK build in its own CI. Upstream also shipped security fixes for its zero-copy module, so the port moves to v0.1.3.Tested on arm64-osx:
btoonandbtoon[brotli,lz4,snappy,zstd]install cleanly. A separate project using the vcpkg toolchain,find_package(btoon CONFIG REQUIRED)andbtoon::btoon_corebuilds and round-trips data through every codec. Upstream CI builds the library with GCC, Clang, Apple Clang and MSVC.Changes comply with the maintainer guide.
The packaged project is mature and ready for broad sharing with vcpkg users
btoonhas been on PyPI since 2025-12.The packaged project shows strong association with the chosen port name. Check this box if at least one of the following criteria is met:
Owner-Projectform.None of these is met yet: the project is new to search engines.
btoonis the project's only name, though. It's used by the GitHub org (BTOON-project), the website (btoon.net), PyPIbtoon, npmbtoonand@btoon/js, and Packagistbtoon/btoon, and no other project uses it. If you'd rather have theOwner-Projectform, I'll rename the port tobtoon-project-btoon-core.Optional dependencies of the build are all controlled by the port. The codecs are behind features and off by default, pkg-config is disabled with
CMAKE_DISABLE_FIND_PACKAGE_PkgConfig, tests, tools and examples are off, and zlib is an unconditional dependency.The versioning scheme in
vcpkg.jsonmatches what upstream says.The license declaration in
vcpkg.jsonmatches what upstream says.The installed as the "copyright" file matches what upstream says.
The source code of the component installed comes from an authoritative source.
The generated "usage text" is brief and accurate. The port adds no usage file, because the generated text (
btoon::btoon_core) is correct.The version database is fixed by rerunning
./vcpkg x-add-version --alland committing the result.Exactly one version is added in each modified versions file.
π€ Generated with Claude Code