A native implementation of Clojure for the .NET Common Language Runtime (CLR), enabling functional programming on Microsoft platforms.
ClojureCLR is a native implementation of the Clojure programming language for the Common Language Runtime (CLR), the execution engine of Microsoft's .NET Framework. It enables developers to write Clojure code that runs on .NET platforms, bringing functional programming, immutable data structures, and concurrency tools to the Microsoft ecosystem. The project solves the problem of accessing Clojure's expressive programming model within .NET environments, facilitating interoperability with existing .NET libraries and applications.
.NET developers seeking to adopt functional programming paradigms, Clojure developers needing to target Microsoft platforms, and teams building cross-platform applications that require integration with .NET ecosystems.
Developers choose ClojureCLR because it provides a feature-complete, faithful port of Clojure to the CLR, ensuring consistency with the JVM version while enabling seamless interoperability with .NET. Its unique selling point is bringing Clojure's powerful functional programming capabilities to the Microsoft stack without sacrificing language features or developer experience.
A port of Clojure to the CLR, part of the Clojure project
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a feature-complete port of Clojure to the CLR, including core syntax and data structures, ensuring developers get the full language experience as on the JVM, per the project goals.
Can be embedded as a library in .NET applications, enabling direct interaction with existing .NET codebases and assemblies, as highlighted in the getting started guide.
Stays closely aligned with the JVM implementation, making it easier for Clojure developers to switch platforms without relearning, aligned with the project's philosophy.
Many standard Clojure libraries have been ported to the CLR, reducing the need for custom solutions and extending functionality, as noted in the libraries section.
The ClojureCLR-specific library and tool ecosystem is smaller than JVM Clojure or mainstream .NET languages, often requiring custom integration or missing community packages.
ClojureCLR-specific documentation is scattered across wikis and docs, with reliance on JVM Clojure docs that may not cover .NET nuances, leading to potential gaps in learning resources.
As a port, it may not immediately adopt new features or updates from the JVM version, causing delays in accessing the latest Clojure enhancements or .NET runtime support.