Package pre-built Ruby binaries into Python wheels
Project description
ruby-to-wheel
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__.pyand__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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
580879d93c63240b584a38443b5ed14fb49013b7813b3d6d345cb81911f3b3e7
|
|
| MD5 |
1b346e7c219c8e9fe93e61593dce91f2
|
|
| BLAKE2b-256 |
20a1ef3ccb1b0f86c5011731f1f5349e6aee12762efa7d86fbff1169387bf379
|
Provenance
The following attestation bundles were made for ruby_to_wheel-0.1.0.tar.gz:
Publisher:
release.yml on aktech/ruby-to-wheel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ruby_to_wheel-0.1.0.tar.gz -
Subject digest:
580879d93c63240b584a38443b5ed14fb49013b7813b3d6d345cb81911f3b3e7 - Sigstore transparency entry: 1086614130
- Sigstore integration time:
-
Permalink:
aktech/ruby-to-wheel@41389bd7f401e35f9edca60455e96f816d363088 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/aktech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@41389bd7f401e35f9edca60455e96f816d363088 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8230a40bb5b144354281e5e39ceb86f060cbc9bfcff55a9df5f03b82c6e0017f
|
|
| MD5 |
4f4385a65d64c62db05aa30f58a875c1
|
|
| BLAKE2b-256 |
1dd9180d24e9b604767ee3435148013e5eeca98116d795c1fb82604edbfafa39
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ruby_to_wheel-0.1.0-py3-none-any.whl -
Subject digest:
8230a40bb5b144354281e5e39ceb86f060cbc9bfcff55a9df5f03b82c6e0017f - Sigstore transparency entry: 1086614168
- Sigstore integration time:
-
Permalink:
aktech/ruby-to-wheel@41389bd7f401e35f9edca60455e96f816d363088 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/aktech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@41389bd7f401e35f9edca60455e96f816d363088 -
Trigger Event:
push
-
Statement type: