HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cmuratori
refterm
HISTORICAL RECORD2021–2026
cmuratori / refterm · Not publicly available

refterm

Discover this repository through its Hacker News conversations.

25Distinct people
32Mentions
0Explicit recommenders
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A public description has not been verified.

Where it is used

The source check is incomplete. Verified examples will appear here.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year32 dated mentions

Observed mentions: 2021-07-03 22:39:42 UTC to 2026-07-19 20:27:01 UTC.

051015202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 18 mentions; 3 submissions, 15 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC18315
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC808
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC303
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
refterm v2 refterm is a reference renderer for monospace terminal displays. It was designed to demonstrate that even in the worst-case scenario - extremely slow Unicode parsing with Uniscribe and extremely slow glyph generation with DirectWrite - it is still straightforward to achieve reasonable frame rates and reasonable throughput by being sensible. Please note that refterm is UTF-8. If you are doing tests with it, you must use UTF-8 encoded files or command output. Simple Code, Reasonable Speed refterm actually isn't very fast. Despite being several orders of magnitude faster than Windows Terminal, refterm is largely unoptimized and is much slower than it could be. It is nothing more than a straightforward implementation of a tile renderer, with a very simple cache to ensure that glyph generation only gets called when new glyphs are seen. It is all very, very simple. A more complex codebase that parsed Unicode and rendered glyphs itself would likely be much faster than refterm for many important metrics. VT code and line break parsing in refterm has had one piece of optimization in v2. It now checks each 16-byte block for control codes before actually running the parser. This was done to help test high-bandwidth throughput. The actual control code parser has still not been optimized at all, however. TL;DR: refterm should be thought of as establishing a modern minimum speed at which a reasonable terminal should be expected to perform. It should not be thought of as a maximum to aspire to. If your terminal runs slower than refterm, that is not a good sign. Feature Support refterm is designed to support several features, just to ensure that no shortcuts have been taken in the design of the renderer. As such, refterm supports: Multicolor fonts All of Unicode, including combining characters and right-to-left text like Arabic Glyphs that can take up several cells Line wrapping Reflowing line wrapping on terminal resize Large scrollback buffer VT codes for setting colors and cursor positions, as well as strikethrough, underline, blink, reverse video, etc. These features are not designed to be comprehensive, since this is only meant to be a reference renderer, not a complete terminal. Code Layout The important code for the reference renderer resides in three simple files: refterm.hlsl - shader for doing tile-based rendering refterm_glyph_cache.h/c - cache for mapping Unicode runs to glyphs The rest of the code - refterm_example_*.h/c - is just there to verify that the API for the glyph cache conveniently supports all the features a terminal needs. The code in those files may be useful as a vague reference, but no thought was put into their design so it is not likely to be directly useful. Fast Pipes Prior to v2, it was assumed that conhost had to be bypassed in order to do high-throughput terminal processing. However, after some testing it was determined that so long as conhost receives large writes, it is actually within 10% of the fast pipe alternative. So it appears that so long as you either directly call WriteFile with large buffers, or you use stdio with large buffers and set stdout to binary mode, you can get reasonable speed going through conhost!
Read the full README on GitHub

What Hacker News says

32 sources
Probably inspired by the performance problems with the windows terminal [1] and the accelerated terminal [2] developed by Molly Rocket as 'answer'? A series of videos presenting the poc [3] [1] https://news.ycombinator.com/item?id=28743687 (It takes a PhD to develop that) [2] https://github.com/cmuratori/refterm [3] https://www.youtube.com/watch?v=hxM8QmyZXtg, https://www.youtube.com/watch?v=pgoetgxecw8
In WezTerm is a GPU-accelerated cross-platform terminal emulator written in Rust
> licensing it so that they couldn’t even look at it https://github.com/cmuratori/refterm/blob/main/LICENSE It’s just GPL 2.0, what are you talking about!? Are Microsoft employees vampires that will burn up instantly if they merely glance at GPL code or something? This is sour grapes nonsense from Microsoft. “We don’t like your tone so we won’t even dignify your argument by considering it.” At one point an MS employee said they would love to fix their code as suggested by Casey but he refused to even look at the YouTube video! “I would love to hear your arguments but I refuse to listen to the sound of your voice.” is next-level dismissive.
In Why modern software is slow
He never claimed refterm was a fully working terminal ready to use. He said it was a renderer. The entire point of refterm was: <casey> Windows Terminal is slow at rendering things <microsoft> Yes, rendering is a hard problem worthy of a doctoral research project <casey> No it's not, you literally just use a glyph atlas <microsoft> You are naive <casey> *writes refterm to demonstrate glyph atlas* You keep complaining that it's not a fully working terminal. Casey, on the other hand, writes: "These features are not designed to be comprehensive, since this is only meant to be a reference renderer, not a complete terminal." — https://github.com/cmuratori/refterm#feature-support
In When I tell the Windows Terminal team something is simple, I am "misguided"
Quoting from the author of the blogpost: "We actually took the same approach Casey suggested... A lot of terminals implement it that way." [1] I guess authors of a lot of terminals are trolling you. From the refterm README: "VT codes for setting colors and cursor positions, as well as strikethrough, underline, blink, reverse video, etc." [2] And, to begin with, Windows Terminal was horrendously slow even without VT codes. Also, for context, [3] [1] https://news.ycombinator.com/item?id=31285723 [2] https://github.com/cmuratori/refterm [3] https://news.ycombinator.com/item?id=31285339
In When I tell the Windows Terminal team something is simple, I am "misguided"
"Happens to be right" is kind of misleading here. It's not like he "happened" to call tails on a coin flip or something. Microsoft has a history of writing unreasonably shitty software, abstracting it to all fuck with ten thousand layers of manufactured complexity, and then claiming the problem itself is hard. Casey was like, no, the problem is actually trivial, and if you just write code in a straightforward way without pessimizing your own code, you can easily get something 100x faster than Windows Terminal. He even wrote refterm to prove it: https://github.com/cmuratori/refterm No one wants to be told that something they're working super hard on is actually trivial, and that all of their problems are basically self-created. There's no nice way to say that. It's basically saying, "stop doing 90% of the crap you're doing, and the problem
Read the rest
solves itself." But it's true and it should be said.
In When I tell the Windows Terminal team something is simple, I am "misguided"
>most of the code in the parser/renderer part of the terminal is unnecessary and just slows things down. What this code needs to do is extremely simple and it seems like it has been massively overcomplicated He means exactly what he says. Notably, refterm had almost no optimization applied to it.[0] The massive performance increase was entirely due to non-pessimization.[1] >refterm actually isn't very fast. Despite being several orders of magnitude faster than Windows Terminal, refterm is largely unoptimized and is much slower than it could be. It is nothing more than a straightforward implementation of a tile renderer, with a very simple cache to ensure that glyph generation only gets called when new glyphs are seen. It is all very, very simple. A more complex codebase that parsed Unicode and rendered glyphs itself would likely be much f
Read the rest
aster than refterm for many important metrics.[0] [0] - https://github.com/cmuratori/refterm [1] - Refterm Lecture Part 1 - Philosophies of Optimization - https://www.youtube.com/watch?v=pgoetgxecw8
In When I tell the Windows Terminal team something is simple, I am "misguided"
For a basic example of why you would want GPU acceleration, have a look at refterm: https://github.com/cmuratori/refterm Even processes that you wouldn't think would be impacted by a terminal can be hurt relaly bad by your terminal's performance: your compiler's logs, etc. The GPU rendering part merely guarantees that your terminal sticks at 60FPS (or, whatever your refresh rate is) if the processing behind is efficient.
In WezTerm – A GPU-accelerated cross-platform terminal emulator and multiplexer

Showing the 15 most recent of 32 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.