awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
clojure avatar

clojure/clojure

0
View on GitHub↗
11,006 stars·1,462 forks·Java·15 viewsclojure.org↗

Clojure

Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic S-expression language that represents programs as nested data structures, allowing code to be manipulated and evaluated as data.

The project provides a framework for JVM interoperability, enabling the invocation of Java methods and integration with other JVM-based languages. It distinguishes itself through a persistent data structure library that uses bitmapped vector tries to manage immutable collections and a programmatic REPL for interactive software development and real-time library loading.

The system includes capabilities for parallel data processing using a fork-join model and data transformation via transducers. It also covers protocol-based polymorphism, metadata-driven dispatch, and a compilation process that transforms high-level expressions into Java bytecode.

The runtime supports remote access to interactive environments via socket server initialization.

Features

  • Homoiconic Languages - Represents programs as nested data structures, allowing code to be manipulated and evaluated as data.
  • Homoiconic Syntax - Represents programs as nested data structures, allowing code to be manipulated and evaluated as data.
  • Transducers and Streams - Provides transducers to create reusable transformation recipes that operate across different data collection types.
  • Collection Reductions - Implements functional patterns for collapsing associative collections into single values using accumulator functions.
  • Persistent Collection Implementations - Implements immutable collections using structural sharing and bitmapped vector tries for efficient memory and performance.
  • Interactive REPLs - Ships a programmatic REPL for real-time expression evaluation and library loading without environment restarts.
  • Programmatic REPLs - Evaluates expressions and returns structured data maps containing return values and output streams.
  • Dynamic Library Loading - Downloads and loads libraries into the active session without restarting the execution environment.
  • Source-to-Bytecode Compilers - Provides a compiler that transforms high-level functional expressions into optimized Java bytecode for the JVM.
  • Functional Programming Frameworks - Provides a high-level framework for application development based on functional paradigms and immutable data structures.
  • Java Method Invocations - Provides seamless invocation of qualified Java methods and constructors as functions through generated wrapping logic.
  • JVM Interoperability Frameworks - Provides a seamless bridge interface for invoking Java methods and integrating other JVM-based languages.
  • Persistent Data Structures - Ships highly efficient immutable collections based on bitmapped vector tries to ensure stability and scalability.
  • JVM Ecosystem - Integrates seamlessly with the JVM ecosystem to invoke Java methods and leverage existing libraries.
  • Lisp Dialects - Implements a functional Lisp dialect hosted on the JVM with a strong emphasis on immutable data and REPL-driven development.
  • Purely Functional Languages - Provides a general-purpose language centered on pure functions and immutable data structures.
  • JVM Bytecode Compilers - Transforms high-level functional expressions into Java bytecode for execution on the Java Virtual Machine.
  • Java Virtual Machine Runtimes - Provides a functional programming runtime hosted on the Java Virtual Machine with direct access to Java libraries.
  • Homoiconicity - Represents code as nested data structures allowing the language to treat programs as manipulatable data.
  • S-Expression Languages - Represents programs as nested S-expressions, allowing the language to treat code as manipulatable data.
  • Language Stream APIs - Implements functional-style operations to process Java data streams using sequence, reduce, and transduce operations.
  • Stable Hashing - Creates consistent hashes for primitives and collections to increase the speed of hashed data lookups.
  • Parallel Processing - Implements parallel data processing by splitting large tasks across available CPU cores using a fork-join model.
  • Transducers - Decouples data transformation logic from input sources to process collections without creating intermediate data structures.
  • Data Transformation Pipelines - Implements reusable data transformation pipelines using transducers to process collections without intermediate structures.
  • Parallel Reductions - Executes fold and reduce operations across multiple CPU cores using a fork-join model to increase processing speed.
  • Direct Method Call Generation - Optimizes performance by generating direct calls to static methods, bypassing variable and object lookup overhead.
  • Metadata-Driven Dispatch - Uses attached metadata on data atoms to determine how functions or protocols behave at runtime.
  • Safe Data Reading - Implements a restricted reader for untrusted sources that prevents arbitrary code evaluation during data parsing.
  • Metadata-Based Protocol Implementation - Implements protocol functions by defining them directly within the metadata of a value.
  • Protocol-Based Polymorphism - Decouples interface definition from implementation by allowing any data type to implement a set of required functions.
  • Persistent Collection Partitioning - Optimizes the partitioning of persistent and algorithmic collections to avoid slow sequential traversal.

Star history

Star history chart for clojure/clojureStar history chart for clojure/clojure

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Clojure

Similar open-source projects, ranked by how many features they share with Clojure.
  • scala/scalascala avatar

    scala/scala

    14,548View on GitHub↗

    Scala is a statically typed programming language and compiler that combines object-oriented and functional programming paradigms. It serves as a cross-platform runtime language capable of targeting the Java Virtual Machine and JavaScript to share logic between backend servers and web frontends. The project provides a functional programming framework with immutable data structures and higher-order functions to build reliable concurrent and distributed applications. It distinguishes itself through deep interoperability with Java and JavaScript ecosystems and the ability to transform code into n

    Scalafunctional-programmingjvm-languagesobject-oriented-programming
    View on GitHub↗14,548
  • hylang/hyhylang avatar

    hylang/hy

    5,425View on GitHub↗

    Hy is a Lisp implementation for Python that allows for writing Lisp syntax which compiles to Python bytecode. It operates as a Python-based Lisp dialect and S-expression language, providing full access to the Python standard library and ecosystem. The language focuses on macro-based metaprogramming, featuring an AST-walking macro system and reader macros that allow for custom syntax transformations and parsing rules. It enables the manipulation of the abstract syntax tree to extend language capabilities. The project includes a read-eval-print loop for interactive development and supports sta

    Python
    View on GitHub↗5,425
  • frege/fregeFrege avatar

    Frege/frege

    3,700View on GitHub↗

    Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for the Java platform. It is built around a Haskell-inspired compiler that implements non-strict evaluation and a static type inference system to ensure data immutability and prevent side effects. The project distinguishes itself through a sophisticated type system featuring rank polymorphism, type-class based dispatch, and static purity enforcement. It includes a JVM language bridge and a foreign function interface that map Java classes and interfaces into functional types, allow

    Frege
    View on GitHub↗3,700
  • louthy/language-extlouthy avatar

    louthy/language-ext

    7,057View on GitHub↗

    language-ext is a functional programming framework for C# that provides a suite of immutable data structures and monadic types. It enables the implementation of pure functional programming patterns, utilizing containers to manage side effects, optional values, and error handling. The library is distinguished by its advanced concurrency and state management tools, including a software transactional memory system and lock-free atomic references. It also provides specialized utilities for distributed systems, such as vector clocks for causality tracking and deterministic data conflict resolution

    C#
    View on GitHub↗7,057
See all 30 alternatives to Clojure→

Frequently asked questions

What does clojure/clojure do?

Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic S-expression language that represents programs as nested data structures, allowing code to be manipulated and evaluated as data.

What are the main features of clojure/clojure?

The main features of clojure/clojure are: Homoiconic Languages, Homoiconic Syntax, Transducers and Streams, Collection Reductions, Persistent Collection Implementations, Interactive REPLs, Programmatic REPLs, Dynamic Library Loading.

What are some open-source alternatives to clojure/clojure?

Open-source alternatives to clojure/clojure include: scala/scala — Scala is a statically typed programming language and compiler that combines object-oriented and functional programming… hylang/hy — Hy is a Lisp implementation for Python that allows for writing Lisp syntax which compiles to Python bytecode. It… frege/frege — Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for… louthy/language-ext — language-ext is a functional programming framework for C# that provides a suite of immutable data structures and… scala/scala3 — Scala 3 is an open-source, statically typed programming language that compiles to JVM bytecode, combining… mozilla/rhino — Rhino is a Java-based JavaScript engine that implements an ECMAScript compatibility layer for execution inside a Java…

Curated searches featuring Clojure

Hand-picked collections where Clojure appears.
  • Clojure and Lisp Programming Resources