U8String

[work-in-progress] Highly functional and performant UTF-8 string primitive for C# (by U8String)

U8String Alternatives

Similar projects and alternatives to U8String

  1. rust

    2,856 U8String VS rust

    Empowering everyone to build reliable and efficient software.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. zig

    902 U8String VS zig

    General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

  4. .NET Runtime

    .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

  5. rfcs

    690 U8String VS rfcs

    RFCs for changes to Rust

  6. too-many-lists

    Learn Rust by writing Entirely Too Many linked lists

  7. scummvm

    ScummVM main repository

  8. rust-playground

    The Rust Playground

  9. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  10. min-sized-rust

    🦀 How to minimize Rust binary size 📦

  11. Odin

    95 U8String VS Odin

    Odin Programming Language

  12. simdjson

    Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks

  13. Vrmac

    Vrmac Graphics, a cross-platform graphics library for .NET. Supports 3D, 2D, and accelerated video playback. Works on Windows 10 and Raspberry Pi4.

  14. flamegraph

    Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3 (by flamegraph-rs)

  15. BLAKE3

    37 U8String VS BLAKE3

    the official Rust and C implementations of the BLAKE3 cryptographic hash function

  16. cargo-geiger

    Detects usage of unsafe Rust in a Rust crate and its dependencies.

  17. glibc

    Discontinued GNU Libc (by lattera)

  18. uwu

    25 U8String VS uwu

    fastest text uwuifier in the west

  19. samply

    16 U8String VS samply

    Command-line sampling profiler for macOS, Linux, and Windows

  20. rust_cmd_lib

    Common rust command-line macros and utilities, to write shell-script like tasks in a clean, natural and rusty way

  21. BEPUphysics

    Pure C# 3D real time physics simulation library, now with a higher version number.

  22. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better U8String alternative or higher similarity.

U8String discussion

Log in or Post with

U8String reviews and mentions

Posts with mentions or reviews of U8String. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-08-11.
  • Go structs are copied on assignment (and other things about Go I'd missed)
    4 projects | news.ycombinator.com | 11 Aug 2024
  • Tolower() with AVX-512
    5 projects | news.ycombinator.com | 28 Jul 2024
    Mask add looks neat! I wish there was a way to directly manipulate AVX512's mask registers in .NET intrinsics but for now we have to live with "recognized idioms".

    Some months ago I wrote a similar ASCII in UTF-8 upcase/downcase implementation: https://github.com/U8String/U8String/blob/main/Sources/U8Str...

    (the unrolled conversion for below vectorization lengths is required as short strings dominate most codebases so handling it fast is important - the switch compiles to jump table and then branchless fall-through to return)

    For now it goes as wide as 256b as it already saturates e.g. Zen 3 or 4 which have only 256x4 SIMD units (even though Zen 4 can do fancy 512b shuffles natively and has very good 512b implementation). The core compiles to:

                  cmp      rdx, 32
  • Using SIMD for Parallel Processing in Rust
    6 projects | news.ycombinator.com | 1 Jul 2024
  • Scan HTML faster with SIMD instructions – Chrome edition
    7 projects | news.ycombinator.com | 13 Jun 2024
    A little more on topic, if you like SIMD and C#, dotnet/runtime now has an introductory guide to Vector128/256/512 API:

    https://github.com/dotnet/runtime/blob/main/docs/coding-guid...

    Now, the default syntax can still be a bit more wordy with byref arithmetics than ideal, but you can add a few extension methods to look it closer to Rust's pointer arithmetics: https://github.com/U8String/U8String/blob/main/Sources/U8Str...

  • Writing x86 SIMD using x86inc.asm (2017)
    3 projects | news.ycombinator.com | 26 Mar 2024
  • Zig, Rust, and Other Languages
    5 projects | news.ycombinator.com | 15 Mar 2024
  • Was Rust Worth It?
    18 projects | news.ycombinator.com | 25 Oct 2023
    Writing performance-sensitive code in C and calling it via interop used to be the way to go during .NET Framework days but since then has become a performance trap.

    Especially for small methods, calling them through interop is a deoptimization because they cannot be inlined, and involve GC frame transition (which you can suppress) as well as an indirect jump and maybe interop stub unless you are statically linking the dependency into your AOT deployment. In case the arguments are not blittable to C - marshalling too.

    It is also complicates the publishing process because you have to build both .NET and C parts and then package them together, considering the matrix of [win, linux, macos] x [x64, arm64], it turns into quite an unpleasant experience.

    Instead, the recommended approach is just continuing to write C# code, except with pointer and/or ref based code. This is what CoreLib itself does for the most performance-sensitive bits[0]. Naturally, it intentionally looks ugly like in Rust, but you can easily fix it with a few extension methods[1].

    [0]: https://github.com/dotnet/runtime/blob/main/src/libraries/Sy...

    [1]: https://github.com/U8String/U8String/blob/main/Sources/Share...

  • A note from our sponsor - Stream
    getstream.io | 10 Jul 2025
    Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure. Learn more →

Stats

Basic U8String repo stats
7
175
9.2
11 months ago

Sponsored
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com

Did you know that C# is
the 10th most popular programming language
based on number of references?