Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. zaffre

zaffre

MITClojure

A fast Clojure library for emulating a terminal with OpenGL rendering and Unicode support.

GitHubGitHub
111 stars5 forks0 contributors

What is zaffre?

Zaffre is a fast Clojure library for emulating a terminal and drawing characters to a screen. It provides high-performance text rendering using OpenGL and supports Unicode characters, multiple fonts, and tileset loading. The library solves the need for efficient, flexible terminal emulation in Clojure applications.

Target Audience

Clojure developers building text-based applications, terminal emulators, or roguelike games who need high-performance character rendering.

Value Proposition

Developers choose Zaffre for its exceptional speed through OpenGL rendering, thread-safe design, and support for professional tilesets like those used in Dwarf Fortress, without unnecessary GUI or animation features.

Overview

A fast clojure console library

Use Cases

Best For

  • Building roguelike games with custom tilesets
  • Creating terminal emulators in Clojure
  • Developing text-based user interfaces with Unicode support
  • Implementing high-performance console rendering
  • Loading and displaying CP437 format tilesets
  • Projects requiring thread-safe terminal operations

Not Ideal For

  • Projects requiring built-in GUI widgets or controls
  • Applications needing animation or visual effects out-of-the-box
  • Developers seeking high-level abstractions without OpenGL setup
  • Teams preferring libraries with extensive documentation and community support

Pros & Cons

Pros

Fast OpenGL Rendering

Uses LWJGL and OpenGL for maximum rendering performance, enabling high-speed character drawing as highlighted in the features section.

Comprehensive Unicode Support

Supports Unicode characters excluding CJK code points, allowing for broad international text display in terminal applications.

CP437 Tileset Compatibility

Enables loading tilesets from sources like the Dwarf Fortress repository, ideal for game developers using custom assets.

Thread-Safe Design

Designed for concurrent usage, making it suitable for multi-threaded Clojure applications without race conditions.

Flexible Font Management

Supports multiple fonts, glyph stacking, and non-character tiles (sprites), as per the features, allowing for creative text-based interfaces.

Cons

Lacks Built-in Animations

The library explicitly omits animation features, requiring developers to manually implement dynamic effects, which adds complexity.

No GUI Controls

Focuses solely on terminal emulation, so projects needing buttons, menus, or other GUI elements must build them from scratch.

Complex OpenGL Setup

Requires LWJGL and OpenGL dependencies, which can be cumbersome for developers unfamiliar with low-level graphics programming.

Limited High-Level Utilities

Prioritizes performance over convenience, missing higher-level abstractions common in other UI libraries, as admitted in the 'Not Features' section.

Frequently Asked Questions

Quick Stats

Stars111
Forks5
Contributors0
Open Issues3
Last commit2 years ago
CreatedSince 2016

Tags

#terminal-emulation#unicode#opengl#terminal#game-development#tilesets#lwjgl#console#clojure#text-rendering

Built With

C
Clojure
L
LWJGL
O
OpenGL

Included in

Clojure2.8k
Auto-fetched 18 hours ago

Related Projects

closhclosh

Bash-like shell based on Clojure

Stars1,627
Forks67
Last commit3 years ago
clojure-lanternaclojure-lanterna

A Clojurey wrapper around the Lanterna terminal output library.

Stars221
Forks49
Last commit7 years ago
trikltrikl

Terminal UI library for Clojure

Stars156
Forks8
Last commit3 years ago
malli-climalli-cli

Configuration powertool with `metosin/malli`

Stars57
Forks4
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub