Skip to content

Installation

Tayra is distributed as a set of NuGet packages. Install only what you need — Tayra.Core is the only required package.

Core Package

Every Tayra project needs the core package:

shell
dotnet add package Tayra.Core
powershell
Install-Package Tayra.Core

Key Store Packages

Tayra.Core includes a built-in InMemoryKeyStore for unit tests and throwaway demos — no additional package is needed to get started.

PackageUse Case
(built into Tayra.Core)Unit tests and throwaway demos (InMemoryKeyStore — keys lost on restart)
Tayra.KeyStore.SqliteLocal development — zero-config, file-based, persistent across restarts
Tayra.KeyStore.PostgreSqlLocal development, or self-managed production (with hardening)
Tayra.KeyStore.VaultProduction — HashiCorp Vault KV v2
Tayra.KeyStore.AzureKeyVaultProduction — Azure Key Vault secrets
Tayra.KeyStore.AwsParameterStoreProduction — AWS Systems Manager Parameter Store

Key Store Security

Tayra.KeyStore.Sqlite is for local development only. Tayra.KeyStore.PostgreSql can be used in production with proper hardening — see the Production Security Guide. For production without self-managed hardening, use a secrets manager (Vault, Azure Key Vault, or AWS KMS).

For production, choose a secrets manager:

shell
dotnet add package Tayra.KeyStore.Vault
shell
dotnet add package Tayra.KeyStore.AzureKeyVault
shell
dotnet add package Tayra.KeyStore.AwsParameterStore

For local development with persistent keys:

shell
dotnet add package Tayra.KeyStore.Sqlite
shell
dotnet add package Tayra.KeyStore.PostgreSql

Compliance Reporting Package

Tayra.Core already provides the technical foundation for GDPR compliance — field-level encryption, crypto-shredding, key rotation, audit trail, and all framework integrations. No additional package is needed to protect personal data.

The optional Tayra.Compliance package adds reporting and tooling on top: PII data maps (Art. 30), data subject access exports (Art. 15/20), breach notification reports (Art. 33/34), and formatted HTML compliance reports. This requires a Compliance edition license.

shell
dotnet add package Tayra.Compliance

See Licensing for edition details.

Integration Packages

Add framework integrations as needed:

PackageFramework
Tayra.EFCoreEntity Framework Core — transparent encrypt/decrypt via interceptors
Tayra.MartenMarten — document and event store encryption
Tayra.WolverineWolverine — message bus PII encryption middleware
Tayra.MassTransitMassTransit — message bus PII encryption filters
Tayra.MediatRMediatR — CQRS pipeline PII encryption behavior
Tayra.NServiceBusNServiceBus — incoming/outgoing pipeline PII encryption
Tayra.SerilogSerilog — automatic PII log scrubbing
Tayra.JsonSystem.Text.Json — encrypt/decrypt during JSON serialization
Tayra.MongoDBMongoDB — collection-level PII encryption wrapper
Tayra.AspNetCoreASP.NET Core — response body PII scrubbing middleware
shell
dotnet add package Tayra.EFCore
shell
dotnet add package Tayra.Marten
shell
dotnet add package Tayra.Wolverine
shell
dotnet add package Tayra.MassTransit
shell
dotnet add package Tayra.MediatR
shell
dotnet add package Tayra.NServiceBus
shell
dotnet add package Tayra.Serilog
shell
dotnet add package Tayra.Json
shell
dotnet add package Tayra.MongoDB
shell
dotnet add package Tayra.AspNetCore

Target Frameworks

All Tayra packages target .NET 8, 9, and 10:

TargetStatus
net8.0Supported (LTS)
net9.0Supported (STS)
net10.0Supported (LTS)

Roslyn Analyzers

The Tayra.Core package automatically includes Roslyn analyzers that validate PII attribute usage at compile time. No separate installation is needed.

RuleDescription
TAYRA001Entity with [PersonalData] must have a [DataSubjectId] property
TAYRA002[DataSubjectId] must be on a Guid or string property
TAYRA003[PersonalData] on non-string requires [SerializedPersonalData]
TAYRA004[DeepPersonalData] must be on a class type, not a primitive

Framework Compatibility

TayraMartenWolverineEF CoreASP.NET CoreMassTransitMediatRNServiceBusSerilogMongoDB Driver
1.x8.x5.x9.x9.x8.x12.x9.x4.x3.x

CLI Tool

Tayra includes a .NET global tool for operational tasks:

shell
dotnet tool install --global Tayra.Cli

See CLI documentation for available commands.

Package Dependencies

Tayra.Core (standalone, zero framework deps — includes InMemoryKeyStore)
├── Tayra.Compliance           → GDPR compliance reporting (PII inventory, access exports, breach reports)
├── Tayra.KeyStore.Sqlite      → Microsoft.Data.Sqlite
├── Tayra.KeyStore.PostgreSql  → Npgsql
├── Tayra.KeyStore.Vault       → VaultSharp
├── Tayra.KeyStore.AzureKeyVault → Azure.Security.KeyVault.Secrets
├── Tayra.KeyStore.AwsParameterStore      → AWSSDK.SimpleSystemsManagement
├── Tayra.EFCore               → Microsoft.EntityFrameworkCore
├── Tayra.Marten               → Marten
├── Tayra.Wolverine            → WolverineFx
├── Tayra.MassTransit          → MassTransit
├── Tayra.MediatR              → MediatR
├── Tayra.NServiceBus          → NServiceBus
├── Tayra.Serilog              → Serilog
├── Tayra.Json                 → System.Text.Json
├── Tayra.MongoDB              → MongoDB.Driver
└── Tayra.AspNetCore           → Microsoft.AspNetCore (SDK)

Central Package Management

If you use multiple Tayra packages, consider Central Package Management to keep all Tayra package versions in sync from a single Directory.Packages.props file.