Skip to content

Language Footprints

The base layer of Protostar handles the initialization of language-specific package managers, structural ignores, and compiler cache exclusions.

  • Python (--python)

    Delegates to uv (or pip) to initialize pyproject.toml, establish a virtual environment, and ignore .venv/, __pycache__/, and Jupyter checkpoints.

  • Rust (--rust)

    Triggers cargo init, ignores the target/ build directory, and queues rustfmt and clippy for pre-commit static analysis.

  • Node.js (--node)

    Initializes package.json via your configured package manager, ignores node_modules/, dist/, and .next/, and injects Prettier and ESLint hooks.

  • C/C++ (--cpp)

    Ignores heavy compilation artifacts and caches (*.o, *.out, build/, .cache/, compile_commands.json) and injects the clang-format hook to enforce standard styling.

  • LaTeX (--latex)

    Ignores typesetting auxiliary files (*.aux, *.log, *.synctex.gz) and queues tex-fmt to standardize document structures.

The Python Gravity Well

Protostar was originally engineered to accelerate Python development pipelines, and its Python scaffolding (specifically via uv) is highly refined and deeply integrated.

While Protostar natively supports scaffolding for C++, Rust, Node.js, and LaTeX, these footprints currently represent basic, standard implementations. If you are a domain expert in these ecosystems, we gladly welcome PRs to help stabilize and expand their dependency pipelines to match the maturity of the Python layer.


Technical Specifications

Language Footprint CLI Flags Description Collision Markers
Python (uv) -p, --python Scaffold a Python environment pyproject.toml
Rust -r, --rust Scaffold a Rust (cargo) environment Cargo.toml
Node (npm) -n, --node Scaffold a Node.js environment package.json
C/C++ -c, --cpp Scaffold a C/C++ environment footprint None
LaTeX -l, --latex Scaffold a LaTeX environment footprint None

Global Version Targeting

For languages like Python, you can explicitly override the global configuration at runtime using --python-version <VERSION> to enforce a specific compiler or interpreter version.