STL

MSVC's implementation of the C++ Standard Library. (by microsoft)

STL Alternatives

Similar projects and alternatives to STL

  1. rust

    2,826 STL 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

    876 STL VS zig

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

  4. llvm-project

    407 STL VS llvm-project

    The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

  5. carbon-lang

    Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)

  6. {fmt}

    168 STL VS {fmt}

    A modern formatting library

  7. Flask

    142 STL VS Flask

    The Python micro framework for building web applications.

  8. Folly

    99 STL VS Folly

    An open-source C++ library developed and used at Facebook.

  9. SaaSHub

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

    SaaSHub logo
  10. cppfront

    92 STL VS cppfront

    A personal experimental C++ Syntax 2 -> Syntax 1 compiler

  11. include-what-you-use

    A tool for use with clang to analyze #includes in C and C++ source files

  12. cups

    34 STL VS cups

    OpenPrinting CUPS Sources (by OpenPrinting)

  13. draft

    25 STL VS draft

    C++ standards drafts

  14. cppwin32

    15 STL VS cppwin32

    Discontinued A modern C++ projection for the Win32 SDK

  15. libcxx

    14 STL VS libcxx

    Discontinued Project moved to: https://github.com/llvm/llvm-project

  16. ryu

    14 STL VS ryu

    Converts floating point numbers to decimal strings (by ulfjack)

  17. cppwinrt

    14 STL VS cppwinrt

    C++/WinRT

  18. grpc_bench

    Discontinued Various gRPC benchmarks [GET https://api.github.com/repos/microsoft/grpc_bench: 404 - Not Found // See: https://docs.github.com/rest/repos/repos#get-a-repository] (by microsoft)

  19. cups

    OpenPrinting CUPS Sources (by microsoft)

  20. EA Standard Template Library

    EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.

  21. robin-hood-hashing

    Discontinued Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20

  22. STL

    8 STL VS STL

    MSVC's implementation of the C++ Standard Library. (by StephanTLavavej)

  23. 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 STL alternative or higher similarity.

STL discussion

Log in or Post with

STL reviews and mentions

Posts with mentions or reviews of STL. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-03-25.
  • Writing your own C++ standard library from scratch
    8 projects | news.ycombinator.com | 25 Mar 2025
    The license was explicitly chosen to enable code sharing with LLVM's libc++ (https://devblogs.microsoft.com/cppblog/open-sourcing-msvcs-s...).

    The MSVC STL's quality is good enough for thousands of pieces of Windows software (including Windows itself & Microsoft's software such as Office) to depend and rely on. It delivers excellent performance for a broad range of use cases. It is actively developed in the open, delivering cutting-edge (C++23 & C++26) features, accepting Pull Requests and wonderfully documented on GitHub. It can be consumed using MSVC and LLVM clang-cl (which the MSVC STL maintainers test with CI infrastructure). The maintainers are actively working on "hardening" features to enable more secure C++ (https://github.com/microsoft/STL/wiki/STL-Hardening).

    Unless you specify what "best" or "a library's quality" means to you, MSVC STL is excellent and because of that, the default choice on & for Windows.

    Google chooses to only support libc++ for Chrome/Chromium (https://chromium.googlesource.com/chromium/src/+/main/docs/t...). libc++ is not a Google-owned project.

  • The case of the critical section that let multiple threads enter a block of code
    1 project | news.ycombinator.com | 24 Mar 2025
    Yeah, as that Rust issue states, this was first replicated by a C++ programmer and STL (the person, not the Microsoft name for the C++ stdlib) said it looks like a bug in SRWLock.

    There's a Microsoft internal ticket which I can't read (but STL can because he's a Microsoft employee) but there's also a GitHub issue for STL (this time the stdlib, a GitHub project, although it was opened by the person) https://github.com/microsoft/STL/issues/4448 and it's confirmed in that issue this is a bug in SRWLock, thus no work for STL† (either the project or the person).

    It's not unusual (especially in C++ but this happens anywhere) that people would rather contort themselves to believe crazy things than accept that it's just a bug.

    † Both Windows and C++ holds themselves to a very low standard, "Yeah, it's broken, too bad" is acceptable. Once you've determined that it's a bug you're done.

  • C++ String Conversion: Exploring std:from_chars in C++17 to C++26
    4 projects | news.ycombinator.com | 14 Oct 2024
    I believe the impl you link to is not fully standards compliant, so just calls back to

    MSFT's one is totally standards compliant and it is a very different beast: https://github.com/microsoft/STL/blob/main/stl/inc/charconv

    Apart from various nuts and bolts optimizations (eg not using locales, better cache friendless, etc...) it also uses a novel algorithm which is an order of magnitude quicker for many floating points tasks (https://github.com/ulfjack/ryu).

    If you actually want to learn about this, then watch the video I linked earlier.

  • Rust Atomics and Locks by Mara Bos
    2 projects | news.ycombinator.com | 13 Aug 2024
    SRWLocks are a Windows feature, not a Rust feature, so you're looking in the wrong place.

    Here's STL's (nominative determinism at work) GitHub issue for Microsoft's C++ stdlib implementation about this https://github.com/microsoft/STL/issues/4448

    Here's the C++ Reddit thread where the bug was shown: https://www.reddit.com/r/cpp/comments/1b55686/maybe_possible...

    Here's the Rust change which was merged for 1.78: https://github.com/rust-lang/rust/pull/121956/

  • DARPA: Translating All C to Rust (Tractor)
    5 projects | news.ycombinator.com | 30 Jul 2024
    Interesting thanks. Seems the reason I couldn't find anything on that is because it's not really documented?

    https://github.com/microsoft/STL/issues/586

    > We talked about this at the weekly maintainer meeting and decided that we're not comfortable enough with the (lack of) design of this feature to begin documenting it for wide usage.

  • Driving Compilers
    1 project | news.ycombinator.com | 29 Jul 2024
    Microsoft does officially call their implementation of the C++ Standard Library in MSVC "The STL." This is due to historical confusion, of course, but it persists to this very day in official materials. Check the name of this repository.

    https://github.com/microsoft/STL

  • Show HN: Logfmtxx – Header only C++23 structured logging library using logfmt
    3 projects | news.ycombinator.com | 3 Apr 2024
    Again, they are barely functional.

    MSVC chokes on many standard-defined constructs: https://github.com/microsoft/STL/issues/1694

    clang does not claim to be "mostly usable" at all - most papers are not implemented: https://clang.llvm.org/cxx_status.html#cxx20

    And gcc will only start ot be usable with CMake when version 14 is released - that has not happened yet.

    And, as I mentioned before, IDE support is either buggy (Visual Studio) or non-existing (any other IDE/OS). So you're off to writing in a text editor and hoping your compiler works to a somewhat usable degree. Yes, at some point people should start using modules, I agree, but to advise library maintainers to ship modularized code... the tooling just isn't there yet.

    I mean, the GitHub issue is Microsoft trying to ship their standard library modularized, they employ some of the most capable folks on the planet and pay them big money to get that done, while metaphorically sitting next to the Microsoft compiler devs, and they barely, barely get it done (with bugs, as they themselves mention). This is too much for most other library maintainers.

  • Cpp2 and cppfront – An experimental 'C++ syntax 2' and its first compiler
    7 projects | news.ycombinator.com | 31 Mar 2024
    Notice that there are in practice three distinct implementations of the C++ standard library. They're all awful to read though, here's Microsoft's std::vector https://github.com/microsoft/STL/blob/main/stl/inc/vector

    However you're being slightly unfair because Rust's Vec is just defined (opaquely) as a RawVec plus a length value, so let's link RawVec, https://doc.rust-lang.org/src/alloc/raw_vec.rs.html -- RawVec is the part responsible for the messy problem of how to actually implement the growable array type.

    Still, the existence of three C++ libraries with slightly different (or sometimes hugely different) quality of implementation means good C++ code can't depend on much beyond what the ISO document promises, and yet it must guard against the nonsense inflicted by all three and by lacks of the larger language. In particular everything must use the reserved prefix so that it's not smashed inadvertently by a macro, and lots of weird C++ idioms that preserve performance by sacrificing clarity of implementation are needed, even where you'd ordinarily sacrifice to get the development throughput win of everybody know what's going on. For example you'll see a lot of "pair" types bought into existence which are there to squirrel away a ZST that in C++ can't exist, using the Empty Base Optimisation. In Rust the language has ZSTs so they can just write what they meant.

  • C++ Specification vs Implementation
    3 projects | /r/cpp_questions | 19 Nov 2023
  • C++23: Removing garbage collection support
    3 projects | news.ycombinator.com | 1 Nov 2023
    Here is Microsoft's implementation of map in the standard library. I think of myself as a competent programmer / computer scientist. I couldn't write this: https://github.com/microsoft/STL/blob/f392449fb72d1a387ac502...
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 14 May 2025
    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. Learn more →

Stats

Basic STL repo stats
162
10,562
9.6
4 days 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 7th most popular programming language
based on number of references?