Llama.Grammar
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Llama.Grammar --version 1.0.0
NuGet\Install-Package Llama.Grammar -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Llama.Grammar" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Llama.Grammar" Version="1.0.0" />
<PackageReference Include="Llama.Grammar" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Llama.Grammar --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Llama.Grammar, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Llama.Grammar@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Llama.Grammar&version=1.0.0
#tool nuget:?package=Llama.Grammar&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Here's a README.md
file you can use for your C# class library Llama.Grammar, referencing the original project it builds upon:
# Llama.Grammar
**Llama.Grammar** is a C# class library that allows you to define JSON Schemas, C# objects dynamically and convert them to [GBNF (Grammar-Based Next-Token Format)](https://github.com/adrienbrault/json-schema-to-gbnf) grammars. It is useful for working with structured outputs in AI models like LLaMA, Mistral, or GPT when paired with inference runtimes that support GBNF grammars.
## Features
- 🧱 Fluent builder API for creating JSON Schema objects in C#
- 🧠 Converts JSON Schema to GBNF using Adrien Brault’s original grammar logic
- ✅ Supports complex schema features like:
- Nested objects
- Arrays and array constraints
- Enums and constants
- Required fields
- Pattern matching
- Nullable types
## Installation
Add the library to your project:
```bash
dotnet add package Llama.Grammar
Usage
using Llama.Grammar;
var schemaBuilder = new SchemaBuilder()
.Type("object")
.Properties(p => p
.Add("name", s => s.Type("string"))
.Add("age", s => s.Type("integer"))
.Add("nicknames", s => s.Type("array")
.MinItems(1)
.MaxItems(3)
.Items(i => i.Type("string"))))
.Required("name", "age");
string json = schemaBuilder.ToJson();
string gbnf = JsonSchemaToGbnf.Convert(json);
Console.WriteLine(gbnf);
Based on
This project is based on the excellent work by Adrien Brault, porting and wrapping his TypeScript/JavaScript logic for use in .NET.
GitHub: https://github.com/adrienbrault/json-schema-to-gbnf
License
MIT License. See LICENSE for details.
---
Would you like a badge set (NuGet, license, GitHub stars, etc.) added at the top?
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.