Skip to content

jonathanmagambo/Polykit

Polykit Logo

Polykit

github crates.io build status discord

Fast, lightweight, monorepo orchestrator.

Installation

Install from crates.io (recommended):

cargo install polykit

Or build from source:

git clone https://github.com/jonathanmagambo/polykit.git
cd polykit
cargo install --path .

Verify installation:

polykit scan

Quick Start

  1. Create a polykit.toml in each package:
name = "my-package"
language = "rust"
public = true

[deps]
internal = ["other-package"]

[tasks]
build = "cargo build --release"
test = "cargo test"
  1. Run commands:
polykit scan          # Discover packages
polykit build         # Build all packages
polykit test          # Run tests
polykit graph         # Show dependency order

Commands

  • polykit scan - Discover packages
  • polykit graph - Show dependency order
  • polykit build [packages...] - Build packages
  • polykit test [packages...] - Run tests
  • polykit affected --git - Find changed packages
  • polykit release <package> --bump <major|minor|patch> - Bump versions
  • polykit watch <task> - Watch and rebuild
  • polykit why <package> - Show dependencies
  • polykit validate - Validate configuration
  • polykit list - List all tasks

Supported Languages

  • JavaScript/TypeScript (js, ts)
  • Python (python)
  • Go (go)
  • Rust (rust)

Configuration

Each package needs a polykit.toml:

name = "package-name"
language = "rust"
public = true

[deps]
internal = ["dep1", "dep2"]

[tasks]
build = "cargo build"
test = "cargo test"
test.depends_on = ["build"]

Optional workspace config at repo root:

[workspace]
cache_dir = ".polykit/cache"
default_parallel = 4

Contributing And License

Important

The project is in active development and being crafted meticulously. If you plan to contribute to the project, now is the time to provide a helping hand for the hardworking team. Polykit is written in Rust and orchestrates monorepos across multiple languages (JavaScript, TypeScript, Python, Go, and Rust). We're continuously improving language adapter support and adding new features.

In addition, the project uses the Apache-2.0 License, which allows you to:

  • View the source, learn from it, and use it freely
  • Modify and distribute the software
  • Use it in commercial and private projects
  • The only requirement is to include the license and copyright notice

When it comes to contributing and forking, Polykit is free and open source to use, released under the Apache-2.0 License. Contributions are welcome with wide open arms as Polykit is looking to foster a community. Proceed to take a look at CONTRIBUTING.md for more information on how to get started as well as the codebase to learn from it. We sincerely and deeply are grateful and thankful for your efforts.

Alt

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •