Infinispan.Hotrod 10.0.0-beta.4

This is a prerelease version of Infinispan.Hotrod.
dotnet add package Infinispan.Hotrod --version 10.0.0-beta.4
                    
NuGet\Install-Package Infinispan.Hotrod -Version 10.0.0-beta.4
                    
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="Infinispan.Hotrod" Version="10.0.0-beta.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Infinispan.Hotrod" Version="10.0.0-beta.4" />
                    
Directory.Packages.props
<PackageReference Include="Infinispan.Hotrod" />
                    
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 Infinispan.Hotrod --version 10.0.0-beta.4
                    
#r "nuget: Infinispan.Hotrod, 10.0.0-beta.4"
                    
#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 Infinispan.Hotrod@10.0.0-beta.4
                    
#: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=Infinispan.Hotrod&version=10.0.0-beta.4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Infinispan.Hotrod&version=10.0.0-beta.4&prerelease
                    
Install as a Cake Tool

Infinispan.Hotrod

NuGet NuGet Downloads CI License

A .NET client for the Infinispan Hot Rod protocol.

Quick Start

Add the package to your project:

<PackageReference Include="Infinispan.Hotrod" Version="10.0.0-beta.2" />

Connect to an Infinispan cluster and use a cache:

var client = InfinispanClient.FromUri("hotrod://admin:password@127.0.0.1:11222");

var cache = client.NewCache(
    new StringMarshaller(), new StringMarshaller(), "default");

await cache.Put("key", "value");
var result = await cache.Get("key");

The URI supports multiple hosts (hotrod://host1,host2,host3), TLS (hotrods://...), and query parameters (?sasl_mechanism=PLAIN).

LINQ Queries

Query indexed caches with standard C# LINQ expressions — the provider translates them to Ickle queries automatically:

using Infinispan.Hotrod.Linq;

var cache = client.NewCache<Person>("people")
    .WithEncoding(MediaType.Protobuf)
    .Build();

var results = await cache.AsQueryable()
    .Where(p => p.BornIn == "London" && p.BornYear > 1989)
    .OrderBy(p => p.LastName)
    .Take(10)
    .ToListAsync();

String matching, projections, pagination, and terminal operators (CountAsync, FirstAsync, SingleAsync) are all supported. See the query documentation for details.

A full working example is in the Infinispan.Hotrod.Samples folder. More tutorials are available at infinispan.org.

Features

Supports the Hot Rod 4.1 protocol with a pipelining architecture (single connection per server, multiplexed requests):

  • CRUD: Get, GetWithVersion, GetWithMetadata, Put, PutIfAbsent, Replace, ReplaceWithVersion, Remove, RemoveWithVersion
  • Bulk: PutAll, GetAll, KeySet, Clear, Size
  • Iteration: Server-side iteration with EntrySet, Values, RetrieveEntries, RetrieveEntriesWithMetadata (IAsyncEnumerable)
  • Transactions: Client-side transaction buffering with optimistic locking, one-phase and two-phase commit
  • Near Caching: Client-side LRU cache with server-driven invalidation via event listeners
  • Query: Ickle query language and LINQ-to-Ickle provider
  • Continuous Queries: Real-time notifications when cache entries match or stop matching a query
  • Stats: Server-side cache statistics
  • Events: Client listeners with server-push event dispatch
  • Counters: Distributed strong and weak counters with get, set, add, compare-and-swap, reset
  • Multimaps: Associate multiple values with a single key (put, get, remove key/entry, contains, size)
  • Administration: Cache lifecycle (create, get-or-create, remove, list), templates, index management, schema registration, server task execution
  • Security: TLS (with optional server certificate verification), SASL authentication (PLAIN, SCRAM-SHA-256/384/512, GSSAPI, EXTERNAL)
  • Topology: Client intelligence with automatic cluster topology updates and failover
  • ASP.NET Integration: IDistributedCache and HybridCache implementations

Requirements

  • .NET 10 or later
  • Docker (for running tests — Testcontainers manages the Infinispan server automatically)

Building and Testing

dotnet build
dotnet test

Tests use Testcontainers to automatically pull and run an Infinispan server image — no manual server setup required.

Documentation

The full documentation (user guide + API reference) can be built using docs.proj:

dotnet msbuild docs.proj -t:BuildDocs

This requires asciidoctor with the asciidoctor-tabs extension and DocFX:

gem install asciidoctor 'asciidoctor-tabs:1.0.0.beta.6'
dotnet tool install -g docfx

Individual targets are also available:

Target Description
BuildAsciidoc Build the user guide HTML from AsciiDoc sources
BuildDocfx Generate the API reference with DocFX
BuildDocs Both of the above, merged into _docs/
PackageDocs BuildDocs + zip into docs.zip

To serve the API docs locally for preview:

docfx docfx.json --serve

Contributing

Contributions are welcome. Please open an issue to discuss features or report bugs, or submit a pull request.

License

Apache License 2.0

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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.

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
10.0.0-beta.4 31 9/2/2026
10.0.0-beta.3 29 9/2/2026
10.0.0-beta.2 60 8/24/2026
8.2.0-RC2 5,867 12/12/2017
8.2.0-Alpha3 1,208 6/22/2018
8.2.0-Alpha2 1,011 11/21/2017