<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy" -->

---
title: Clj.rs – a Clojure dialect implemented in Rust | daily.dev
description: cljrs is an experimental Clojure dialect targeting the Rust ecosystem. It aims to be a capable Lisp runtime with persistent data structures, a hosted macro...
canonical: https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Clj.rs – a Clojure dialect implemented in Rust | daily.dev
og:description: cljrs is an experimental Clojure dialect targeting the Rust ecosystem. It aims to be a capable Lisp runtime with persistent data structures, a hosted macro...
og:url: https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy
og:image: https://api.daily.dev/og/posts/wZczxZIVY.png
og:image:alt: Clj.rs – a Clojure dialect implemented in Rust
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Clj.rs – a Clojure dialect implemented in Rust

**[Hacker News](https://daily.dev/sources/hn)** · 1 min read · 0 upvotes · 0 comments

## Summary

cljrs is an experimental Clojure dialect targeting the Rust ecosystem. It aims to be a capable Lisp runtime with persistent data structures, a hosted macro system, and native interop, running either compiled or interpreted. The project is positioned as suitable for use as an agentic coding runtime. It's available on crates.io and described as early stage, with rough edges expected.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://clj.rs/>

## Questions this post answers

### Is there a Clojure-like language that runs natively in Rust?

Yes, cljrs is an experimental Clojure dialect targeting the Rust ecosystem. It provides persistent data structures, a hosted macro system, and native interop, and can be compiled or interpreted. It's published on crates.io and described as early stage, so expect rough edges.

_Developers evaluating Lisp runtimes on Rust can follow projects like cljrs on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 41 comments across hackernews (as of 2026-11-08).

**TL;DR:** The discussion is largely a broader debate about why Clojure's syntax/ergonomics appeal to people and whether Lisp/S-expressions are well-suited to the LLM/agentic era, with relatively modest direct engagement on clj.rs itself beyond interop and naming notes.

**Sentiment:** 35% positive · 55% mixed · 10% skeptical

**The case for**

- Clojure's data-literal syntax (hash maps, get-in/update-in) is seen as pleasant and more approachable than older Lisps for people coming from Python/JS/Ruby.
- Some see succinct, macro-friendly Lisp syntax as advantageous for working within LLM context-window limits.
- Enthusiasm for seeing more Clojure dialects emerge alongside Jank for C++.

**The pushback**

- Rust interop looks far less seamless than Clojure's native JVM interop, requiring significant manual glue code.
- One commenter flags the project as vibecoded and questions whether it has been well tested.
- Skepticism that S-expressions/macros still matter much, since current coding agents seem to struggle with balanced Lisp syntax and are more fluent in Python.

**By community**

- hackernews (mixed): Conversation mostly drifts into a general debate about Clojure's appeal and Lisp's relevance in the LLM era, with only light, mixed direct commentary on the project itself.

**Hottest debate:** Whether S-expression/Lisp-style succinctness and macros remain valuable (or even become more valuable) in an era of LLM coding agents, versus becoming increasingly obsolete.

**Open questions**

- How does clj.rs compare to Jank, ClojureScript, or Jank's C++ approach?
- What are the project's explicit non-goals?
- Will Rust interop ever become as seamless as Clojure's JVM interop?

**Highlights**

> One of the killer features of Clojure is it's seamless interop with the host platform. On the JVM you do something like (Integer/parseInt my-variable); this calls Integer.parseInt(my_variable) in Java-land I tried to find examples for how to call Rust code and the best I could find is: https://github.com/csm/clojurust/blob/b847a29b46e2b6b3fbe624... It looks like you need to do a lot of leg work to introduce Rust functions into Clojure namespaces. I guess there is no way around it and this is not a criticism of clj.rs. But it doesn't seem to be as seamless as on the JVM.
> — [vaylian on hackernews](https://news.ycombinator.com/item?id=50412979)

> It's vibecoded which makes it unlikely it has been actually tested well.
> — [mono442 on hackernews](https://news.ycombinator.com/item?id=50412852)

> That’s a plausible story, but doesn’t seem to bear out in terms of models being amazing at Lisp. Like, Sonnet 4.5 was writing me emacs Lisp with unbalanced parentheses. I don’t really have faith that I could write macros of such incredible brilliance that it would outweigh the models’ facility with Python.
> — [neutronicus on hackernews](https://news.ycombinator.com/item?id=50413104)

> > It seems like the idea of the macro, and more generally of expressing code succinctly, is the closest to obsolete in my memory? Seems more important than ever? Every model degrades the more context you use, programs that can be described more succinctly will be better made, at least when using LLMs to create these, as it's much easier to fit more "meat" per token. I'm on the same "S-Expressions taking over is inevitable" but to be fair, I've been on this train for the last decade so maybe I'm slightly biased.
> — [embedding-shape on hackernews · 1 comments](https://news.ycombinator.com/item?id=50412883)

> Cool. I'm already a big fan of the scheme-rs crate. I use it any time I need a dynamic scripting language. It allows for more flexible hot-reloading of parts of a program. I don't personally have any Clojure interop holes that need filling. But I can imagine a future where one moves partially away from the JVM if e.g. faster starts or leaner container images are desired.
> — [sshine on hackernews · 2 comments](https://news.ycombinator.com/item?id=50411667)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=50366902) · 90 points · 41 comments

## Similar posts on daily.dev

- [jrs, a JVM build system written in Rust](https://daily.dev/posts/jrs-a-jvm-build-system-written-in-rust-feqa177si) · Awesome Java Newsletter · 1 upvotes · 0 comments
- [GitHub - ThatXliner/rust-but-lisp: Rust but LISP](https://daily.dev/posts/github---thatxliner-rust-but-lisp-rust-but-lisp-jiencdy0y) · Hacker News · 0 upvotes · 0 comments
- [jank reimagines C\+\+ errors and gets an official native package repo](https://daily.dev/posts/jank-reimagines-c-errors-and-gets-an-official-native-package-repo-ujtchnvue) · Lobsters · 0 upvotes · 0 comments
- [clj-suitable 0.8.0: Closing the Gap with Compliment](https://daily.dev/posts/clj-suitable-0-8-0-closing-the-gap-with-compliment-oars98uzo) · Meta Redux · 0 upvotes · 0 comments
- [\(iterate think thoughts\): Clojure in the Age of Language Models](https://daily.dev/posts/iterate-think-thoughts-clojure-in-the-age-of-language-models-vitzczxnq) · yogthos \(Dmitri Sotnikov\) · 0 upvotes · 0 comments

---

Tags: [#open-source](https://daily.dev/tags/open-source), [#rust](https://daily.dev/tags/rust), [#clojure](https://daily.dev/tags/clojure), [#lisp](https://daily.dev/tags/lisp)

[View this post on daily.dev](https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Clj.rs – a Clojure dialect implemented in Rust","url":"https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy"},"datePublished":"2026-11-08T10:20:27.280Z","dateModified":"2026-11-08T14:21:18.367Z","description":"cljrs is an experimental Clojure dialect targeting the Rust ecosystem. It aims to be a capable Lisp runtime with persistent data structures, a hosted macro...","image":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","thumbnailUrl":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"open-source,rust,clojure,lisp","timeRequired":"PT1M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Clj.rs – a Clojure dialect implemented in Rust"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/clj-rs-a-clojure-dialect-implemented-in-rust-wzczxzivy#faq","mainEntity":[{"@type":"Question","name":"Is there a Clojure-like language that runs natively in Rust?","acceptedAnswer":{"@type":"Answer","text":"Yes, cljrs is an experimental Clojure dialect targeting the Rust ecosystem. It provides persistent data structures, a hosted macro system, and native interop, and can be compiled or interpreted. It's published on crates.io and described as early stage, so expect rough edges. Developers evaluating Lisp runtimes on Rust can follow projects like cljrs on daily.dev."}}]}
```

