Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion src/StackExchange.Redis/AutoConfigureInfoField.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using RESPite;

namespace StackExchange.Redis;
Expand Down Expand Up @@ -38,8 +38,20 @@ internal enum AutoConfigureInfoField
[AsciiHash("valkey_version")]
ValkeyVersion,

[AsciiHash("dragonfly_version")]
DragonflyVersion,

[AsciiHash("memurai_version")]
MemuraiVersion,

[AsciiHash("redict_version")]
RedictVersion,

[AsciiHash("server_mode")]
ServerMode,

[AsciiHash("executable")]
Executable,
}

/// <summary>
Expand Down
22 changes: 21 additions & 1 deletion src/StackExchange.Redis/Enums/ProductVariant.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// ReSharper disable once CheckNamespace
// ReSharper disable once CheckNamespace
namespace StackExchange.Redis;

/// <summary>
Expand All @@ -24,5 +24,25 @@ public enum ProductVariant
/// </summary>
Garnet,

/// <summary>
/// <a href="https://www.dragonflydb.io/">Dragonfly</a>
/// </summary>
Dragonfly,

/// <summary>
/// <a href="https://www.memurai.com/">Memurai</a>
/// </summary>
Memurai,

/// <summary>
/// <a href="https://redict.io/">Redict</a>
/// </summary>
Redict,

/// <summary>
/// <a href="https://keydb.dev">KeyDB</a>
/// </summary>
KeyDB,

// if you want to add another variant here, please open an issue with the details (variant name, INFO output, etc.)
}
4 changes: 4 additions & 0 deletions src/StackExchange.Redis/PublicAPI/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,7 @@ static StackExchange.Redis.BitFieldOperation.IncrementBy(StackExchange.Redis.Bit
static StackExchange.Redis.BitFieldOperation.operator ==(StackExchange.Redis.BitFieldOperation x, StackExchange.Redis.BitFieldOperation y) -> bool
static StackExchange.Redis.BitFieldOperation.operator !=(StackExchange.Redis.BitFieldOperation x, StackExchange.Redis.BitFieldOperation y) -> bool
static StackExchange.Redis.BitFieldOperation.Set(StackExchange.Redis.BitFieldEncoding encoding, StackExchange.Redis.BitFieldOffset offset, long value, StackExchange.Redis.BitFieldOverflow overflow = StackExchange.Redis.BitFieldOverflow.Wrap) -> StackExchange.Redis.BitFieldOperation
StackExchange.Redis.ProductVariant.Dragonfly = 3 -> StackExchange.Redis.ProductVariant
StackExchange.Redis.ProductVariant.Memurai = 4 -> StackExchange.Redis.ProductVariant
StackExchange.Redis.ProductVariant.Redict = 5 -> StackExchange.Redis.ProductVariant
StackExchange.Redis.ProductVariant.KeyDB = 6 -> StackExchange.Redis.ProductVariant
15 changes: 15 additions & 0 deletions src/StackExchange.Redis/ResultProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -995,6 +995,21 @@ protected override bool SetResultCore(PhysicalConnection connection, Message mes
productVariant = ProductVariant.Valkey;
productVersion = valSpan.ToString();
break;
case AutoConfigureInfoField.DragonflyVersion:
productVariant = ProductVariant.Dragonfly;
productVersion = valSpan.ToString();
break;
case AutoConfigureInfoField.MemuraiVersion:
productVariant = ProductVariant.Memurai;
productVersion = valSpan.ToString();
break;
case AutoConfigureInfoField.RedictVersion:
productVariant = ProductVariant.Redict;
productVersion = valSpan.ToString();
break;
case AutoConfigureInfoField.Executable when valSpan.EndsWith("/keydb-server"):
productVariant = ProductVariant.KeyDB;
break;
}
}
if (roleSeen && Format.TryParseEndPoint(primaryHost!, primaryPort, out var sep))
Expand Down
Loading