flavorpack


Nameflavorpack JSON
Version 0.0.1026.post0 PyPI version JSON
download
home_pageNone
SummaryFlavor Pack packaging system implementing Progressive Secure Package Format (PSPF/2025)
upload_time2025-10-27 03:17:18
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords packaging pspf flavor executable bundle
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FlavorPack: Progressive Secure Polyglot Packaging Toolchain

[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![Go 1.23+](https://img.shields.io/badge/go-1.23+-00ADD8.svg)](https://golang.org/dl/)
[![Rust 1.85+](https://img.shields.io/badge/rust-1.85+-orange.svg)](https://www.rust-lang.org/)
[![CI Pipeline](https://img.shields.io/badge/CI-passing-brightgreen.svg)](https://github.com/provide-io/flavorpack/actions)
[![Version](https://img.shields.io/badge/version-alpha-orange.svg)](https://github.com/provide-io/flavorpack/releases)

> **โš ๏ธ Alpha Software**: FlavorPack is in early development. APIs, file formats, and commands may change without notice. Not recommended for production use. Check current version with `flavor --version`. Install from source only.

**FlavorPack** is a cross-language packaging system that creates self-contained, portable executables using the **Progressive Secure Package Format (PSPF) 2025 Edition**. It enables you to ship Python applications as single binaries that "just work" - no installation, no dependencies, no configuration required.

> **Note**: The package name is `flavorpack`, but the command-line tool is `flavor`.

## ๐ŸŽฏ Key Features

- **Single-File Distribution**: Package entire applications into one executable file
- **Cross-Language Support**: Python orchestrator with Go and Rust launchers
- **Secure by Default**: Ed25519 signature verification ensures package integrity
- **Progressive Extraction**: Extract only what's needed, when it's needed
- **Smart Caching**: Persistent work environment with intelligent validation
- **Zero Dependencies**: End users need nothing pre-installed

## ๐Ÿš€ Quick Start

### Prerequisites

- Python 3.11 or higher
- UV package manager (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
- Go 1.23+ and Rust 1.85+ (for building helpers - see `src/flavor-go/go.mod` and `src/flavor-rs/Cargo.toml`)

### Installation (Source Only)

> **Note**: FlavorPack is not yet available on PyPI. Source installation is currently the only option.

```bash
# Clone the repository
git clone https://github.com/provide-io/flavorpack.git
cd flavorpack

# Set up environment and install dependencies
uv sync

# Build the Go and Rust helpers (required)
make build-helpers
# or directly: ./build.sh
```

### Creating Your First Package

```bash
# Package a Python application
flavor pack --manifest pyproject.toml --output myapp.psp

# Run the packaged application
./myapp.psp

# Verify package integrity
flavor verify myapp.psp
```

## ๐Ÿ“ฆ PSPF Format

The Progressive Secure Package Format is a polyglot file format that works as both an OS executable and a structured package. Each `.psp` file contains a native launcher, package metadata, and compressed data slots.

See the [PSPF Format Specification](docs/reference/spec/fep-0001-core-format-and-operation-chains.md#32-package-structure-overview) for the complete binary layout diagram and technical details.

## ๐Ÿ“š Documentation

- **[Quick Start](docs/getting-started/quickstart.md)** - Get started in 5 minutes
- **[User Guide](docs/guide/)** - Comprehensive guide to using FlavorPack
- **[PSPF Format Specification](docs/reference/spec/fep-0001-core-format-and-operation-chains.md)** - Binary format details
- **[API Reference](docs/api/)** - Python API documentation
- **[Development Guide](docs/development/)** - Contributing and development setup
- **[Troubleshooting](docs/troubleshooting/)** - Common issues and solutions
- **[Full Documentation](docs/index.md)** - Complete documentation portal

## ๐Ÿ—๏ธ Architecture

FlavorPack consists of three main components:

1. **Python Orchestrator** (`src/flavor/`)
   - Manages the build process and dependency resolution
   - Creates manifests and handles Python packaging
   - Provides CLI interface for package operations

2. **Native Helpers** (`src/flavor-go/`, `src/flavor-rs/`)
   - **Launchers**: Extract and execute packages at runtime, perform Ed25519 signature verification, manage workenv caching
   - **Builders**: Assemble PSPF packages from manifests, implement the PSPF/2025 binary format, handle slot packing and metadata encoding
   - Built binaries are placed in `dist/bin/` for distribution

## ๐Ÿ”’ Security

Every PSPF package includes cryptographic integrity verification:

- Ed25519 signatures ensure packages haven't been tampered with
- Public keys are embedded in the package index
- Signature verification happens automatically on every launch
- Optional deterministic builds with `--key-seed` for reproducibility

## ๐Ÿงช Testing

```bash
# Run the test suite
make test

# Run with coverage
make test-cov

# Test cross-language compatibility
make validate-pspf

# Run specific test categories
pytest -m unit        # Fast unit tests
pytest -m integration # Integration tests
pytest -m security    # Security tests

# Test cross-language compatibility with Pretaster
make validate-pspf
```

## ๐Ÿ™ Acknowledgments

FlavorPack is built on the shoulders of giants:
- [UV](https://github.com/astral-sh/uv) for fast Python package management
- The Python, Go, and Rust communities for excellent tooling

---

**Built with โค๏ธ by the provide.io team**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "flavorpack",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "\"provide.io\" <code@provide.io>",
    "keywords": "packaging, pspf, flavor, executable, bundle",
    "author": null,
    "author_email": "Tim Perkins <code@tim.life>",
    "download_url": null,
    "platform": null,
    "description": "# FlavorPack: Progressive Secure Polyglot Packaging Toolchain\n\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)\n[![Go 1.23+](https://img.shields.io/badge/go-1.23+-00ADD8.svg)](https://golang.org/dl/)\n[![Rust 1.85+](https://img.shields.io/badge/rust-1.85+-orange.svg)](https://www.rust-lang.org/)\n[![CI Pipeline](https://img.shields.io/badge/CI-passing-brightgreen.svg)](https://github.com/provide-io/flavorpack/actions)\n[![Version](https://img.shields.io/badge/version-alpha-orange.svg)](https://github.com/provide-io/flavorpack/releases)\n\n> **\u26a0\ufe0f Alpha Software**: FlavorPack is in early development. APIs, file formats, and commands may change without notice. Not recommended for production use. Check current version with `flavor --version`. Install from source only.\n\n**FlavorPack** is a cross-language packaging system that creates self-contained, portable executables using the **Progressive Secure Package Format (PSPF) 2025 Edition**. It enables you to ship Python applications as single binaries that \"just work\" - no installation, no dependencies, no configuration required.\n\n> **Note**: The package name is `flavorpack`, but the command-line tool is `flavor`.\n\n## \ud83c\udfaf Key Features\n\n- **Single-File Distribution**: Package entire applications into one executable file\n- **Cross-Language Support**: Python orchestrator with Go and Rust launchers\n- **Secure by Default**: Ed25519 signature verification ensures package integrity\n- **Progressive Extraction**: Extract only what's needed, when it's needed\n- **Smart Caching**: Persistent work environment with intelligent validation\n- **Zero Dependencies**: End users need nothing pre-installed\n\n## \ud83d\ude80 Quick Start\n\n### Prerequisites\n\n- Python 3.11 or higher\n- UV package manager (`curl -LsSf https://astral.sh/uv/install.sh | sh`)\n- Go 1.23+ and Rust 1.85+ (for building helpers - see `src/flavor-go/go.mod` and `src/flavor-rs/Cargo.toml`)\n\n### Installation (Source Only)\n\n> **Note**: FlavorPack is not yet available on PyPI. Source installation is currently the only option.\n\n```bash\n# Clone the repository\ngit clone https://github.com/provide-io/flavorpack.git\ncd flavorpack\n\n# Set up environment and install dependencies\nuv sync\n\n# Build the Go and Rust helpers (required)\nmake build-helpers\n# or directly: ./build.sh\n```\n\n### Creating Your First Package\n\n```bash\n# Package a Python application\nflavor pack --manifest pyproject.toml --output myapp.psp\n\n# Run the packaged application\n./myapp.psp\n\n# Verify package integrity\nflavor verify myapp.psp\n```\n\n## \ud83d\udce6 PSPF Format\n\nThe Progressive Secure Package Format is a polyglot file format that works as both an OS executable and a structured package. Each `.psp` file contains a native launcher, package metadata, and compressed data slots.\n\nSee the [PSPF Format Specification](docs/reference/spec/fep-0001-core-format-and-operation-chains.md#32-package-structure-overview) for the complete binary layout diagram and technical details.\n\n## \ud83d\udcda Documentation\n\n- **[Quick Start](docs/getting-started/quickstart.md)** - Get started in 5 minutes\n- **[User Guide](docs/guide/)** - Comprehensive guide to using FlavorPack\n- **[PSPF Format Specification](docs/reference/spec/fep-0001-core-format-and-operation-chains.md)** - Binary format details\n- **[API Reference](docs/api/)** - Python API documentation\n- **[Development Guide](docs/development/)** - Contributing and development setup\n- **[Troubleshooting](docs/troubleshooting/)** - Common issues and solutions\n- **[Full Documentation](docs/index.md)** - Complete documentation portal\n\n## \ud83c\udfd7\ufe0f Architecture\n\nFlavorPack consists of three main components:\n\n1. **Python Orchestrator** (`src/flavor/`)\n   - Manages the build process and dependency resolution\n   - Creates manifests and handles Python packaging\n   - Provides CLI interface for package operations\n\n2. **Native Helpers** (`src/flavor-go/`, `src/flavor-rs/`)\n   - **Launchers**: Extract and execute packages at runtime, perform Ed25519 signature verification, manage workenv caching\n   - **Builders**: Assemble PSPF packages from manifests, implement the PSPF/2025 binary format, handle slot packing and metadata encoding\n   - Built binaries are placed in `dist/bin/` for distribution\n\n## \ud83d\udd12 Security\n\nEvery PSPF package includes cryptographic integrity verification:\n\n- Ed25519 signatures ensure packages haven't been tampered with\n- Public keys are embedded in the package index\n- Signature verification happens automatically on every launch\n- Optional deterministic builds with `--key-seed` for reproducibility\n\n## \ud83e\uddea Testing\n\n```bash\n# Run the test suite\nmake test\n\n# Run with coverage\nmake test-cov\n\n# Test cross-language compatibility\nmake validate-pspf\n\n# Run specific test categories\npytest -m unit        # Fast unit tests\npytest -m integration # Integration tests\npytest -m security    # Security tests\n\n# Test cross-language compatibility with Pretaster\nmake validate-pspf\n```\n\n## \ud83d\ude4f Acknowledgments\n\nFlavorPack is built on the shoulders of giants:\n- [UV](https://github.com/astral-sh/uv) for fast Python package management\n- The Python, Go, and Rust communities for excellent tooling\n\n---\n\n**Built with \u2764\ufe0f by the provide.io team**\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Flavor Pack packaging system implementing Progressive Secure Package Format (PSPF/2025)",
    "version": "0.0.1026.post0",
    "project_urls": {
        "Homepage": "https://github.com/provide-io/flavor"
    },
    "split_keywords": [
        "packaging",
        " pspf",
        " flavor",
        " executable",
        " bundle"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d4aa8c32b27ebdc254750f2e380039e3c76a43a4ad9f0d6dfac8ccc8b292dbbf",
                "md5": "11826c2080eb5ac21c6ad4051fa143ed",
                "sha256": "f22e4d13565644fd6cda874efcff2963584c40e0bc7198a3f7aca07b186ce1f5"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.1026.post0-py3-none-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "11826c2080eb5ac21c6ad4051fa143ed",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 7448465,
            "upload_time": "2025-10-27T03:17:18",
            "upload_time_iso_8601": "2025-10-27T03:17:18.689006Z",
            "url": "https://files.pythonhosted.org/packages/d4/aa/8c32b27ebdc254750f2e380039e3c76a43a4ad9f0d6dfac8ccc8b292dbbf/flavorpack-0.0.1026.post0-py3-none-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a445a4741863edf455a6250352de01dbe9d972d95eacfe49d1e45d4758923bbd",
                "md5": "5fdd3f4c3fd5e814aa992b86a374236e",
                "sha256": "b6e0a57df3a23bcac1465b4fdc432e970e6e96023b0697d259a63ad91180a6d4"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.1026.post0-py3-none-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5fdd3f4c3fd5e814aa992b86a374236e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 7057336,
            "upload_time": "2025-10-27T03:17:20",
            "upload_time_iso_8601": "2025-10-27T03:17:20.227568Z",
            "url": "https://files.pythonhosted.org/packages/a4/45/a4741863edf455a6250352de01dbe9d972d95eacfe49d1e45d4758923bbd/flavorpack-0.0.1026.post0-py3-none-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7f14c0f8e494573402ee872df954d554a6a784ab3d4da3f835372d918374ee4b",
                "md5": "e950be5488151e39671224234592b3ae",
                "sha256": "2d18d6c0cd1a9a5d8baccc47e770b5cf0b02be1e3fe7efbea0ac70a442014fe8"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.1026.post0-py3-none-manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e950be5488151e39671224234592b3ae",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 7263315,
            "upload_time": "2025-10-27T03:17:21",
            "upload_time_iso_8601": "2025-10-27T03:17:21.917620Z",
            "url": "https://files.pythonhosted.org/packages/7f/14/c0f8e494573402ee872df954d554a6a784ab3d4da3f835372d918374ee4b/flavorpack-0.0.1026.post0-py3-none-manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "50b609bbceeb8c472b8fcee00038be2af41263fb52c1ef7b463462bad2d6f26a",
                "md5": "05eea2f8ab1bc383b343cb42f8ce6c6a",
                "sha256": "52f864b1827220b6813adb7f51fcb9b227a27ab604a4745bdc6f08c094adc3c1"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.1026.post0-py3-none-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "05eea2f8ab1bc383b343cb42f8ce6c6a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 7763401,
            "upload_time": "2025-10-27T03:17:23",
            "upload_time_iso_8601": "2025-10-27T03:17:23.184203Z",
            "url": "https://files.pythonhosted.org/packages/50/b6/09bbceeb8c472b8fcee00038be2af41263fb52c1ef7b463462bad2d6f26a/flavorpack-0.0.1026.post0-py3-none-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-27 03:17:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "provide-io",
    "github_project": "flavor",
    "github_not_found": true,
    "lcname": "flavorpack"
}
        
Elapsed time: 2.07163s