diff --git a/StackExchange.Redis.Extensions.sln b/StackExchange.Redis.Extensions.sln
index 185911a3..10b79739 100644
--- a/StackExchange.Redis.Extensions.sln
+++ b/StackExchange.Redis.Extensions.sln
@@ -25,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StackExchange.Redis.Extensi
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StackExchange.Redis.Extensions.Protobuf", "src\serializers\StackExchange.Redis.Extensions.Protobuf\StackExchange.Redis.Extensions.Protobuf.csproj", "{11FC924C-275C-453F-8923-8AEF7EC90B82}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StackExchange.Redis.Extensions.Bebop", "src\serializers\StackExchange.Redis.Extensions.Bebop\StackExchange.Redis.Extensions.Bebop.csproj", "{5CCD8D5D-EBCA-4C6E-A345-F81666A53A6D}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StackExchange.Redis.Extensions.System.Text.Json", "src\serializers\StackExchange.Redis.Extensions.System.Text.Json\StackExchange.Redis.Extensions.System.Text.Json.csproj", "{C83F298E-4FE1-4128-89C1-EECB676FA913}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StackExchange.Redis.Extensions.Utf8Json", "src\serializers\StackExchange.Redis.Extensions.Utf8Json\StackExchange.Redis.Extensions.Utf8Json.csproj", "{3AB92D8A-14CB-4551-8C37-569067B9D6A5}"
diff --git a/src/serializers/StackExchange.Redis.Extensions.Bebop/BebopSerializer.cs b/src/serializers/StackExchange.Redis.Extensions.Bebop/BebopSerializer.cs
new file mode 100644
index 00000000..639a1d22
--- /dev/null
+++ b/src/serializers/StackExchange.Redis.Extensions.Bebop/BebopSerializer.cs
@@ -0,0 +1,30 @@
+using System;
+using Bebop.Runtime;
+
+using StackExchange.Redis.Extensions.Core;
+
+namespace StackExchange.Redis.Extensions.Bebop
+{
+ ///
+ /// Bebop implementation of
+ ///
+ public class BebopSerializer : ISerializer
+ {
+ ///
+ public byte[] Serialize(object item)
+ {
+ var record = BebopMirror.FindRecordFromType(item.GetType());
+ return record.Encode(item);
+ }
+
+ ///
+ public T Deserialize(byte[] serializedObject)
+ {
+ var record = BebopMirror.FindRecordFromType(typeof(T));
+ if (record.Decode(serializedObject) is T value)
+ return value;
+
+ throw new InvalidOperationException($"Unable to cast {typeof(T)} to {record.Type}");
+ }
+ }
+}
diff --git a/src/serializers/StackExchange.Redis.Extensions.Bebop/StackExchange.Redis.Extensions.Bebop.csproj b/src/serializers/StackExchange.Redis.Extensions.Bebop/StackExchange.Redis.Extensions.Bebop.csproj
new file mode 100644
index 00000000..f6355c9d
--- /dev/null
+++ b/src/serializers/StackExchange.Redis.Extensions.Bebop/StackExchange.Redis.Extensions.Bebop.csproj
@@ -0,0 +1,15 @@
+
+
+ Use Bebop serialization with StackExchange.Redis.
+ Use Bebop serialization with StackExchange.Redis.
+
+
+
+
+
+
+
+
+
+
+