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
·
facebook avatar

facebook/reason

0
View on GitHub↗
10,315 stars·434 forks·OCaml·MIT·18 viewsreasonml.github.io↗

Reason

Reason is a statically typed programming language and compiler based on the OCaml ecosystem. It translates high-level, type-safe source code into either JavaScript or OCaml output, providing a typed alternative for web and system development.

The language focuses on providing rigorous type safety and a robust module system while integrating with the JavaScript ecosystem. It allows for the development of applications that leverage existing JavaScript libraries while utilizing a more rigid type system to eliminate common runtime crashes and data mismatches.

The project covers capabilities including algebraic data type modeling, type inference, and namespace isolation. It employs a statically typed abstract syntax tree to validate program logic before transpiling to JavaScript or compiling to OCaml bytecode and machine code.

Features

  • OCaml Ecosystem Compilers - Acts as a compiler that translates high-level type-safe source code into efficient OCaml or JavaScript output.
  • Algebraic Data Types - Implements language-level support for sum and product types to model complex data structures safely.
  • OCaml Backends - Transforms source code into OCaml bytecode or machine code to leverage the OCaml compiler.
  • Source-to-JavaScript Transpilers - Provides a transpiler that converts type-safe source code into optimized JavaScript for web and Node.js environments.
  • OCaml-Based Syntaxes - Uses an OCaml-based syntax to create efficient programs targeted toward multiple runtime environments.
  • Statically Typed Languages - Enforces type safety through static analysis during the compilation process to catch errors before runtime.
  • Typed JavaScript Alternatives - Offers a rigorous type system and robust module system as a typed alternative for the JavaScript ecosystem.
  • Source Code Compilers - Translates statically typed source code into target languages to prevent memory errors and runtime type mismatches.
  • Type Inference Engines - Features an automated engine that determines expression types without requiring explicit developer annotations.
  • Module Namespaces - Utilizes a robust module system and hierarchical namespaces to organize code and prevent identifier collisions.
  • Typed Abstract Syntax Trees - Employs a statically typed abstract syntax tree to validate program logic before transpilation or compilation.
  • JavaScript Library Integrations - Allows the development of applications that integrate with and leverage existing JavaScript libraries.
  • Type-Safe Web Frameworks - Enables building web applications with static types to eliminate common runtime crashes and data mismatches.
  • Programming Languages - Supports the ReasonML language and its ecosystem.

Star history

Star history chart for facebook/reasonStar history chart for facebook/reason

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 Reason

Similar open-source projects, ranked by how many features they share with Reason.
  • reasonml/reasonreasonml avatar

    reasonml/reason

    10,313View on GitHub↗

    Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web environments or native machine code for operating systems. It serves as an OCaml-compatible language that shares an abstract syntax tree with OCaml, providing a practical syntax for the OCaml ecosystem. The project functions as a type-safe frontend language, incorporating JSX support to build user interfaces through structural elements that translate into type-safe function calls. It enables deep integration with the JavaScript ecosystem, allowing the use of existing librarie

    OCamljavascriptocamlprogramming-language
    View on GitHub↗10,313
  • purescript/purescriptpurescript avatar

    purescript/purescript

    8,832View on GitHub↗

    PureScript is a statically typed, purely functional programming language that compiles to JavaScript. It is designed as a cross-platform frontend language for building safe web applications, utilizing a static type system and a JavaScript compiler to ensure program correctness across browser and server environments. The language is distinguished by its emphasis on mathematical purity, featuring a robust type system with first-class support for monads. It provides a sophisticated toolset for static verification, including algebraic data types, type classes, and automatic type inference to reje

    Haskellalt-jshaskelljavascript
    View on GitHub↗8,832
  • rescript-lang/rescriptrescript-lang avatar

    rescript-lang/rescript

    7,396View on GitHub↗

    ReScript is a statically typed programming language and compiler designed to transform type-safe source code into efficient, human-readable JavaScript. It functions as a transpiler that enforces data consistency and prevents runtime errors through static type analysis for both web and server applications. The project distinguishes itself as an incremental build system that analyzes dependency graphs to recompile only modified files and their dependents. It includes a JSX compatible compiler for building user interfaces and provides a framework for bridging type-safe code with existing JavaScr

    ReScriptaltjscompilerjavascript
    View on GitHub↗7,396
  • elm/compilerelm avatar

    elm/compiler

    7,794View on GitHub↗

    This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed language into optimized JavaScript for web browsers. It serves as a frontend architecture framework, providing a static type system and a package manager that enforces semantic versioning. The compiler uses a type-checking engine with automatic type inference to prevent runtime errors and guide code refactoring. It implements a structural pattern for managing application state and rendering user interfaces through a virtual DOM, utilizing immutable data and purity-based state transit

    Haskellcompilerelm
    View on GitHub↗7,794
See all 30 alternatives to Reason→

Frequently asked questions

What does facebook/reason do?

Reason is a statically typed programming language and compiler based on the OCaml ecosystem. It translates high-level, type-safe source code into either JavaScript or OCaml output, providing a typed alternative for web and system development.

What are the main features of facebook/reason?

The main features of facebook/reason are: OCaml Ecosystem Compilers, Algebraic Data Types, OCaml Backends, Source-to-JavaScript Transpilers, OCaml-Based Syntaxes, Statically Typed Languages, Typed JavaScript Alternatives, Source Code Compilers.

What are some open-source alternatives to facebook/reason?

Open-source alternatives to facebook/reason include: reasonml/reason — Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web… purescript/purescript — PureScript is a statically typed, purely functional programming language that compiles to JavaScript. It is designed… rescript-lang/rescript — ReScript is a statically typed programming language and compiler designed to transform type-safe source code into… elm/compiler — This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed… microsoft/typescript-handbook — This project is a comprehensive guide and educational resource for the TypeScript language. It covers the fundamental… clojure/clojurescript — ClojureScript is a Lisp-based compiler and runtime that translates Clojure source code into JavaScript. It enables…