Skip to content

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

SectionDescription
[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]

KeyDescription
nameProject name
rootRoot directory for analysis (relative to mille.toml)
languagesLanguages to check: "rust" / "go" / "typescript" / "javascript" / "python" / "java" / "kotlin"

[ignore]

KeyDescription
pathsGlob patterns to fully exclude (generated code, vendor dirs, mocks)
test_patternsPatterns 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 analysis
  • test_patterns: Test files that intentionally import across layers (e.g., integration tests)