Skip to content

gerlero/styro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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:

About

πŸ“¦ The package manager for OpenFOAM

Topics

Resources

License

Stars

Watchers

Forks

Contributors 5