darnit
Generic compliance audit framework with plugin architecture.
Overview
darnit is the core framework that provides:
- Plugin System: Discover and load compliance implementations via Python entry points
- Configuration Management:
.project.yamlfor project metadata and file locations - Progressive Verification: "Sieve" model for efficient compliance checking
- Remediation Framework: Auto-fix infrastructure for compliance gaps
- MCP Server Tools: Ready-to-use tools for AI assistant integration
Installation
pip install darnit
Usage
Discover Implementations
from darnit.core.discovery import get_implementation
# Get a compliance implementation by name
impl = get_implementation("openssf-baseline")
if impl:
controls = impl.get_all_controls()
Configuration Management
from darnit.config.loader import load_project_config, save_project_config
from darnit.config.discovery import discover_files
# Discover existing documentation files
discovered = discover_files("/path/to/repo")
# Load project configuration
config = load_project_config("/path/to/repo")
Creating Implementations
To create a new compliance implementation:
- Create a package with entry point
darnit.implementations - Implement the
ComplianceImplementationprotocol - Register controls and checks
# pyproject.toml
[project.entry-points."darnit.implementations"]
my-standard = "my_package:register"
# my_package/__init__.py
def register():
from .implementation import MyImplementation
return MyImplementation()
See darnit-baseline for a complete example.
Package Structure
darnit/
├── core/ # Plugin system, models, discovery
├── config/ # Project configuration (.project.yaml)
├── sieve/ # Progressive verification pipeline
├── remediation/ # Auto-fix framework
├── server/ # MCP server tool implementations
└── tools/ # MCP tool helpers and utilities
License
Apache-2.0
Metadata
Release files for darnit-core 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| darnit_core-0.1.1.tar.gz | 312.2 kB | Without provenance | Details for darnit_core-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| darnit_core-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for darnit_core-0.1.1-py3-none-any.whl |
Total release size: 683.4 kB
Release files / darnit_core-0.1.1.tar.gz
| Download URL | darnit_core-0.1.1.tar.gz |
|---|---|
| Size | 312.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9ef81d65b388ba1e85db8f2632b239dd719db74a48cb7b0ed0d0bd1a0fbafbd7
|
|
BLAKE2b-256 checksum How to use checksums |
9e6ba7ec97e6417571ed946f11b5bf6a62ff063d6335f0f53e12f8b424a047ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / darnit_core-0.1.1-py3-none-any.whl
| Download URL | darnit_core-0.1.1-py3-none-any.whl |
|---|---|
| Size | 371.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1eb1a66284a00f7169cfc2e471cbbd6c8bbdfb14ef1729c9797fe9198d3860d1
|
|
BLAKE2b-256 checksum How to use checksums |
3a3b26fe70c1e51723621aa497f565f1d236af416518537b439009d1817c9c62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for darnit-core 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.