Skip to content
Moat or Bloat

chafa

OCaml bindings for the chafa C library with Rust FFI

Library Rated 7 Oct 2026Dormant

Built by
Frectonz

Bloat

75/500

Where it landed on the scale

Bloat
0
Float
300
Moat
400

Summary

This is a working set of FFI bindings, from an unsafe sys crate to a safe Rust wrapper to an OCaml layer, published on crates.io and docs.rs. It was a short learning project with no users, pricing, or follow-up since November 2023, and it has no commercial case.

Bloat · Not much here works or looks likely to last, yet.

Breakdown

Five measures, 100 points each. Open the receipts under any of them to see the posts and pages behind the points.

Viability

Is there a real problem, someone who would pay, and a market this builder can actually reach?

It's a learning exercise in FFI, not a product aimed at a paying user. The builder frames it as exploring calling C libraries from Rust, and nothing suggests anyone would pay for it.

8/100

Rubric 0–20No clear problem or user. A toy, a practice clone, or a solution looking for a problem.

Receipts (2)
  1. The builder says the goal was to learn FFI with bindgen by porting a usage example.

    “I decided to learn FFI (calling C/C++ funcs from Rust) with bindgen. Found this C lib called chafa that does rendering pictures in the terminal. The chafa lib has this usage example on their reference manual. The pic shows that usage example ported to rust and running. First time doing FFI with rust and writing unsafe rust 🎉 and it's pretty exciting stuff thinking about all the libraries i ”

    Post · @thefrectonz · 13 Nov 2023 · open on Telegram (opens in a new tab)

  2. The OCaml-Rust-C chain is celebrated as a technical achievement, with no user or customer mentioned.

    “I have just achieved the ultimate FFI threesome. OCaml + Rust + C = ❤️ What you are seeing in the images is OCaml code calling out to Rust which in turn is calling out to C. The actual flow (->) this means calls into OCaml project -> chafa-ocaml (Rust to OCaml bindings) -> chafa (safe Rust wrapper) -> chafa-sys (unsafe FFI rust) -> chafa (the c lib) You know complexity gets such a bad rep b”

    Post · @thefrectonz · 18 Nov 2023 · open on Telegram (opens in a new tab)

Moat

What stops someone copying it?

Thin bindings over an existing C library are easy for anyone to regenerate with bindgen. The only edge is the effort already spent, and there's no data, distribution, or local depth.

7/100

Rubric 0–20A thin wrapper or a clone that anyone here could rebuild in a weekend.

Receipts (2)
  1. The sys layer is generated with bindgen from the existing chafa C library.

    “I decided to learn FFI (calling C/C++ funcs from Rust) with bindgen. Found this C lib called chafa that does rendering pictures in the terminal. The chafa lib has this usage example on their reference manual. The pic shows that usage example ported to rust and running. First time doing FFI with rust and writing unsafe rust 🎉 and it's pretty exciting stuff thinking about all the libraries i ”

    Post · @thefrectonz · 13 Nov 2023 · open on Telegram (opens in a new tab)

  2. MIT-licensed repo with no releases, so nothing stops a copy.

    Checked 7 Oct 2026 · github.com/frectonz/chafa (opens in a new tab)

Momentum

Did the updates keep coming?

Work ran across about five days in November 2023 and nothing has shipped since, so it has been idle for roughly three years.

0/100

  • Sustained shipping0/60

    Worked on across 5 days.

  • Consistency0/40

    Updates in 1 of 1 month.

  • Quiet

    No update for 1054 days, so scaled to 20%.

Receipts (2)
  1. Earliest post about it.

    “I decided to learn FFI (calling C/C++ funcs from Rust) with bindgen. Found this C lib called chafa that does rendering pictures in the terminal. The chafa lib has this usage example on their reference manual. The pic shows that usage example ported to rust and running. First time doing FFI with rust and writing unsafe rust 🎉 and it's pretty exciting stuff thinking about all the libraries i ”

    Post · @thefrectonz · 13 Nov 2023 · open on Telegram (opens in a new tab)

  2. Most recent post about it.

    “I have just achieved the ultimate FFI threesome. OCaml + Rust + C = ❤️ What you are seeing in the images is OCaml code calling out to Rust which in turn is calling out to C. The actual flow (->) this means calls into OCaml project -> chafa-ocaml (Rust to OCaml bindings) -> chafa (safe Rust wrapper) -> chafa-sys (unsafe FFI rust) -> chafa (the c lib) You know complexity gets such a bad rep b”

    Post · @thefrectonz · 18 Nov 2023 · open on Telegram (opens in a new tab)

Infrastructure

Does a real, working product exist?

A real, working set of bindings exists, from an unsafe sys crate to a safe Rust wrapper to an OCaml layer, and the crates are published with docs. It's thin and has no releases on the repo.

56/100

  • It's live20/20

    https://github.com/frectonz/chafa responded when checked.

  • HTTPS5/5

    Hosted on a platform (store, GitHub or Telegram), so HTTPS is the platform's.

  • Real product25/35

    The bindings work and run, with a sys crate, a safe wrapper, and an OCaml layer demonstrated. It's a thin library with only a short example and no releases on the repo.

  • Own home0/10

    No home found.

  • Maintained0/15

    Last sign of shipping 2023-11-18.

  • Operations6/15

    The crates are published with generated docs on docs.rs and span two language ecosystems. There's no backend, API service, status page, or accounts.

Receipts (5)
  1. https://github.com/frectonz/chafa responded when checked.

    Checked 7 Oct 2026 · github.com/frectonz/chafa (opens in a new tab)

  2. The chafa usage example was ported to Rust and shown running.

    “I decided to learn FFI (calling C/C++ funcs from Rust) with bindgen. Found this C lib called chafa that does rendering pictures in the terminal. The chafa lib has this usage example on their reference manual. The pic shows that usage example ported to rust and running. First time doing FFI with rust and writing unsafe rust 🎉 and it's pretty exciting stuff thinking about all the libraries i ”

    Post · @thefrectonz · 13 Nov 2023 · open on Telegram (opens in a new tab)

  3. A safe, more idiomatic wrapper was built over the raw sys crate.

    “Designing nice library APIs is hard I am trying to write a safe wrapper around chafa-sys so that people don't have to use unsafe all over the place. I also wanted to make the api more rusty and easier to use. First image = using chafa-sys straight out of the box. Second image = the safe wrapper i am working on (heavily simplified)”

    Post · @thefrectonz · 18 Nov 2023 · open on Telegram (opens in a new tab)

  4. OCaml code calling through Rust into C was demonstrated.

    “I have just achieved the ultimate FFI threesome. OCaml + Rust + C = ❤️ What you are seeing in the images is OCaml code calling out to Rust which in turn is calling out to C. The actual flow (->) this means calls into OCaml project -> chafa-ocaml (Rust to OCaml bindings) -> chafa (safe Rust wrapper) -> chafa-sys (unsafe FFI rust) -> chafa (the c lib) You know complexity gets such a bad rep b”

    Post · @thefrectonz · 18 Nov 2023 · open on Telegram (opens in a new tab)

  5. chafa-sys builds and has docs on docs.rs.

    “The chafa-sys package successfully builds now 🎉 https://docs.rs/chafa-sys/latest/chafa_sys/”

    Post · @thefrectonz · 17 Nov 2023 · open on Telegram (opens in a new tab)

Sustainability

Is it being set up to last?

There's no distribution beyond the crate registry, no money, and no payment or pricing path, and the builder describes it as a learning project. It hasn't been updated since the first week, so there's no sign of ongoing commitment.

4/100

  • Distribution0/30

    No working way to get it was found.

  • Payments0/15

    No payment provider found.

  • Pricing0/10

    No pricing found on the site.

  • Revenue0/5

    No customers, pricing, or revenue appear anywhere in the posts.

  • Privacy policy0/7

    No privacy policy found.

  • Terms0/5

    No terms of service found.

  • Support0/8

    No support contact found.

  • Commitment4/20

    The builder pushed hard for about a week and shipped three layers. The project then went quiet, with no roadmap, team, or dedicated community.

Receipts (3)
  1. The repo is a free MIT-licensed library with no commercial offering.

    Checked 7 Oct 2026 · github.com/frectonz/chafa (opens in a new tab)

  2. Three layers were shipped within a week.

    “I have just achieved the ultimate FFI threesome. OCaml + Rust + C = ❤️ What you are seeing in the images is OCaml code calling out to Rust which in turn is calling out to C. The actual flow (->) this means calls into OCaml project -> chafa-ocaml (Rust to OCaml bindings) -> chafa (safe Rust wrapper) -> chafa-sys (unsafe FFI rust) -> chafa (the c lib) You know complexity gets such a bad rep b”

    Post · @thefrectonz · 18 Nov 2023 · open on Telegram (opens in a new tab)

  3. The last push was 2023-11-23 and the repo has no releases.

    Checked 7 Oct 2026 · github.com/frectonz/chafa (opens in a new tab)