<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Сабака Чабака</title>
    <description>The latest articles on DEV Community by Сабака Чабака (@__f5cd865bec2).</description>
    <link>https://dev.to/__f5cd865bec2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4116379%2Ff6102c0c-dd73-4fe0-a7a3-aaa730c51cf7.png</url>
      <title>DEV Community: Сабака Чабака</title>
      <link>https://dev.to/__f5cd865bec2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/__f5cd865bec2"/>
    <language>en</language>
    <item>
      <title>I was tired of heavy cache systems, so I built my own open-source KV-Storage🚀</title>
      <dc:creator>Сабака Чабака</dc:creator>
      <pubDate>Tue, 08 Sep 2026 19:52:45 +0000</pubDate>
      <link>https://dev.to/__f5cd865bec2/i-was-tired-of-heavy-cache-systems-so-i-built-my-own-open-source-kv-storage-2cgk</link>
      <guid>https://dev.to/__f5cd865bec2/i-was-tired-of-heavy-cache-systems-so-i-built-my-own-open-source-kv-storage-2cgk</guid>
      <description>&lt;p&gt;A few weeks ago, I ran into a frustrating problem. Every time I needed a fast standalone Key-Value cache for my pet projects or microservices, I had to deploy a full Redis instance. Setting up Redis, managing its memory overhead, and dealing with external configurations felt too bloated for small-to-medium tasks. &lt;/p&gt;

&lt;p&gt;I just wanted a standalone, native, and extremely lightweight client-server KV database built entirely in modern C#.&lt;/p&gt;

&lt;p&gt;So, I decided to build it myself.&lt;/p&gt;

&lt;p&gt;That’s how &lt;strong&gt;SabaMemDB&lt;/strong&gt; was born. It’s an open-source, client-server In-Memory Key-Value database focused on performance, zero-allocation discipline, and simplicity.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ What it does (Features)
&lt;/h3&gt;

&lt;p&gt;Here is what I’ve managed to implement so far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ &lt;strong&gt;In-Memory Speed &amp;amp; Zero-Allocation&lt;/strong&gt; — Super fast data access optimized for performance-critical .NET applications with a focus on low memory footprint.&lt;/li&gt;
&lt;li&gt;⚛ &lt;strong&gt;Atomic Operations&lt;/strong&gt; — Supports atomic incrementing and decrementing for numeric values out of the box.&lt;/li&gt;
&lt;li&gt;🐳 &lt;strong&gt;Docker-Ready&lt;/strong&gt; — Ships with a ready-to-use Docker image in the GitHub Registry. No complex installation needed.&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Client-Server Architecture&lt;/strong&gt; — Lightweight server instance + standalone client NuGet package.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💻 Quick Code Example
&lt;/h3&gt;

&lt;p&gt;Here is how simple it is to use the client library:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;SabaMemDb.Client&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;SMDBClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"localhost:8080"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"123"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"user:101:score"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Incr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"user:101:score"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"user:101:score"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Current score: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 105&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🤝 The next step: Looking for first contributors!
&lt;/h3&gt;

&lt;p&gt;Right now, &lt;strong&gt;I am a solo maintainer&lt;/strong&gt; working on this in my free time. The core server engine and basic client are fully functional, but there are so many cool features we can add together (like persistent storage snapshots, CLI tools, or advanced data types).&lt;/p&gt;

&lt;p&gt;Whether you are a seasoned .NET performance geek or looking to make your &lt;strong&gt;very first open-source contribution&lt;/strong&gt;, you are highly welcome! &lt;/p&gt;

&lt;p&gt;To make your start as smooth as possible, I’ve already created a few &lt;strong&gt;&lt;code&gt;good first issue&lt;/code&gt;&lt;/strong&gt; tickets on GitHub. They range from simple documentation improvements to minor feature requests and cleaning up open tasks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📂 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/sabaka-chabaka/SabaMemDB" rel="noopener noreferrer"&gt;https://github.com/sabaka-chabaka/SabaMemDB&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will personally review every Pull Request, answer all questions in issues, and help you get onboarded. &lt;/p&gt;




&lt;p&gt;&lt;em&gt;I’d love to hear your thoughts! Does the .NET ecosystem need more native client-server KV stores, or is Redis always your default choice? Let me know in the comments. And if you like the project, a ⭐ on GitHub would mean the world to me!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>github</category>
      <category>csharp</category>
      <category>redis</category>
    </item>
  </channel>
</rss>
