printf VS cosmopolitan

Compare printf vs cosmopolitan and see what are their differences.

printf

Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing. (by mpaland)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
printf cosmopolitan
16 201
2,345 15,067
- -
0.0 9.8
about 1 year ago 4 days ago
C C
MIT License ISC License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

printf

Posts with mentions or reviews of printf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-03-27.
  • Nanoprintf – The smallest public printf implementation for its feature set
    3 projects | news.ycombinator.com | 27 Mar 2023
  • Thank you senpai!
    6 projects | /r/ProgrammerHumor | 16 Mar 2023
  • Sprintf without C library
    5 projects | /r/C_Programming | 7 Feb 2023
    https://github.com/mpaland/printf i think this would work
  • Nolibc: A minimal C-library replacement shipped with the kernel
    4 projects | news.ycombinator.com | 22 Jan 2023
    Seems unlikely. My spot check of the the two vfprintf implementations shows no flow from one to the other, and shows that part of the Cosmopolitan code has an older lineage than nolibc.

    The nolibc source has many reference to copyright held by "Willy Tarreau", under LGPL-2.1 OR MIT license, with a copyright date starting in 2017.

    The string "Tarreau" does not exist in the Cosmopolitan library, so that's a strong negative there. Let's look closer.

    The file organization is quite different. And so is the implementation. So that's another negative.

    Compare the vfprintf in nolibc at https://elixir.bootlin.com/linux/v6.2-rc4/source/tools/inclu... (a 'minimal vfprintf()') with the one in cosmopolitan starting at https://github.com/jart/cosmopolitan/blob/master/libc/stdio/....

    Right away we can see nolibc places many functions in the same file while Cosmopolitan uses a one-function-per-filename organization.

    Cosmopolitan's fvprintf locks the file (which nolibc doesn't need to do) then calls vfprintf_unlocked which calls __fmt at https://github.com/jart/cosmopolitan/blob/master/libc/fmt/fm... , which is the actual implementation. It look very different from NOLIBC's.

    Okay, so perhaps that's they way now but not at the beginning?

    We can also go back to Cosmopolitan's original implementation and see how vfprintf goes through https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... to call "palandprintf", which https://github.com/jart/cosmopolitan/blob/c91b3c50068224929c... says is copyright "Marco Paland" from 2014-2019.

    That's a few years older than the start of nolibc, available from https://github.com/mpaland/printf , and part of https://github.com/embeddedartistry/libc , a "libc targeted for embedded systems usage".

    Thus, multiple factors seem to agree that nolibc code is not used in the Cosmopolitan library.

  • How should I go about implementing printf-like function in my library?
    1 project | /r/embedded | 27 Dec 2022
    I wrap this C implementation in a C++ Logger class and use it to "print" into a simple buffer. Then the static buffer is periodically unrolled into a transport layer using a static Logger::transmit() function in my BSP. I'm working with very little flash, so the linked implementation is essential.
  • A 1 hour interview for an embedded engineering position
    1 project | /r/C_Programming | 24 Aug 2021
    There are many good and tiny printf's fir embedded on GitHub. https://github.com/mpaland/printf eg Better than the bsd printf mostly
  • is it safe to use printf()?
    1 project | /r/embedded | 10 Aug 2021
  • Sprintf on STM32?
    1 project | /r/embedded | 23 Feb 2021
    I'm sure sprintf itself is working in their library, so try to find other issues first, BUT, as a last resort you can try another lib: https://github.com/mpaland/printf/
  • Would you merge with them?
    2 projects | /r/ProgrammerAnimemes | 17 Feb 2021
    10 projects | /r/ProgrammerHumor | 16 Feb 2021
    looked at that account, found this one too

cosmopolitan

Posts with mentions or reviews of cosmopolitan. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-15.
  • Python Is Portable
    6 projects | news.ycombinator.com | 15 Apr 2024
    The reality is a bit different, the work on Python 3.6 was checked into the Cosmopolitan repo and I have been able to use it for production workloads that are in pure python. [0]

    As Cosmopolitan Libc has evolved, it has been possible to compile more software without modifications, and that includes latest Python through a project called superconfigure[1].

    Last person who tried to reproduce it from scratch did it last week (granted it too them a few days of solid work) but in the end they ended with a portable binary with Python 3.11.9, brotli, ssl and asyncio for their work related project.[2]

    [0] https://github.com/jart/cosmopolitan/tree/master/third_party...

  • Ask HN: What Underrated Open Source Project Deserves More Recognition?
    63 projects | news.ycombinator.com | 7 Mar 2024
    Cosmopolitan https://github.com/jart/cosmopolitan and https://justine.lol/cosmopolitan/index.html

    Some genius realized that you can actually embed valid win32 programs inside valid posix shell scripts, and found a way to make a C cross-platform solution out of it, meaning that you can write C programs that compile to a single executable that will run on (quoting the site) Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS

    It all started from this post.

  • Cosmopolitan – build-once run-anywhere C library
    1 project | news.ycombinator.com | 16 Feb 2024
  • Show HN: Usr/bin/env Docker run
    4 projects | news.ycombinator.com | 13 Jan 2024
    For this .args file, put one argument per line. This will run on start. You can use `/zip/mydepencency.anything` to read from files, but if you have an executable dependency you'll need to extract it first.

    You can do this with any software you can compile with comsocc, by adding a call to LoadZipArgs[1] in the main function.

    It'seasy to get started, your ideas will branch out as soon as you start playing with it.

    [1]: https://github.com/jart/cosmopolitan/blob/master/tool/args/a...

  • Libwebsockets
    6 projects | news.ycombinator.com | 6 Jan 2024
    FWIW there is ongoing work with good progress to add websocket support to redbean (https://github.com/jart/cosmopolitan/pull/967)
  • Release Cosmopolitan v3.2
    1 project | news.ycombinator.com | 5 Jan 2024
  • Cosmopolitan v3.2
    1 project | news.ycombinator.com | 5 Jan 2024
  • Ask HN: ANSI escape sequences reference docs?
    1 project | news.ycombinator.com | 2 Jan 2024
    Check out this comment by jart (cosmpolitan author) here: https://github.com/jart/cosmopolitan/issues/766#issuecomment...

    it might help but not sure how comprehensive it is! would it be a bad idea for you to check out the source code of other popular emulators (maybe iTerm 2^0) ?

    0: https://github.com/search?q=repo%3Agnachman%2FiTerm2%20ansi&...

  • Actually Portable Vim (With a Cute Vimrc)
    4 projects | news.ycombinator.com | 25 Dec 2023
    The binary was compiled with Cosmopolitan Libc [0], and therefore the binary will execute natively on Linux, Mac, Windows, FreeBSD, OpenBSD, NetBSD, and bare metal (BIOS boot).

    I would call that portable.

    [0] https://github.com/jart/cosmopolitan

  • Show HN: PyApp – runtime installer for Python applications
    5 projects | news.ycombinator.com | 13 Dec 2023
    will go on my "to try" list where i already have cosmopolitan [2]. my last setup (windows) was shiv + wine + nsis (used that as pyinstaller had some issues)[2]

    [1] https://github.com/jart/cosmopolitan/issues/141#issuecomment...

What are some alternatives?

When comparing printf and cosmopolitan you can also consider the following projects:

nanoprintf - The smallest public printf implementation for its feature set.

libc - libc targeted for embedded systems usage. Reduced set of functionality (due to embedded nature). Chosen for portability and quick bringup.

trice - 🟢 super fast 🚀 and tiny 🐥 embedded device 𝘾 printf-like trace ✍ code, works also inside ⚡ interrupts ⚡ and real-time PC 💻 logging (trace ID visualization 👀)

src - Read-only git conversion of OpenBSD's official CVS src repository. Pull requests not accepted - send diffs to the tech@ mailing list.

z88dk - The development kit for over a hundred z80 family machines - c compiler, assembler, linker, libraries.

SDL - Simple Directmedia Layer

anal-encryption-2.0

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

elk - A low footprint JavaScript engine for embedded systems

luastatic - Build a standalone executable from a Lua program.

modorganizer - Mod manager for various PC games. Discord Server: https://discord.gg/ewUVAqyrQX if you would like to be more involved

v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io