flavorpack


Nameflavorpack JSON
Version 0.0.3.post1 PyPI version JSON
download
home_pageNone
SummaryFlavor Pack packaging system implementing Progressive Secure Package Format (PSPF/2025)
upload_time2025-08-26 00:32:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseApache-2.0
keywords packaging pspf flavor executable bundle
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ๐ŸŒถ๏ธ๐Ÿ“ฆ Flavor Pack: Your Yummy 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.21+](https://img.shields.io/badge/go-1.21+-00ADD8.svg)](https://golang.org/dl/)
[![Rust 1.75+](https://img.shields.io/badge/rust-1.75+-orange.svg)](https://www.rust-lang.org/)
[![CI Pipeline](https://img.shields.io/badge/CI-passing-brightgreen.svg)](https://github.com/provide-io/flavor/actions)

Flavor Pack (`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.

## ๐ŸŽฏ 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.21+ and Rust 1.75+ (for building ingredients)

### Installation

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

# Set up environment and install dependencies
source env.sh

# Build the Go and Rust ingredients
./ingredients/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:

```
[Native Launcher] โ†’ Go or Rust executable
[8192-byte Index] โ†’ Format metadata and offsets
[Metadata] โ†’ Gzipped JSON manifest
[Slot Table] โ†’ Slot descriptors
[Slots 0..N] โ†’ Application code, runtime, dependencies
[๐Ÿ“ฆ๐Ÿช„] โ†’ 8-byte emoji magic footer
```

## ๐Ÿ“š Documentation

- **[User Guide](docs/USER-GUIDE.md)** - Getting started and creating packages
- **[Development Guide](docs/DEVELOPMENT.md)** - Setting up development environment
- **[Architecture](docs/ARCHITECTURE.md)** - Technical details and design
- **[API Reference](docs/API-REFERENCE.md)** - Command and format specifications
- **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions
- **[Full Documentation Index](docs/DOCUMENTATION.md)** - Complete documentation structure

## ๐Ÿ—๏ธ Architecture

Flavor Pack 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 Launchers** (`ingredients/flavor-{go,rs}/`)
   - Extract and execute packages at runtime
   - Perform Ed25519 signature verification
   - Manage workenv caching and lifecycle

3. **Native Builders** (`ingredients/flavor-{go,rs}/`)
   - Assemble PSPF packages from manifests
   - Implement the PSPF/2025 binary format
   - Handle slot packing and metadata encoding

## ๐Ÿ”’ 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
workenv/flavor_*/bin/pytest tests/

# Run with coverage
workenv/flavor_*/bin/pytest --cov=src/flavor --cov-report=term-missing

# Test cross-language compatibility
./test-all-combinations.sh

# Run specific test categories
workenv/flavor_*/bin/pytest -m unit        # Fast unit tests
workenv/flavor_*/bin/pytest -m integration # Integration tests
workenv/flavor_*/bin/pytest -m security    # Security tests

# Test ingredients with Taster
cd helpers/taster
../../workenv/flavor_*/bin/flavor pack --manifest pyproject.toml --output taster.psp
./taster.psp --help
```

## ๐Ÿ™ Acknowledgments

Flavor Pack 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": "# \ud83c\udf36\ufe0f\ud83d\udce6 Flavor Pack: Your Yummy 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.21+](https://img.shields.io/badge/go-1.21+-00ADD8.svg)](https://golang.org/dl/)\n[![Rust 1.75+](https://img.shields.io/badge/rust-1.75+-orange.svg)](https://www.rust-lang.org/)\n[![CI Pipeline](https://img.shields.io/badge/CI-passing-brightgreen.svg)](https://github.com/provide-io/flavor/actions)\n\nFlavor Pack (`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## \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.21+ and Rust 1.75+ (for building ingredients)\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/provide-io/flavor.git\ncd flavor\n\n# Set up environment and install dependencies\nsource env.sh\n\n# Build the Go and Rust ingredients\n./ingredients/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:\n\n```\n[Native Launcher] \u2192 Go or Rust executable\n[8192-byte Index] \u2192 Format metadata and offsets\n[Metadata] \u2192 Gzipped JSON manifest\n[Slot Table] \u2192 Slot descriptors\n[Slots 0..N] \u2192 Application code, runtime, dependencies\n[\ud83d\udce6\ud83e\ude84] \u2192 8-byte emoji magic footer\n```\n\n## \ud83d\udcda Documentation\n\n- **[User Guide](docs/USER-GUIDE.md)** - Getting started and creating packages\n- **[Development Guide](docs/DEVELOPMENT.md)** - Setting up development environment\n- **[Architecture](docs/ARCHITECTURE.md)** - Technical details and design\n- **[API Reference](docs/API-REFERENCE.md)** - Command and format specifications\n- **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions\n- **[Full Documentation Index](docs/DOCUMENTATION.md)** - Complete documentation structure\n\n## \ud83c\udfd7\ufe0f Architecture\n\nFlavor Pack 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 Launchers** (`ingredients/flavor-{go,rs}/`)\n   - Extract and execute packages at runtime\n   - Perform Ed25519 signature verification\n   - Manage workenv caching and lifecycle\n\n3. **Native Builders** (`ingredients/flavor-{go,rs}/`)\n   - Assemble PSPF packages from manifests\n   - Implement the PSPF/2025 binary format\n   - Handle slot packing and metadata encoding\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\nworkenv/flavor_*/bin/pytest tests/\n\n# Run with coverage\nworkenv/flavor_*/bin/pytest --cov=src/flavor --cov-report=term-missing\n\n# Test cross-language compatibility\n./test-all-combinations.sh\n\n# Run specific test categories\nworkenv/flavor_*/bin/pytest -m unit        # Fast unit tests\nworkenv/flavor_*/bin/pytest -m integration # Integration tests\nworkenv/flavor_*/bin/pytest -m security    # Security tests\n\n# Test ingredients with Taster\ncd helpers/taster\n../../workenv/flavor_*/bin/flavor pack --manifest pyproject.toml --output taster.psp\n./taster.psp --help\n```\n\n## \ud83d\ude4f Acknowledgments\n\nFlavor Pack 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": "Apache-2.0",
    "summary": "Flavor Pack packaging system implementing Progressive Secure Package Format (PSPF/2025)",
    "version": "0.0.3.post1",
    "project_urls": {
        "Homepage": "https://github.com/provide-io/flavor"
    },
    "split_keywords": [
        "packaging",
        " pspf",
        " flavor",
        " executable",
        " bundle"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d0e3b5973cf77a99e469ec214fb2412ea08cf3a9852cc019a904d684f340e50",
                "md5": "c0655c29e331123a59c6acb953f0c7bb",
                "sha256": "f5d3ca2ee7c3bc63c4f9fd2d412dbcdbff84c033051194b4a7e57f315bab92c7"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.3.post1-py311-none-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c0655c29e331123a59c6acb953f0c7bb",
            "packagetype": "bdist_wheel",
            "python_version": "py311",
            "requires_python": ">=3.11",
            "size": 28157028,
            "upload_time": "2025-08-26T00:32:30",
            "upload_time_iso_8601": "2025-08-26T00:32:30.392143Z",
            "url": "https://files.pythonhosted.org/packages/5d/0e/3b5973cf77a99e469ec214fb2412ea08cf3a9852cc019a904d684f340e50/flavorpack-0.0.3.post1-py311-none-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4630410ea211ce3c3a049fa8119521a47d3532a8bbe995235abaca6b6bcbfb94",
                "md5": "8d6a39885dfc845c29818c8573d6768c",
                "sha256": "f13b5abe790f9e57f3642cb5cee5b556e836fce1a029fcf75660fe731c767d08"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.3.post1-py311-none-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8d6a39885dfc845c29818c8573d6768c",
            "packagetype": "bdist_wheel",
            "python_version": "py311",
            "requires_python": ">=3.11",
            "size": 26592311,
            "upload_time": "2025-08-26T00:32:36",
            "upload_time_iso_8601": "2025-08-26T00:32:36.038508Z",
            "url": "https://files.pythonhosted.org/packages/46/30/410ea211ce3c3a049fa8119521a47d3532a8bbe995235abaca6b6bcbfb94/flavorpack-0.0.3.post1-py311-none-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6075ade910cffa0171a9d0148925ef6921465beb38696aa8854e21ba1bde785e",
                "md5": "d5bf33e238d80e801c8af1f1fd1a6330",
                "sha256": "47504f6a5596ceaf0deeb9dc2f0f4a7e80312b16f79b5b2863dc4f44295c38ce"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.3.post1-py311-none-manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d5bf33e238d80e801c8af1f1fd1a6330",
            "packagetype": "bdist_wheel",
            "python_version": "py311",
            "requires_python": ">=3.11",
            "size": 27526739,
            "upload_time": "2025-08-26T00:32:38",
            "upload_time_iso_8601": "2025-08-26T00:32:38.515542Z",
            "url": "https://files.pythonhosted.org/packages/60/75/ade910cffa0171a9d0148925ef6921465beb38696aa8854e21ba1bde785e/flavorpack-0.0.3.post1-py311-none-manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e54a86f3b1c6837bf978f94395d05cd5739a5bb51dd684b1192fdc67dc291f59",
                "md5": "c342d241c7b8fcfdc0a8354f4ff05deb",
                "sha256": "7ccbd23eef1f7d801dfefe062223dc0ec6aa013e262c27ee9aaf9664ba93b5de"
            },
            "downloads": -1,
            "filename": "flavorpack-0.0.3.post1-py311-none-manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c342d241c7b8fcfdc0a8354f4ff05deb",
            "packagetype": "bdist_wheel",
            "python_version": "py311",
            "requires_python": ">=3.11",
            "size": 29434762,
            "upload_time": "2025-08-26T00:32:41",
            "upload_time_iso_8601": "2025-08-26T00:32:41.682258Z",
            "url": "https://files.pythonhosted.org/packages/e5/4a/86f3b1c6837bf978f94395d05cd5739a5bb51dd684b1192fdc67dc291f59/flavorpack-0.0.3.post1-py311-none-manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-26 00:32:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "provide-io",
    "github_project": "flavor",
    "github_not_found": true,
    "lcname": "flavorpack"
}
        
Elapsed time: 0.59402s