Skip to main content

Python bindings for the VVCM forward-kinematics and simulation library.

Project description

vvcm-rs

Rust implementation for kinematics of multi-robot transporting systems with a deformable sheet using the Virtual Variable Cables Model (VVCM).

vvcm-rs is implemented in Rust, but it is not limited to Rust projects. The same VVCM forward-kinematics and simulation library is available to Rust, C++, and Python users through the native Rust API, C ABI/C++17 wrapper headers, and Python bindings.

If you plan to modify the codebase, read CONTRIBUTING.md first for workflow, structure, and release expectations.

Citation

If you use the forward kinematics algorithm, please cite:

@article{ma2026stable,
  title = {Stable Kinematics for Multi-Robot Collaborative Transporting System with a Deformable Sheet},
  author = {Ma, Wenyao and Hu, Jiawei and Li, Jiamao and Yi, Jingang and Xiong, Zhenhua},
  year = 2026,
  journal = {IEEE Transactions on Robotics},
  volume = {42},
  pages = {837-853},
  doi = {10.1109/TRO.2026.3653870}
}

For the original VVCM model, please cite:

@article{hu2022multirobot,
  title = {Multi-Robot Object Transport Motion Planning With a Deformable Sheet},
  author = {Hu, Jiawei and Liu, Wenhang and Zhang, Heng and Yi, Jingang and Xiong, Zhenhua},
  year = 2022,
  journal = {IEEE Robotics and Automation Letters},
  volume = {7},
  number = {4},
  pages = {9350--9357}
}

Published Release

Version 1.0.0 (2026-06-10) is the first public release of vvcm-rs.

  • Rust VVCM forward-kinematics API with Point2, Point3, RobotFormation, SheetShape, and FkSolution.
  • Stable-solution search with taut-cable enumeration, candidate solving, and stable-branch filtering.
  • Velocity-driven and manual simulation wrappers.
  • Python bindings published as vvcm-rs / vvcm_rs with typed package metadata.
  • C ABI and C++17 wrapper headers for native consumers.
  • Distribution through crates.io, PyPI, GitHub Releases, and vcpkg overlays.

Module Overview

  • fk: forward kinematics engine state and stable-solution entry point.
  • simulation: velocity-driven simulation wrapper.
  • manual_simulation: wrapper for querying a new stable solution from an externally provided robot formation.
  • types: public domain types used by the Rust API.
  • ffi: C ABI implementation behind the C/C++ headers.
  • error: crate error type.

Installation

For source-based installation or local development, read CONTRIBUTING.md first.

Rust

Use the crate from crates.io:

cargo add vvcm-rs

Python

Install the package from PyPI:

python -m pip install vvcm-rs

Prebuilt PyPI wheels are published for CPython 3.10 through 3.14 on Windows x64, Linux x64, and macOS arm64. Python 3.9 and other platforms may fall back to building from the source distribution, which requires a local Rust toolchain and Python build tooling.

C and C++

Install the prebuilt package from the GitHub release archive:

vcpkg install vvcm-rs --overlay-ports=<path-to-unzipped-release>/ports --triplet <platform-triplet>

The prebuilt overlay ships native packages for Windows x64, Linux x64, and macOS arm64. It does not require Rust. Use the triplet that matches your platform, such as x64-windows, x64-linux, or arm64-osx.

If you want to build from the repository source instead, use the repo-local overlay port. That overlay builds the native Rust library with Cargo, so Rust must be installed on the machine running vcpkg. Python is only needed when you build the Python extension feature:

vcpkg install vvcm-rs --overlay-ports=<path-to-vvcm-rs>/vcpkg/ports

Then consume the installed CMake package:

find_package(vvcm-rs CONFIG REQUIRED)
target_link_libraries(app PRIVATE vvcm_rs::vvcm_rs)

Usage

The language-specific snippets below assume installation is already complete. Choose the section that matches your project.

Rust Usage

After adding vvcm-rs from crates.io, the Rust API looks like this:

use vvcm_rs::{Point2, RobotFormation, SheetShape, VvcmFk};

// Robot endpoints on the world-frame XY plane, using the millimeter scale of the sample data.
let formation = RobotFormation::new(vec![
    Point2::new(213.7, 122.7),
    Point2::new(804.6, 37.2),
    Point2::new(904.0, 550.0),
    Point2::new(439.3, 715.9),
])?;

// Sheet vertices in the sheet-local XY frame, using the same millimeter scale.
let sheet = SheetShape::new(vec![
    Point2::new(-316.1, -421.9),
    Point2::new(803.4, -384.1),
    Point2::new(746.1, 712.8),
    Point2::new(-367.3, 664.2),
])?;

// Create the FK solver for four robots with a 1000 mm hold height.
let mut fk = VvcmFk::new(4, 1000.0, sheet)?;

// Ask the solver to enumerate every candidate equilibrium for this formation.
let solutions = fk.update_stable_solutions(formation)?;

// Only stable branches are usually useful to downstream code.
for solution in solutions.stable() {
    println!("{:?}", solution.po);
}
// Keep the snippet valid when pasted into a Result-returning main function.
Ok::<(), vvcm_rs::VvcmError>(())

C++ Usage

After installing the vcpkg package or a release archive, consume the installed CMake package and headers directly. The package exports the raw C ABI in vvcm_rs.h and the C++17 RAII wrapper in vvcm_rs.hpp.

find_package(vvcm-rs CONFIG REQUIRED)
target_link_libraries(app PRIVATE vvcm_rs::vvcm_rs)
#include <vvcm_rs.hpp>

#include <iostream>
#include <vector>

int main() {
    using namespace vvcm_rs;

    // Robot endpoints on the world-frame XY plane, using the millimeter scale of the sample data.
    const std::vector<Point2> formation = {
        Point2(213.7f, 122.7f),
        Point2(804.6f, 37.2f),
        Point2(904.0f, 550.0f),
        Point2(439.3f, 715.9f),
    };

    // Sheet vertices in the sheet-local XY frame, using the same millimeter scale.
    const std::vector<Point2> sheet = {
        Point2(-316.1f, -421.9f),
        Point2(803.4f, -384.1f),
        Point2(746.1f, 712.8f),
        Point2(-367.3f, 664.2f),
    };

    // Build the solver for four robots and a 1000 mm hold height.
    VvcmFk fk(4, 1000.0f, sheet);
    // Solve all candidate equilibria for the current formation.
    FkSolutions solutions = fk.update_stable_solutions(formation);

    // Downstream code usually consumes only the stable branches.
    for (const auto &solution : solutions.stable()) {
        std::cout << solution.po.x << " "
                  << solution.po.y << " "
                  << solution.po.z << "\n";
    }
}

Python Usage

After installing vvcm-rs from PyPI, import it as vvcm_rs. Coordinate collections accept Point2 values, ordinary list/tuple rows, or sequence-like two-column arrays such as NumPy N x 2 arrays.

from vvcm_rs import VvcmFk

# Robot endpoints on the world-frame XY plane, written here as millimeter-valued tuples.
formation = [
    (213.7, 122.7),
    (804.6, 37.2),
    (904.0, 550.0),
    (439.3, 715.9),
]
# Sheet vertices in the sheet-local XY frame, written here as millimeter-valued tuples.
sheet = [
    (-316.1, -421.9),
    (803.4, -384.1),
    (746.1, 712.8),
    (-367.3, 664.2),
]

# Create the solver for four robots and a 1000 mm hold height.
fk = VvcmFk(4, 1000.0, sheet)
# Solve the stable branches for the current formation.
solutions = fk.update_stable_solutions(formation)

# Print each stable branch's object pose, planar velocity, and taut cables.
for solution in solutions.stable():
    print(solution.po.as_tuple(), solution.vo.as_tuple(), solution.taut_cables)

Length units are not encoded in the API. Use one consistent unit for formation coordinates, sheet coordinates, and hold height; VvcmFk normalizes coordinates internally for numerical stability and maps returned object positions and virtual object points back to the original coordinate frames.

Error Handling

Forward-kinematics and simulation solves report failures through each language's normal error channel. Error messages are intended for human diagnostics; branch on Rust enum variants, Python exception classes, or C/C++ error codes when program logic needs to distinguish failure modes.

The snippets below show one simple handling pattern for each language: catch the failure, print the message, and branch on the typed error when you need a specific recovery path.

Rust

match fk.update_stable_solutions(formation) {
    Ok(solutions) => {
        println!("stable solutions: {}", solutions.stable_count());
    }
    Err(vvcm_rs::VvcmError::InfeasibleFormation) => {
        eprintln!("formation is infeasible");
    }
    Err(error) => {
        eprintln!("vvcm-rs solve failed: {error}");
    }
}

The main solve errors in Rust are:

  • VvcmError::DimensionMismatch for input size mismatches during construction or solve setup.
  • VvcmError::InfeasibleFormation when the robot formation cannot be realized by the sheet geometry.
  • VvcmError::NoSolution when no candidate branch can be constructed.
  • VvcmError::NoStableSolution when candidate branches exist but none are stable.
  • VvcmError remains the common error type, so Err(error) still catches any of them and Err(vvcm_rs::VvcmError::InfeasibleFormation) can catch one case specifically.

Python

from vvcm_rs import InfeasibleFormationError, VvcmError

try:
    solutions = fk.update_stable_solutions(formation)
except InfeasibleFormationError as error:
    print(f"formation is infeasible: {error}")
except VvcmError as error:
    print(f"vvcm-rs solve failed: {error}")
else:
    print(f"stable solutions: {solutions.stable_count()}")

The main solve errors in Python are:

  • DimensionMismatchError for input size mismatches during construction or solve setup.
  • InfeasibleFormationError when the robot formation cannot be realized by the sheet geometry.
  • NoSolutionError when no candidate branch can be constructed.
  • NoStableSolutionError when candidate branches exist but none are stable.
  • VvcmError remains the common base class, so except VvcmError as error still catches any of them and except InfeasibleFormationError as error can catch one case specifically.

C

VvcmRsErrorCode code = vvcm_rs_fk_update_stable_solutions(
    fk,
    formation_points,
    formation_point_count);
if (code != VVCM_RS_ERROR_OK) {
    fprintf(stderr, "vvcm-rs failed: %s\n", vvcm_rs_last_error_message());
    if (code == VVCM_RS_ERROR_INFEASIBLE_FORMATION) {
        fprintf(stderr, "formation is infeasible\n");
    }
}

The main solve errors in C are:

  • VVCM_RS_ERROR_DIMENSION_MISMATCH for input size mismatches during construction or solve setup.
  • VVCM_RS_ERROR_INFEASIBLE_FORMATION when the robot formation cannot be realized by the sheet geometry.
  • VVCM_RS_ERROR_NO_SOLUTION when no candidate branch can be constructed.
  • VVCM_RS_ERROR_NO_STABLE_SOLUTION when candidate branches exist but none are stable.
  • vvcm_rs_last_error_message() returns the human-readable message for the most recent failure on the current thread, while vvcm_rs_error_message(code) returns the generic message for a given code.

C++

try {
    vvcm_rs::FkSolutions solutions = fk.update_stable_solutions(formation);
    std::cout << "stable solutions: " << solutions.stable_count() << "\n";
} catch (const vvcm_rs::Error &error) {
    std::cerr << "vvcm-rs failed: " << error.what()
              << " (code " << error.code() << ")\n";
    if (error.code() == VVCM_RS_ERROR_INFEASIBLE_FORMATION) {
        std::cerr << "formation is infeasible\n";
    }
}

The main solve errors in C++ are:

  • VVCM_RS_ERROR_DIMENSION_MISMATCH for input size mismatches during construction or solve setup.
  • VVCM_RS_ERROR_INFEASIBLE_FORMATION when the robot formation cannot be realized by the sheet geometry.
  • VVCM_RS_ERROR_NO_SOLUTION when no candidate branch can be constructed.
  • VVCM_RS_ERROR_NO_STABLE_SOLUTION when candidate branches exist but none are stable.
  • vvcm_rs::Error keeps the originating code, so catch (const vvcm_rs::Error &error) still handles all failures and error.code() lets you branch on one case specifically.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vvcm_rs-1.1.0.tar.gz (68.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vvcm_rs-1.1.0-cp314-cp314-win_amd64.whl (259.4 kB view details)

Uploaded CPython 3.14Windows x86-64

vvcm_rs-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (402.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

vvcm_rs-1.1.0-cp314-cp314-macosx_11_0_arm64.whl (365.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

vvcm_rs-1.1.0-cp313-cp313-win_amd64.whl (258.7 kB view details)

Uploaded CPython 3.13Windows x86-64

vvcm_rs-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (402.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

vvcm_rs-1.1.0-cp313-cp313-macosx_11_0_arm64.whl (365.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vvcm_rs-1.1.0-cp312-cp312-win_amd64.whl (258.9 kB view details)

Uploaded CPython 3.12Windows x86-64

vvcm_rs-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (402.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

vvcm_rs-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (365.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vvcm_rs-1.1.0-cp311-cp311-win_amd64.whl (261.6 kB view details)

Uploaded CPython 3.11Windows x86-64

vvcm_rs-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (404.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

vvcm_rs-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (367.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vvcm_rs-1.1.0-cp310-cp310-win_amd64.whl (261.5 kB view details)

Uploaded CPython 3.10Windows x86-64

vvcm_rs-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (404.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

vvcm_rs-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (367.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file vvcm_rs-1.1.0.tar.gz.

File metadata

  • Download URL: vvcm_rs-1.1.0.tar.gz
  • Upload date:
  • Size: 68.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vvcm_rs-1.1.0.tar.gz
Algorithm Hash digest
SHA256 303744ac6f97fdd4688d798eca3ff2374f9f9bec7e8a029dcc5eac61aef79972
MD5 5c81f98a12b73591233054e71398bab8
BLAKE2b-256 562c822bde64295eed7b76904564ea21eea0210900865717b5b247570991fdf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0.tar.gz:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: vvcm_rs-1.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 259.4 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vvcm_rs-1.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ab02c7c6bc9410864abb038d76bbb125fbdebbb1a6a7e8191152f73e29492eaf
MD5 0ffa7fdee2a8f36abcb6ecea14d46c16
BLAKE2b-256 c6e1cd5eee3f3d7dfb29c996717d9b693be410922e66485a0fabb9e341adf7cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b2b012391af4b252ad015da5680aa0d2b80a03ab7397545de7c12ffd45131eb
MD5 02e53ebc1e9b1d025bd57fbbfc5b988a
BLAKE2b-256 8328f070cf40dc35437a92426263fd216cb07d51ebfe6b7e5f018d89388da016

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06ef405f1b9147df67b22a38f65d6cbe9cead8e9b14ac3c35b5ea3390cc07ece
MD5 835fc21febd8bcf81ec054cbe8f64e1f
BLAKE2b-256 ea5356f848b1580fc11450937712447b86e724dc4317cb604dcafa25515415c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: vvcm_rs-1.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 258.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vvcm_rs-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e5bf3aff4b01536e2a86252e02e65782f0ea2c0224a4dfb3e808f6c8fc62c11c
MD5 80253b642366b1b92df215841a81c0d8
BLAKE2b-256 160b5f5394d6992a80fe60a1111dd30b1a1f18e41c3a5b0cd455d37aefc28ce0

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 45d22ff4ffef6633666af81acd3959060e46c1a47f8700755413520db7999975
MD5 7b13997c5c1febe4b8c345465f40a4b9
BLAKE2b-256 56c51fe5e393c65ee87759dea8653280721bb438d6e7ee8dda402cab327825bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9359a9ab4e74beae42de5ef6f9ea1753cd1da0c8455a5a7790d4cfed3dc817cc
MD5 44cdc58325fe09cf325581ed02563173
BLAKE2b-256 8243b81199a828bf9befd1cd95f738a894bd0e0e2d57d797c30953312d0c24d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: vvcm_rs-1.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 258.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vvcm_rs-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7e68c1ffe1bf2f3b73f11ba258b47fd8a5a1e1e4c290a6584ba20ac8e64f8247
MD5 217300060b84ce6258079e6c99fc490a
BLAKE2b-256 782a5d0985b12acddf2253bbe29e25b1c9b1e2b06cf6996176ef346c707bc99e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d90a37fa2c16f8a225c5d4450df26923b36492c1704fe0c4a07d449a37a6db7d
MD5 ec4d4e97dfef934527469c967cb0c77b
BLAKE2b-256 016448705170a2b8e6ff8ea8a42b5f6b95e0cad05643518aabe785d5af853d6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c91220ed65db41f2bdc64a2986df163625c2d186721f2671836f20620f5591e
MD5 90a0cb65ad8944a87ab7294204c8ffb6
BLAKE2b-256 cc2107a8695d03658213623461e62e3c325f1eb2c51f4ee7814c86b80712c041

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: vvcm_rs-1.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 261.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vvcm_rs-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f713a3e1c39e4046bd7090d5c2d9776bae5f8a9ae6449ffa88af9ab77f131135
MD5 00b89362b6a4de2ab345e5aa457ed6c5
BLAKE2b-256 240e12c2a59014ecf410299977c1c2b8b8b0b20a9c2dd93a9b9f1274e0dc5339

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d90e187e6e0552e3a6da7b14267f58543507acacc5c2e9ac98e3ad9878ef864e
MD5 6b9fe9d3865e7429c9419d460ab354b6
BLAKE2b-256 726a2140e28977e031037aeb13c0f2dbc3e6740f19bb082ca2e7b68ef70e4715

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f3ac16546ac040387da88e026a6f4db11789cc26b130266aebfbc05568549e1d
MD5 d3a1b433046267ad7914bae222f4d0fe
BLAKE2b-256 2c1696a9cd41541bd67fcb70367628df69f03ac416c221b26e3145596a315b67

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: vvcm_rs-1.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 261.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vvcm_rs-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a8099b7a016f703df7fb3af7fc6c579f05fe072bbe3472e9703f945d195f18a2
MD5 85c2fc04a9ab6b86df4eac81d832bc24
BLAKE2b-256 617c8a66d487a1eefd06e772921896add766517025e6654ad2b3134da01d385c

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9db0fc84a76692b97feb9c7e1b04a6617bfcb0f02c8f65a290cdb3b33b99a060
MD5 d155e15df873bb1fc1ae6184dba29a16
BLAKE2b-256 03b9e932a3bf7106f4a600aa2b1dee7c26226e0b9fef0d907bf1927085f2e02e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vvcm_rs-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vvcm_rs-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 839e02de4e8f0bf57d08fc2fe80a6c04f3f2117d1e57f46208585767cd17327c
MD5 81b06e0bd1ebd8dc1c40f48f5f14f074
BLAKE2b-256 f0ac3407f96ad1522e90bc79ca7f3dd1a76c51f54e9bf98040aa069306179bc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for vvcm_rs-1.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on MorningFrog/vvcm-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page