Open-source data toolkit for .NET
From data contracts
to actual data.
Packata is a .NET library and CLI for exploring, validating and provisioning datasets described by Frictionless Data Package v2 and ODCS contracts.
The asset workflow
Select a stage to explore an illustrative example. Provisioning is available through the .NET library.
Load a contract
Read a Data Package v2 or ODCS document into a shared model. Inspection reads metadata without opening the dataset.
$ packata contract inspect contract.yaml --output-format json
// Excerpt of the JSON result
"identity": { "name": "customer-directory" },
"assets": [ { "id": "customers", … } ]
Read about contract inspection
Discover assets and schema
Inspect an asset's fields, constraints, metadata and endpoint bindings using its exact identifier.
$ packata contract inspect contract.yaml --asset customers
Contract: customer-directory
└── Assets
└── customers
└── schema
└── fields
├── id
├── name
└── country
… (tree excerpt)
Explore the inspection command
Preview customers
$ packata data preview contract.yaml
--asset customers --limit 20
| id | name | country |
|---|---|---|
| 101 | Alice | BE |
| 102 | Bob | FR |
| 103 | Clara | DE |
Validate the contract
Check descriptor structure and supported semantic rules. Diagnostics identify invalid contract values; this command does not validate dataset records.
$ packata contract validate contract.yaml --output-format json
{
"schemaVersion": 1,
"source": "contract.yaml",
"valid": true,
"diagnostics": []
}
See validation scope and diagnostics
Provision through the .NET library
Deploy schema and load data into supported relational destinations. For example, use a configured DuckDB provider to build an in-memory destination.
// C# · with a mapped contract and configured connections/readers
using Packata.Provisioners.Database;
var provisioner = new DubUrlProvisionerBuilder(connections, readers)
.Using("duck").InMemory().WithDatabase("mydb").Build();
await provisioner.ExecuteAsync(contract);
Requires a compatible provider and driver. Schema deployment and bulk loading depend on destination capabilities. There is currently no provisioning CLI command.
Set up provisioning and check supportBuild with Packata
Your tools. Your workflow.
Works with open standards