Skip to main content

Package manager for OpenFOAM

Project description

styro

The package manager for OpenFOAM

Simplify your OpenFOAM workflows with easy package installation, management, and distribution

CI Codecov PyPI Conda Version OpenFOAM

Ruff ty uv Publish Binaries Docker


✨ Why styro?

styro brings modern package management to the OpenFOAM ecosystem, making it easy to discover, install, and manage community-contributed packages. Whether you're a researcher, engineer, and/or developer, styro streamlines your workflow by eliminating manual compilation and dependency management.

🎯 Key benefits

  • 🚀 One-command installation - Install OpenFOAM packages with a single command
  • 🌎 Community-driven - Access packages from the OpenFOAM Package Index (OPI)
  • 🧩 Broad compatibility - Works seamlessly with OpenFOAM from openfoam.com and openfoam.org
  • 📦 Multiple sources - Install from OPI, local directories, or Git repositories
  • 🔄 Easy updates - Upgrade packages with automatic dependency resolution
  • 🛠️ Developer-friendly - Simple package testing, definition and distribution

▶️ Demo

Demo

📋 Requirements

Before using styro, ensure you have:

⏬ Installation

Choose any of the following methods:

  • With pip (requires Python 3.9 or later):

    pip install styro
    
  • With conda:

    conda install -c conda-forge styro
    
  • With Homebrew:

    brew install gerlero/openfoam/styro
    
  • Standalone binary (installs to $FOAM_USER_APPBIN):

    /bin/sh -c "$(curl https://raw.githubusercontent.com/gerlero/styro/main/install.sh)"
    
  • Docker image:

    docker pull microfluidica/styro
    

🧑‍💻 Command reference

Command Description Example
styro install <packages> Install one or more packages styro install cfmesh
⬆️ styro install --upgrade <packages> Upgrade already installed packages styro install --upgrade cfmesh
🗑️ styro uninstall <packages> Remove installed packages styro uninstall cfmesh
🔍 styro freeze List all installed packages styro freeze
🔄 styro install --upgrade styro Upgrade styro itself (only for standalone installs) styro install --upgrade styro

📦 Package sources

✨ OpenFOAM Package Index (OPI)

styro automatically discovers packages from the community-maintained OpenFOAM Package Index.

styro install cfmesh

🖥️ Local packages

Install packages from your local filesystem:

styro install /path/to/my-custom-package

Pro tip: Add a metadata.json file to the package directory to customize installation behavior.

🌎 Git repositories

Install directly from any Git repository:

styro install https://github.com/username/my-openfoam-package.git

Just like local packages, add a metadata.json file to the repository root for custom installation settings.

🤝 Contributing

We welcome contributions! Here's how you can help:

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

styro-0.1.29.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

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

styro-0.1.29-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file styro-0.1.29.tar.gz.

File metadata

  • Download URL: styro-0.1.29.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.15

File hashes

Hashes for styro-0.1.29.tar.gz
Algorithm Hash digest
SHA256 dd870f18496774aac0d0f652a619ca489196a3e01f789e1b4cacbe1b91a024ea
MD5 0cca131f7b0a7f9bbaf02ec4823f8b33
BLAKE2b-256 134758ea343da4e26b2a5e97f6bd667e60dd87313acb8798f8b32948c0b2194a

See more details on using hashes here.

File details

Details for the file styro-0.1.29-py3-none-any.whl.

File metadata

  • Download URL: styro-0.1.29-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.15

File hashes

Hashes for styro-0.1.29-py3-none-any.whl
Algorithm Hash digest
SHA256 3bbdc2a08b22f0434ddb5270aec266bd7b51e6d3ea86a687468668cf62b54346
MD5 4a968614b018d6ec774d5c95c95090ca
BLAKE2b-256 fc70f2281b2ddeec47b512e5a8a48a12b9a2bb0511f45cbb7ac6aada3d1157ea

See more details on using hashes here.

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