Llama.Grammar 1.0.0

There is a newer version of this package available.
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" />
                    
Directory.Packages.props
<PackageReference Include="Llama.Grammar" />
                    
Project file
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
                    
#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
                    
Install as a Cake Addin
#tool nuget:?package=Llama.Grammar&version=1.0.0
                    
Install as a Cake Tool

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 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.

Version Downloads Last Updated
1.0.5 662 5/15/2025
1.0.4 222 5/12/2025
1.0.2 138 5/11/2025
1.0.1 138 5/11/2025
1.0.0 138 5/11/2025