Configuration Overview
Place mille.toml in your project root to configure mille.
File Structure
[project]name = "my-app"root = "."languages = ["rust"]
[[layers]]name = "domain"paths = ["src/domain/**"]dependency_mode = "opt-in"allow = []external_mode = "opt-in"external_allow = []
# ... additional layers
[severity]dependency_violation = "error"
[ignore]paths = ["**/generated/**"]Sections
| Section | Description |
|---|---|
[project] | Project name, root, and target languages |
[[layers]] | Layer definitions and dependency rules |
[resolve.*] | Language-specific import resolution |
[severity] | Violation severity settings |
[ignore] | Paths to exclude from analysis |
[project]
| Key | Description |
|---|---|
name | Project name |
root | Root directory for analysis (relative to mille.toml) |
languages | Languages to check: "rust" / "go" / "typescript" / "javascript" / "python" / "java" / "kotlin" |
[ignore]
| Key | Description |
|---|---|
paths | Glob patterns to fully exclude (generated code, vendor dirs, mocks) |
test_patterns | Patterns for files counted in layer stats but not violation-checked (test files) |
[ignore]paths = ["**/mock/**", "**/generated/**", "**/testdata/**"]test_patterns = ["**/*_test.go", "**/*.spec.ts", "**/*.test.ts"]paths vs test_patterns:
paths: Files to exclude entirely from analysistest_patterns: Test files that intentionally import across layers (e.g., integration tests)