SaaSHub helps you find the best software and product alternatives Learn more →
Printf Alternatives
Similar projects and alternatives to printf
-
libcurl
A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
carbon-lang
Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
-
-
-
-
-
-
gx
A Go->C++transpiler meant for data-oriented gameplay and application programming especially for WebAssembly. Using this mostly in the context of specific personal projects and heavily focusing the feature set on those. Used in my Raylib gamejam project: https://github.com/nikki93/raylib-5k -- also being used to develop a private longer term game project and a note-taking app. (by nikki93)
-
-
beyondnet
A toolset that makes it possible to call .NET code from other programming languages, including C, Swift and Kotlin.
-
-
callback_printf
Portable wrappers of sprintf, snprintf, vsprintf and vsnprintf. Fast, threadsafe and without dependencies to other libraries. All types and formats of C 11 standard and all numeric bases from 2 to 36 are supported. wchar_t arguments are printed as UTF-8.
-
-
-
-
-
EiGen
C++11 cross-platform migration of the Eigen Compiler Suite backend, and C frontends and libc/m for Eigen
-
-
Uprintf
Tired of bloated or limited printf in embedded systems? Uprintf is the universal, zero-dependency solution you've been looking for.
-
micro-wake-word
A TensorFlow based wake word detection training framework using synthetic sample generation suitable for certain microcontrollers.
printf discussion
printf reviews and mentions
-
ESP32-S31
I'm the maintainer of a standalone printf library, targeting mostly embedded devices and other no-standard-library use cases:
https://github.com/eyalroz/printf/
I would like to make sure the library can be used on this SoC, and other RISC-V systems; which it probably can, but if there are any issues cross-compiling for it, or using the toolchain Espressif provides, please consider filing a bug report. Same of course goes for any FOSS librar/tool that you're trying out. Let's help foster a rich(er) ecosystem of software available on them.
-
Generalizing Printf in C
A popular standalone printf-family library in the embedded world is, well libprintf:
https://github.com/eyalroz/printf
originally by Marco Paland, now maintained, or 'curated' by myself. It has this generalization :
int fctprintf(void (*out)(char c, void* extra_arg), void* extra_arg, const char* format, ...); -
Show HN: Uprintf a universal stb-style printf implementation for C (no OS)
Maybe the rabbit hole is much deeper than it seems.
Is it really possible to reconcile "no bloat" with "fully standard compliant"?
Maybe have a look at https://github.com/eyalroz/printf, if only for the test suite, which looks pretty comprehensive and still fails.
Maybe "key features" does not mean the same in all projects, making every project appear "unnecessarily bloated while missing key features" in every other context?
-
Bare metal printf – C standard library without OS
> What customization would it support?
I don't understand your question. It's reasonably readable and understandable source code. You edit the source code. That's the customisation?
> Say, compared to these options: https://github.com/eyalroz/printf?tab=readme-ov-file#cmake-o...
First, it is customary etiquette to indicate when linking your own code/work.
Second, that is not a POSIX compatible printf, it lacks support for '%n$' (which is used for localisation. Arguably can make sense to omit for tiny embedded platforms - but then why is there FP support?)
Third, cmake and build options really seem to be overkill for something like this. Copy the code into the target project, edit it. If you use your own printf, you probably need a bunch of other custom stuff anyway.
Fourth, the output callback is a reasonable idea, but somewhat self-contradictory. You're bringing in your own printf. Just adapt it to your own I/O backend, like libc has FILE*.
-
Detecting if an expression is constant in C
> with file specific flags
But you don't want to disable warnings throughout the file, just locally.
> Then you don't have non-portable cruft littering the code,
You can make it perfectly portable, with a little macro work. See, ,for example:
https://github.com/eyalroz/printf/blob/013db1e345cbb166a7eb7...
and that you only need to do once in your project (you can make it your own header). Even when it comes to use - you can place your warning-disabling within another macro, so that you end up only using a simple single macro for your actual code.
-
Using Libc for GPUs
> stuff - the most common request was for printf as a debugging crutch
I have actually adapted a library for that particular case:
https://github.com/eyalroz/printf/
I started with a standalone printf-family implementation targetting embedded devices, and (among other things) adapted it for use also with CUDA.
> I mostly wanted mmap.
Does it really make sense to make a gazillion mmap calls from the threads of your GPU kernel? I mean, is it really not always better to mmap on the CPU side? At most, I might do it asynchronously using a CUDA callback or some other mechanism. But I will admit I've not had that use-case.
-
The C23 edition of Modern C is now available for free
It's only been a few years since I've come to feel I can rely on C compilers all supporting C99, for a library I'm maintaing [1]. And after a couple of years, sure enough - I get an issue opened asking for C89 compatibility because of some arcane embedded toolchain or what-not.
[1]: https://github.com/eyalroz/printf
-
MISRA C
From my experience, maintaining a standalone/embedded printf library - MISRA is a combination of two things: Common-sense rules, and pain-in-the-ass rules. Example of the latter: Avoiding implementation-defined types like `int` in places where my code doesn't care about what sizeof(int) is.
I was able to accommodate most (?) of the MISRA rules (https://github.com/eyalroz/printf/issues/77), but mine is just a small library, so I don't know how restrictive they would be for a larger codebase.
-
Sprintf without C library
Note that https://github.com/eyalroz/printf is the fork of mpaland that is being maintained.
-
What is the most efficient way to create an ASCII string from multiple types?
Take a look at an embedded focused sprintf like this one and measure: https://github.com/eyalroz/printf
-
A note from our sponsor - SaaSHub
www.saashub.com | 9 Jun 2026
Stats
eyalroz/printf is an open source project licensed under MIT License which is an OSI approved license.
The primary programming language of printf is C.