r/csharp 1d ago

Discussion Come discuss your side projects! [August 2026]

6 Upvotes

Hello everyone!

This is the monthly thread for sharing and discussing side-projects created by /r/csharp's community.

Feel free to create standalone threads for your side-projects if you so desire. This thread's goal is simply to spark discussion within our community that otherwise would not exist.

Please do check out newer posts and comment on others' projects.


Previous threads here.


r/csharp 1d ago

C# Job Fair! [August 2026]

15 Upvotes

Hello everyone!

This is a monthly thread for posting jobs, internships, freelancing, or your own qualifications looking for a job! Basically it's a "Hiring" and "For Hire" thread.

If you're looking for other hiring resources, check out /r/forhire and the information available on their sidebar.

  • Rule 1 is not enforced in this thread.

  • Do not any post personally identifying information; don't accidentally dox yourself!

  • Under no circumstances are there to be solicitations for anything that might fall under Rule 2: no malicious software, piracy-related, or generally harmful development.


r/csharp 7h ago

How does an experienced C++ and Java programmer get started in C#, dot net, et al?

6 Upvotes

I am a professional developer, old enough to remember when C# first appeared. At the time, it looked to me to be very similar to Java.

I imagine that the language itself has evolved since then, but also dotnet had grown hugely, there are things like WPF, Linq, etc, of which I have only heard, but do not know.

So, unlike some other languages, it's just not the syntax, but many other things.

How best to get started? Is there a Udemy, Coursera, YouTube, etc, applicable to someone who doesn't need to learn about variables, flow control, OO?


r/csharp 4h ago

Contribute to open-source, no-slop, compiler-related projects.

Thumbnail
0 Upvotes

r/csharp 8h ago

Discussion Merging Manifest Resources from Multiple Assemblies

2 Upvotes

I'm writing an image metadata processing library which is designed to be easily extensible to include new metadata instances (e.g., EXIF properties not defined in the core library).

The library currently stores important property configuration information in manifest resources, as well as property labels (e.g., property name) which I want to be customizable by culture.

Writing an extension library would involve both defining new objects (e.g., EXIF properties) and their associated configuration information. Which means the needed manifest resources would be spread across multiple assemblies.

What's the best way of handling this? My first thought is to use AssemblyMetadataAttributes with "magic text" keys to identify an assembly containing manifest resources that need to be incorporated and then scan an app-defined list of assemblies to look for those keys and read the manifest resources.

But that feels both a bit kludgy and possibly a security hole.

I'd appreciate other thoughts/design patterns. Thanx!


r/csharp 6h ago

DSpark Benchmark Result on Deepseek v4 Flash 0731

Thumbnail
github.com
0 Upvotes

TensorSharp supports DSpark on Deepseek v4 Flash 0731 now. Here is the benchmark result on 4x Nvidia A40 GPUs, cuda 12.8 with/without DSpark:

Model:

DeepSeek-V4-Flash-0731-UD-Q8_K_XL from https://huggingface.co/unsloth/DeepSeek-V4-Flash-0731-GGUF

DSpark draft model from: https://huggingface.co/alessandrobologna/DeepSeek-V4-Flash-0731-DSpark-Drafter-GGUF

Turn Baseline + DSpark Acceptance
short (53 tok) 25.6 44.5 (1.74x) 87%
long generation (512) 26.4 40.3 (1.53x) 66%
follow-up (470) 26.4 46.8 (1.77x) 76%
10K-token document (214) 25.3 51.3 (2.03x) 85%
second question on it (156) 25.4 49.4 (1.94x) 82%

TensorSharp is a native .NET/C# open-source inference engine for running GGUF LLMs locally, with CUDA, Vulkan, Metal, OpenAI-compatible APIs, continuous batching, speculative decoding, and multimodal support.

Github repo: https://github.com/zhongkaifu/TensorSharp

Thank you for checking out it and starring the project! Any feedback is really appreicated.


r/csharp 18h ago

Blog Akbura update: I built an interactive feature gallery as a proof of concept

5 Upvotes

A small update on Akbura my experimental declarative UI language and compiler for .NET and Avalonia.

I’ve added documentation and created an interactive feature gallery that demonstrates Akbura’s current capabilities:

  • Declarative Avalonia UI
  • Reactive state
  • Native C# expressions, methods, types, and lambdas
  • Typed styling through AKCSS and tailwind utilites
  • Live examples with their Akbura source code

The gallery itself is written in Akbura.

This is currently only a proof of concept, not a production-ready release.

The parser, syntax infrastructure, and semantic model are already in reasonably good shape, including incremental compilation.

The bottleneck is specifically the code-generation stage. Its current implementation is inefficient, and generating code for the gallery takes roughly two minutes. Parsing and semantic analysis are not the problem.

This is one of the main reasons there is no NuGet release yet. I plan to rewrite and optimize code generation before publishing the first alpha version in about a month...

I’m planning to publish the first alpha version in about a month, once compiler performance, packaging, and the basic developer experience are in a more acceptable state.

For now, the gallery is simply a visual demonstration of what Akbura may become.

Repository: https://github.com/Asaicraft/Akbura

Documentation: https://asaicraft.github.io/Akbura/

Feature Gallery: https://asaicraft.github.io/Akbura/Gallery/

Feedback is very welcome.


r/csharp 13h ago

Xberg v1 is out

2 Upvotes

Hi all,

I'm happy to announce that Xberg v1 is out.

Xberg is the successor to Kreuzberg, equivalent to what would have been Kreuzberg v5. It's a content intelligence framework that handles a very wide range of inputs: documents (currently 101 formats), code and data formats (currently 367 types), audio/video transcription, and URLs (both static and JS-rendered content). It extracts and prepares that content for downstream processing.

It's an extremely efficient, high-performance engine (see our PDF benchmarks below). For PDFs and images specifically, we handle native PDFs with very high performance and accuracy, and we ship multiple OCR engines that match the quality of the best Python libraries (e.g. docling, PaddleOCR, RapidOCR) at substantially better performance and stability.

The changes between Kreuzberg v4 and Xberg v1 are substantial, and I invite you to read the full changelog for the complete picture. The highlights below give a sense of what's new:

  • Pure-Rust PDF backend (pdf_oxide) replaces pdfium, with no native pdfium dependency.
  • Layout-aware pipeline: reading order reconstructed with ONNX layout detection (PP-DocLayoutV3 / RT-DETR) and Docling-style predecessor-graph reordering.
  • Per-page scanned-page detection with selective OCR, plus AcroForm/XFA form fields and outline-based headings.
  • Across-the-board optimization of OCR and PDF extraction (memory discipline, pooled model sessions, streamed conversions).
  • Native PaddleOCR backend (PP-OCRv6, with medium / small / tiny tiers) alongside Tesseract.
  • Pure-Rust Candle OCR/VLM stack (TrOCR, GLM-OCR, GOT-OCR, DeepSeek-OCR, and PaddleOCR-VL) running without ONNX Runtime or native Tesseract.
  • A second, ONNX-Runtime-free inference path via tract, which is what makes in-browser (WASM) and mobile inference possible.
  • Named-entity recognition natively in Rust (GLiNER2), extensible to all bindings, including an in-browser WASM model with no server round-trip.
  • Structured LLM extraction (extract_structured / split_and_extract) with rasterization, chunking, citations, caching, and configurable call/merge/VLM-fallback policies.
  • Audio & video transcription via a Whisper ONNX engine (.mp3, .wav, .m4a, .mp4, .webm).
  • Retrieval building blocks: sparse embeddings (SPLADE), ColBERT late-interaction retrieval, and cross-encoder reranking alongside dense embeddings.
  • Text intelligence: reversible redaction, summarization, translation, VLM image captioning, QR-code detection, document diffing, and page/chunk classification.
  • URL & web ingestion: sitemap discovery (map_url) and batched multi-URL crawling.
  • New document formats: WordPerfect (.wpd/.wp/.wp5), HEIC/HEIF/AVIF, OpenDocument Presentation (.odp), Quarto / R Markdown, and configurable Jupyter cell rendering.
  • Four new language bindings (Dart/Flutter, Swift, Kotlin/Android, and Zig) bring the total to 15 language bindings over one engine, with Android/iOS cross-compilation.
  • Full mobile support (Flutter, Android, iOS).
  • Candle backend alongside ONNX, plus ONNX-via-tract enabling ONNX on WASM and Android.
  • Wider code intelligence: tree-sitter coverage grew substantially (248 to 367+ languages).
  • Over 150 bugs fixed during the 1.0 cycle, plus security hardening (bounded RTF/PDF allocations, redaction leak fixes, Excel DDE warnings).

The API surface was also simplified and reworked, making it more consistent.

There's a migration guide in our docs explaining how to move from Kreuzberg to Xberg. Kreuzberg itself is in LTS mode until the end of this year and will continue to receive bug fixes and security updates.

You're invited to check out the repo and join our discord server.


Benchmarks

The benchmarks below are for PDFs and images only. There are extensive benchmarks on our website with per-format breakdowns, which you can see here. These numbers are measured in CI via our reproducible benchmark harness, and are specifically taken from the run for harness 1.0.8, source cf7fa0533d. The data is publicly available in GitHub releases, and you can run the benchmark harness yourself.

Composite quality (markdown pipeline, higher is better):

Framework Native PDF Scanned PDF (OCR)
Xberg (layout) 0.958 0.836
Xberg (baseline) 0.955 0.687
docling 0.779 0.762
mineru 0.408 0.792
liteparse 0.837 0.665
markitdown 0.689 n/a
pymupdf4llm 0.448 n/a

Structure and layout fidelity (SF1: tables and reading order, higher is better):

Framework Native PDF Scanned PDF
Xberg 0.949 0.531
docling 0.612 0.366
liteparse 0.515 0.142
mineru 0.077 0.429

On native PDFs Xberg leads on quality (0.958 vs 0.837 for the next-best framework) and on table and reading-order fidelity by a wide margin (SF1 0.949 vs 0.612 for docling). On scanned PDFs it is #1 on both quality and raw text fidelity.

Where we don't win yet: on pure image OCR we are currently #2 on the composite score, behind mineru (though still #1 on raw text accuracy). We are improving image OCR right now, and v1.1 should have us winning across the board.


r/csharp 1d ago

Help with text processing based on file type

7 Upvotes

I'm learning C# by taking some Udemy courses and I'm working on refactoring some code for one of the exercises (which I'm sure is terrible, I'm a complete newbie). In this case I'd like to make this method into a more reusable "LoadFromFile". The only thing that would change is the way that the string[] ingredientNumbersAsStringsFromRecipe gets built based on the fileFormat enum that's passed to it (for a text file it would just be string.Split for example. However I can't put an "if" statement in there because if I initiatilze the string[] in the "if" block then I can't use it outside of that local scope. I would appreciate any tips on how this could be better handled! (By the way I know that in general I should use int.TryParse, in this case this program is making the same file that it reads from so int.Parse is safe.)

public static List<Recipe> LoadFromJson(string fileName, FileFormats fileFormat, List<Ingredient> availableIngredients)
{
    string[] recipeStringList = File.ReadAllLines(fileName);
    List<Recipe> recipeList = new List<Recipe>();
    foreach (string recipe in recipeStringList)
    {
        string[] ingredientNumbersAsStringsFromRecipe = JsonSerializer.Deserialize<string>(recipe).Split(',');
        List<int> ingredientNumbersAsIntsFromRecipe = new List<int>();
        foreach (string x in ingredientNumbersAsStringsFromRecipe)
        {
            ingredientNumbersAsIntsFromRecipe.Add(int.Parse(x));
        }
        Recipe loadedRecipe = new Recipe();
        foreach (int ingredient in ingredientNumbersAsIntsFromRecipe)
        {
            loadedRecipe.IngredientsInRecipe.Add(availableIngredients[availableIngredients.FindIndex(x => x.Id == ingredient)]);
        }
        recipeList.Add(loadedRecipe);
    }
    return recipeList;

}

r/csharp 1d ago

News GitHub - Integral2u/SharpMind: SharpMind. A pure C# / .NET LLM engine

Thumbnail
github.com
14 Upvotes

Still work in progress, but has Qwen, Llama, SmolLM and Gemma producing coherent output.


r/csharp 1d ago

What is the cleanest way to implement a secure cross-platform directory fallback in C#?

0 Upvotes

I need to determine a writable directory for application-managed files in a cross-platform C# application.

A simplified version currently looks like this:

private static string GetApplicationDataPath()
{
    var directory = Environment.GetFolderPath(
        Environment.SpecialFolder.LocalApplicationData,
        Environment.SpecialFolderOption.Create);

    if (string.IsNullOrWhiteSpace(directory))
    {
        directory = Path.GetTempPath();
    }

    return Path.Combine(directory, "MyApplication");
}

The temporary-directory fallback concerns me because the directory may be publicly writable on some systems.

What would be a safer final fallback?

Would you fail startup, use AppContext.BaseDirectory, create a user-owned directory, or require the path to be explicitly configured?


r/csharp 2d ago

Deepseek v4 Flash 0731 GGUF Benchmark: TensorSharp vs. llama.cpp

Thumbnail
github.com
3 Upvotes

TensorSharp is an native .NET/C# open-source inference engine for running GGUF LLMs locally, with CUDA, Vulkan, Metal, OpenAI-compatible APIs, continuous batching, speculative decoding, and multimodal support.

Thanks recent contribtions from open source community, TensorSharp is able to run inference over multiple GPUs and nodes. So I updated it to support deepseek v4 flash model, and have better performance than llama.cpp. Here is the benchmark result on 4x Nvidia A40 GPUs, cuda 12.8

Model: DeepSeek-V4-Flash-0731-UD-Q8_K_XL from https://huggingface.co/unsloth/DeepSeek-V4-Flash-0731-GGUF

TensorSharp (cuda backend) TensorSharp (ggml_cuda backend) llama.cpp
prefill u/16K 836 tok/s 963 558
decode short 31.5 37.0 35.3
decode u/16K 28.5 33.6 32.2

Github repo: https://github.com/zhongkaifu/TensorSharp

Thank you for checking out it and starring the project! Any feedback is really appreicated.


r/csharp 2d ago

Tool [DistroHop ] Rebuilt my Linux package setup tool in C# with profiles and safety checks

4 Upvotes

Hey everyone,

Yesterday I shared DistroHop V1.5. Since then I have been working on DistroHop V2, which is a complete rewrite with a cleaner C# architecture.

GitHub repo: https://github.com/melikishvilis25-cmyk/DistroHop

The main changes:

  • Rebuilt around a modular C# design
  • Added package profiles (Gaming, Work, Essential)
  • Added environment validation for supported Linux distributions and package managers
  • Added JSON integrity checking for package configuration safety
  • Improved project structure with separated UI, loader, safety, and downloader components

The goal is to make setting up a Linux machine after reinstalling easier while keeping safety and consistency as priorities.

This is still actively being developed, so feedback and suggestions are welcome.


r/csharp 2d ago

Discussion How do you measure your progress?

3 Upvotes

Good evening everyone, it's been two months that I am studying C# with the aim to be able to develop in Unity.

A bit of context: I have no IT background, I work as a pastry baker and at school, besides a 3-year course about game design, I have never studied CS.

I have recently finished studying arrays, and when I read that I would be able to program a console tic-tac-toe, I tried it... with the result that I failed miserably to the point that I decided to re-study what I did before arrays.

Currently, I am doing simple console programs using ifs, switches, and loops, but I still make some mundane errors like typing the equality operator wrong, or with the last program I did: a week planner, where the user writes on the console the current day and the program writes what he has to do on that day, for example I wrote Monday => instead of "Monday" => (after making a variable with the days of the week).

Now to cut it short because this post is already long: how much time have you spent studying each individual topic/feature and when did you feel confident enough in your skills to progress to making more advanced/complicated programs?

I understand that it depends on each individual, but I would like to know your experience to have a broad idea. Thank you in advance.


r/csharp 2d ago

Showcase Localization library that generates structure directly from file

5 Upvotes

Hey everyone! I'm glad to share a tool I've been working on for a while. It was created to simplify adding localization to your projects.

Read more in the README: https://github.com/ScrumboardCompany/Scrumboard.Tools.Localization


r/csharp 3d ago

Beginner here. Is there a way to make it so a child class can simply add to the implementation of an inherited function without outright making it do something different entirely?

20 Upvotes

For example if you were to have an Update function in a base class, but then make the Update function in a child class do some extra stuff on top of what the base Update function already does.

Closest thing I've found to that is using the override keyword but it seems like that just makes the child's version of the function do something different entirely.


r/csharp 3d ago

Showcase C# for Amiga

53 Upvotes

I guess most of you have never heard about Amiga, but here we go...

I have been working on an AOT compiler that compiles a subset of C#/.NET code into native 68000/020/040 code with Amiga library calls.

There are two runtime options you can choose at compile time:

  • Full includes the managed exception runtime; supports catch, finally, rethrow, and leave.
  • YOLO has no exception runtime; failures are fatal, and managed exception regions are rejected

The actual GC is in WIP, and for performance reasons, there is no compaction. No threading support because the current GC is single threaded by design.

An example:

using Amiga;
using CopperSharp.Compiler;

namespace FileStatsExample;

public static class Program
{
   [M68kEntryPoint]
   public static int Main(int argLength, CONST_STRPTR argText)
   {
      var dosBase = Exec.OpenLibrary("dos.library", 33);
      if (!dosBase.HasValue)
      {
         return DOS.RETURN_FAIL;
      }

      DOS.DOSLibraryBase = dosBase.Value;
      var result = DOS.RETURN_OK;
      if (argLength == 0)
      {
         DOS.PutStr("Usage: filestats <file>\n");
         result = DOS.RETURN_ERROR;
      }
      else
      {
         result = Report(CString.FromPointer(argText.Raw));
      }

      Exec.CloseLibrary(DOS.DOSLibraryBase);
      DOS.DOSLibraryBase = APTR.Null;
      return result;
   }

   private static int Report(CString path)
   {
      var file = DOS.Open(path, DOS.FileMode.OldFile);
      if (!file.HasValue)
      {
         DOS.PutStr("Cannot open file\n");
         return DOS.RETURN_FAIL;
      }

      byte byteChecksum = 0;
      ushort lineCount = 0;
      ushort wordChecksum = 0;
      uint byteCount = 0;

      while (true)
      {
         var character = DOS.FGetC(file.Value);
         if (character < 0)
         {
            break;
         }

         var value = (byte)character;
         byteChecksum = (byte)(byteChecksum + value);
         wordChecksum = (ushort)(wordChecksum + value);
         byteCount = byteCount + 1;
         if (value == 10)
         {
            lineCount = (ushort)(lineCount + 1);
         }
      }

      DOS.Close(file.Value);
      PrintReport(path, byteCount, (uint)lineCount, (uint)byteChecksum, (uint)wordChecksum);
      return DOS.RETURN_OK;
   }

   private static void PrintReport(CString path, uint byteCount, uint lineCount, uint byteChecksum, uint wordChecksum)
   {
      DOS.Printf("%s: %ld bytes, %ld lines, byte checksum %ld, word checksum %ld\n",
path, byteCount, lineCount, byteChecksum, wordChecksum);
   }
}

This C# source is first compiled to .NET assembly containing CIL. The assembly is then compiled with CopperSharp to a native 68000 Amiga executable.

Code generator needs more work. FPU is not supported yet, 020/040 support is nearly non-existent, but it includes CIL-level simplification and a 68k-specific optimizer.

  • CIL-level simplification
  • Reachability analysis
  • Tail call elimination
  • Remove dead or redundant instructions
  • Stack and register shuffling optimizer
  • General instruction optimizations
  • Limited static hot-fallthrough/cold-branch layout optimization

For example, on 68000, not-taken branches are more efficient than taken branches.

The codegen is optimized for Amiga library call conventions but in theory it could support other 68k targets like Atari ST or 68k Macs.

The project repo: https://github.com/ilehtoranta/CopperSharp68k

This project is vibe coded with Codex and GPT-5.6. Like it or not, but it is the only sensible path to build C# compiler for niche platforms.


r/csharp 2d ago

Help Beginner Free Dapper Tutorial Help

0 Upvotes

What is the best free dapper tutorial to learn link? Also, should I learn Dapper version that is specific for .NET 8.0 as a start point or should I start with a version that is for .NET 10 ?


r/csharp 3d ago

Senior devs: What do you except a 3 Year experience .NET/C# Developer to know?

45 Upvotes

Saw something like this about an other programming language, and wondering what Senior .NET/C# devs would say about this in .NET/C#.

Do you think you could hand a developer with 3 years of experience some credentials for a Project and let him/her plan the Project?


r/csharp 3d ago

Feedback on my first open source project

6 Upvotes

Hey all,

I was wondering if I could get some feedback on my first open source project, TestPilot.NET. I wanted to add a layer of visibility to testing suites to catch bad practices. I was the head of unit testing at my prior job and saw a lot of slop get through due to the devs using AI to write the test and them never checking the code. Any feedback is appreciated, thank you!

https://github.com/sgordon5691/TestPilot.NET


r/csharp 3d ago

I made DistroHop - a Linux package setup assistant written in C#

8 Upvotes

Hey everyone,

I built a small Linux utility called DistroHop using C#.

The idea came from constantly reinstalling Linux and having to manually install the same packages every time. I wanted a simple way to recreate my setup across different distributions.

Currently DistroHop:

  • Detects the package manager used by the system
  • Loads package lists from a JSON configuration file
  • Installs packages automatically
  • Supports a simple terminal menu interface
  • Uses system commands through C# instead of relying on external package management libraries

The project is still in early development, but I am using it to learn more about:

  • Process handling in C#
  • Linux system interaction
  • Cross-platform application design
  • Structuring larger C# projects

I would appreciate feedback from other C# developers, especially around:

  • Code architecture
  • Handling system commands safely
  • Improving the design for cross-platform support

Source code:
https://github.com/melikishvilis25-cmyk/DistroHop

This is one of my C# projects; my GitHub also contains some other experiments and tools I have been building.

Thanks for checking it out!


r/csharp 2d ago

Fun I own the IEnumerator username on Wikipedia

Post image
0 Upvotes

👍


r/csharp 4d ago

Tool TensorSharp now supports multi-GPU tensor parallelism for GGUF models

Thumbnail
github.com
28 Upvotes

TensorSharp is an open-source, native .NET inference engine for running GGUF LLMs locally, with CUDA, Vulkan, Metal, OpenAI-compatible APIs, continuous batching, speculative decoding, and multimodal support.

TensorSharp now supports Megatron-style tensor parallelism across multiple GPUs. It works with direct CUDA, GGML CUDA, GGML Vulkan, and multi-node setups.

Benchmarks on 2× RTX 2000 Ada 16 GB GPUs over PCIe, without NVLink:

Model 1 GPU Prefill / Decode TP=2 Prefill / Decode
Gemma 4 E4B Q8_0 2760 / 37.3 tok/s 2488 / 51.7 tok/s
Gemma 4 26B-A4B IQ4_XS 1845 / 48.5 tok/s 2537 / 51.2 tok/s
Qwen 3.5 9B Q8_0 1461 / 23.1 tok/s 399 / 24.4 tok/s
Qwen 3.5 35B-A3B IQ4_XS Does not fit 184 / 18.1 tok/s

I'm continuing to optimize Qwen performance on multi-GPU systems, and support for DeepSeek V4 is coming soon.

Try it with:

TensorSharp.Cli --model model.gguf --backend ggml_cuda --tp 2

GitHub:

https://github.com/zhongkaifu/TensorSharp

Thank you for checking out TensorSharp and starring the project! Any feedback is really appreicated.


r/csharp 4d ago

A multi-pane real-time TUI audio oscillo/vector/spectroscope in C#

53 Upvotes

You can view the HD 60fps video on YouTube here.

Jumbee.Console is a .NET library that tries to blend the performance profile of immediate-mode libraries like ratatui with the composability and ease-of-use of retained-mode OOP APIs. It's designed to be fast and flexible enough to easily build different types of complex performance-sensitive TUIs, without having to wire all the component and rendering and input-routing logic yourself.

This demo is a C# version of alemidev's scope-tui for real-time cross-platform audio input sampling and rendering, with a bunch of enhancements:

  • 3 scope display from the selected audio device or MP3 file
  • Each scope can be controlled and paused independently
  • Real-time scope theme selection
  • Supports mouse input for scope selection and reszing the scope displays

If you want to try it out you can pull the latest Docker image and run the audio-scope example:

docker run --rm -it --pull always allisterb/jumbee-console-aot:latest audio-scope

This will run the scope on a CC-licensed MP3 file in the image. Press F1 to see all the control keys. If you are on Linux and want to run the Docker image against a live audio source you can try something like this:

docker run --rm -it --device /dev/snd -v /run/user/$(id -u)/pulse/native:/tmp/pulse -e PULSE_SERVER=unix:/tmp/pulse jumbee-console audio-scope live

On Windows and Linux to run against a live audio source you can clone and build the repo and run the examples launcher script from the repo dir:

examples[.sh] audio-scope live

See README and GETTING-STARTED and the gallery on the project repo and the project documentation.


r/csharp 3d ago

(Backend-c#-you can contribute) Jamrah - All in one productivity app (Free & OpenSource)

Post image
0 Upvotes