Skip to main content

Package pre-built Ruby binaries into Python wheels

Project description

ruby-to-wheel

PyPI version Test

Package pre-built Ruby binaries into Python wheels.

ruby-to-wheel takes compiled Ruby binaries and wraps them into platform-specific Python wheels with proper entry points, so they can be installed via pip and run as CLI commands.

Installation

pip install ruby-to-wheel

Usage

There are three modes of operation:

1. From pre-built binaries (explicit)

Provide binaries for each platform explicitly:

ruby-to-wheel \
  --name my-tool \
  --version 1.0.0 \
  --binary linux-amd64=/path/to/my-tool-linux-amd64 \
  --binary darwin-arm64=/path/to/my-tool-darwin-arm64

2. From a directory of binaries (auto-detect)

Point to a directory containing binaries with platform suffixes in their filenames:

ruby-to-wheel \
  --name my-tool \
  --version 1.0.0 \
  --binary-dir ./binaries/

Binaries are matched by filename patterns like my-tool-linux-amd64, my-tool-darwin-arm64, etc.

3. From Ruby source (via Tebako)

Build a standalone binary from Ruby source using Tebako and package it into a wheel:

ruby-to-wheel \
  --name my-tool \
  --version 1.0.0 \
  --source ./my-ruby-project/

Supported Platforms

Platform Key Wheel Tag
linux-amd64 manylinux_2_17_x86_64
linux-arm64 manylinux_2_17_aarch64
linux-amd64-musl musllinux_1_2_x86_64
linux-arm64-musl musllinux_1_2_aarch64
darwin-amd64 macosx_10_9_x86_64
darwin-arm64 macosx_11_0_arm64
windows-amd64 win_amd64
windows-arm64 win_arm64

Options

--name              Python package name (required)
--version           Package version (default: 0.1.0)
--output-dir        Directory for built wheels (default: ./dist)
--entry-point       CLI command name (defaults to package name)
--description       Package description
--requires-python   Python version requirement (default: >=3.10)
--author            Author name
--author-email      Author email
--license           License identifier
--url               Project URL
--readme            Path to README for PyPI long description
--extra-lib         Shared library to bundle (repeatable)
--ruby-version      Ruby version for Tebako (default: 3.3.7)
--source-entry-point  Ruby entry point for Tebako (default: bin/{entry-point})
--platform          Override platform detection (for --source mode)

How It Works

Each generated wheel contains:

  • A Python package with __init__.py and __main__.py
  • The compiled binary in a bin/ subdirectory
  • Optional shared libraries in a lib/ subdirectory
  • A console script entry point that delegates to the binary

When installed, pip creates a wrapper script so the binary can be invoked directly by name from the command line.

License

Apache-2.0

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

ruby_to_wheel-0.1.0.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

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

ruby_to_wheel-0.1.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file ruby_to_wheel-0.1.0.tar.gz.

File metadata

  • Download URL: ruby_to_wheel-0.1.0.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ruby_to_wheel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 580879d93c63240b584a38443b5ed14fb49013b7813b3d6d345cb81911f3b3e7
MD5 1b346e7c219c8e9fe93e61593dce91f2
BLAKE2b-256 20a1ef3ccb1b0f86c5011731f1f5349e6aee12762efa7d86fbff1169387bf379

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruby_to_wheel-0.1.0.tar.gz:

Publisher: release.yml on aktech/ruby-to-wheel

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

File details

Details for the file ruby_to_wheel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ruby_to_wheel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ruby_to_wheel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8230a40bb5b144354281e5e39ceb86f060cbc9bfcff55a9df5f03b82c6e0017f
MD5 4f4385a65d64c62db05aa30f58a875c1
BLAKE2b-256 1dd9180d24e9b604767ee3435148013e5eeca98116d795c1fb82604edbfafa39

See more details on using hashes here.

Provenance

The following attestation bundles were made for ruby_to_wheel-0.1.0-py3-none-any.whl:

Publisher: release.yml on aktech/ruby-to-wheel

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