A Cargo-like build tool for Scala projects.
- Project initialization with
sinter new <name> - Workspace initialization with
sinter init - Building Scala projects with
sinter build - Running Scala applications with
sinter run - Adding dependencies with
sinter add <dep> - Running tests with
sinter test - Workspace management with
sinter workspace - Internationalization support with
sinter i18n - Configurable project settings via
project.toml
git clone https://github.com/s0raLin/sinter.git
cd sinter
cargo build --release
# Add target/release/sinter to your PATH- Rust (latest stable)
- Scala CLI (for Scala compilation and execution)
- Coursier (for dependency management, optional but recommended)
# Create a new project
sinter new hello-scala
cd hello-scala
# Add a dependency
sinter add cats
# Build and run
sinter build
sinter runsinter --help # Show all commands
sinter [command] --help # Show help for specific commandmkdir my-workspace
cd my-workspace
sinter initThis creates a workspace configuration file workspace.project.toml.
sinter new my-scala-project
cd my-scala-projectThis creates a new Scala project with the following structure:
my-scala-project/
├── project.toml # Project configuration
└── src/main/scala/
└── Main.scala # Main application file
sinter workspace add path/to/projectAdds a project to the workspace.
sinter buildCompiles all Scala sources in src/main/scala and places compiled classes in the target_dir specified in project.toml.
sinter run
sinter run path/to/MyFile.scala
sinter run --lib- Without arguments: Runs the main file specified in
project.toml - With a file path: Runs the specified Scala file
--lib: Forces library mode (compile only, no execution)
sinter add cats
sinter add org.typelevel::cats-core_2.13:2.10.0
sinter add [email protected]:2.10.0
sinter add io.get-coursier:coursier_2.13:2.1.25-M19Dependency format: group::artifact[@scala-version][:version] (Scala) or group:artifact:version (Java)
cats: Adds the latest stable version of cats-core for the project's Scala versionorg.typelevel::cats-core_2.13:2.10.0: Full specification with group, artifact, Scala version, and version[email protected]:2.10.0: Short form with Scala version and versionio.get-coursier:coursier_2.13:2.1.25-M19: Java dependency format (single colon) for Java libraries like coursier
sinter test
sinter test path/to/TestFile.scalaRuns tests in the project or a specific test file.
Project configuration is stored in project.toml:
[package]
name = "my-project"
version = "0.1.0"
main = "Main"
scala_version = "2.13"
source_dir = "src/main/scala"
target_dir = "target"
[dependencies]
"org.typelevel::cats-core_2.13" = "2.10.0"- Scala CLI not found: Make sure Scala CLI is installed and available in your PATH
- Coursier not found: Coursier is optional but recommended for better dependency management. Install it from https://get-coursier.io/
- Build fails: Check that all dependencies are correctly specified in
project.toml - Run fails: Ensure your main file has a proper entry point (extends App or has a main method)
- Run
sinter --helpfor command overview - Check the Scala CLI documentation for Scala-specific issues
- Report issues on the GitHub repository
This project is licensed under the MIT License - see the LICENSE file for details.