Specs that travel with your data
A single fluent spec becomes LINQ, SQL, NoSQL queries or in-memory checks.
Vali-Flow.Core
Dependency-free fluent builder for expression trees, validation, and reusable specs.
Vali-Flow (EF Core)
Translate specs to LINQ and execute against DbSet<T> with async evaluators.
Vali-Flow.InMemory
Fast in-memory evaluator for unit tests, caching, and local rules.
Vali-Flow.Sql
Generate SQL WHERE clauses for Dapper and raw ADO.NET scenarios.
Vali-Flow.NoSql.MongoDB
Build MongoDB filter definitions directly from specs.
Vali-Flow.NoSql.DynamoDB
Translate specs into DynamoDB expressions for fast reads.
Vali-Flow.NoSql.Elasticsearch
Create Elasticsearch queries from a single spec.
Vali-Flow.NoSql.Redis
Generate Redis/RediSearch filters for fast lookup.
Build → translate → execute
Core builds the expression tree. Evaluators translate it to the store you run.
new ValiFlow<Product>()WhereAsync(spec)ToSql(spec)IsValid(entity)ToFilter(spec)ToExpression(spec)ToQuery(spec)ToRediSearch(spec)builder.Services.AddValiFlowEvaluator<Product, AppDbContext>();// Build a specvar spec = new ValiFlow<Product>() .EqualTo(p => p.IsActive, true) .GreaterThan(p => p.Price, 10m);var result = await evaluator.WhereAsync(spec);8 NuGet packages. Install only what you need.
Start with Core, add one evaluator, or mix multiple stores.
Core builder for expression-tree specs and validation.
dotnet add package Vali-Flow.CoreIn-memory evaluator for tests and local filtering.
dotnet add package Vali-Flow.InMemoryMongoDB evaluator using filter definitions.
dotnet add package Vali-Flow.NoSql.MongoDBDynamoDB evaluator with native expression translation.
dotnet add package Vali-Flow.NoSql.DynamoDBElasticsearch evaluator for query DSL output.
dotnet add package Vali-Flow.NoSql.ElasticsearchRedis evaluator with RediSearch query generation.
dotnet add package Vali-Flow.NoSql.RedisWhere Vali-Flow fits best
Compose rules once, keep behavior consistent across services and storage layers.
Repository Filters
Build specs in the application layer and run them inside EF Core or raw SQL repos.
WhereAsync(spec)Cross-Store Consistency
Use the same spec for MongoDB, DynamoDB, Elasticsearch and Redis search.
ToFilter / ToQuery / ToSqlTesting & Validation
Run specs in memory to validate domain rules in fast unit tests.
IsValid(entity)