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
borgo-lang avatar

borgo-lang/borgo

0
View on GitHub↗
4,640 stars·67 forks·Rust·22 viewsborgo-lang.github.io↗

Borgo

Borgo is a statically typed language and compiler that transforms high-level syntax into Go source code. It functions as a transpiler designed to leverage the Go runtime while introducing a type system centered on algebraic data types and result-based error handling.

The language distinguishes itself by replacing Go's multiple return values with result and option types, using a dedicated operator for concise error propagation. It implements sum types with exhaustive pattern matching and provides a tool to generate bindings for existing Go packages, automatically converting multi-value returns into these safer type wrappers.

The system includes primitives for concurrent programming, utilizing typed channels and background tasks to coordinate asynchronous processes. Its type system further supports structural interface implementation, automatic collection type inference, and implementation blocks for organizing methods on structs.

Features

  • Go Target Transpilers - Functions as a statically typed language that transpiles directly to Go source code for ecosystem interoperability.
  • Go-to-JavaScript Transpilers - Transforms high-level source code into compatible Go code to leverage the Go ecosystem and runtime.
  • Algebraic Data Types - Implements sum types and enums with associated data and enforces exhaustive pattern matching at compile time.
  • Concurrent Programming Languages - Provides a language designed for coordinating asynchronous processes using typed channels and background tasks.
  • Concurrent Thread Execution - Spawns lightweight goroutines to execute functions concurrently without blocking the main thread.
  • Go-Compatible Language Runtimes - Provides a language and transpiler that allows leveraging existing Go packages and libraries.
  • Go Library Interoperability - Automatically converts multi-value return types from imported Go libraries into safer option and result types.
  • Channel-Based Concurrency - Provides typed senders and receivers to pass data between concurrent processes while maintaining synchronization.
  • Multi-Value Wrapping - Converts Go's multiple return values into single Result or Option types to eliminate nulls.
  • Result Types - Replaces multiple return values with typed result and option containers to simplify error propagation.
  • Source-To-Source Transpilers - Transforms high-level language syntax into compatible Go source code for compilation via the Go toolchain.
  • Statically Typed Compilers - Implements a compiler that transforms high-level syntax into type-safe executable code.
  • Algebraic Data Types - Utilizes algebraic data types and exhaustive pattern matching to build robust and type-safe applications.
  • Concurrency Design Principles - Manages background tasks and data exchange using channels and lightweight threads for asynchronous processing.
  • Question Mark Error Propagation - Provides a concise syntax operator to automatically bubble up errors through the call stack from Result types.
  • Optional Value Types - Manages missing values or errors using explicit wrapper types instead of relying on null pointers.
  • Error Handling - Replaces multiple return values and null pointers with result and option types to reduce runtime crashes.
  • Concurrent Task Groups - Enables waiting on multiple channel operations and executing logic based on which process completes first.
  • Automatic Type Inferences - Automatically determines the types of lists and maps during declaration to eliminate explicit type specifications.
  • Implicit Interface Implementations - Supports structural interfaces where types satisfy requirements based on the methods they implement without explicit declarations.
  • Package Binding Generators - Includes an importer tool to parse external packages and generate necessary type and function declarations.
  • External Library Interoperability - Parses external Go libraries to automatically create necessary type and function declarations for interoperability.
  • Type Methods - Allows grouping related functions into implementation blocks with shared receivers to organize behavior on structs.
  • Structural Type Validations - Ensures types satisfy required method sets to enable polymorphism based on behavior rather than explicit inheritance.

Star history

Star history chart for borgo-lang/borgoStar history chart for borgo-lang/borgo

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. 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

Projects sharing features with Borgo

These projects share indexed features with Borgo. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • gcanti/fp-tsgcanti avatar

    gcanti/fp-ts

    11,523View on GitHub↗

    fp-ts is a TypeScript library that brings pure functional programming patterns to the language through algebraic data types, type class abstractions, and composable combinators. It provides foundational data types like Option for optional values, Either for typed error handling, and Task for lazy asynchronous computations, all designed to make invalid states unrepresentable and side effects explicit. The library is built on category theory concepts, offering type classes such as Functor, Applicative, Monad, Semigroup, and Monoid with lawful instances for common data structures. The library di

    TypeScriptalgebraic-data-typesfunctional-programmingtypescript
    View on GitHub↗11,523
  • c3lang/c3cc3lang avatar

    c3lang/c3c

    5,147View on GitHub↗

    c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte

    C3c3compilerlanguage
    View on GitHub↗5,147
  • dry-python/returnsdry-python avatar

    dry-python/returns

    4,310View on GitHub↗

    Returns is a functional programming library for Python that provides type-safe containers for managing state, error handling, and optionality. It serves as a monadic container library and a type-safe error handling framework, replacing traditional try-catch blocks and null checks with Result and Optional containers to treat exceptions as data. The project is distinguished by its use of a specialized Mypy static analysis plugin to validate functional pipelines and emulate higher kinded types. It provides mechanisms for isolating side effects through IO containers and offers a framework for typ

    Python
    View on GitHub↗4,310
  • 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
Compare all 30 related projects→

Frequently asked questions

What does borgo-lang/borgo do?

Borgo is a statically typed language and compiler that transforms high-level syntax into Go source code. It functions as a transpiler designed to leverage the Go runtime while introducing a type system centered on algebraic data types and result-based error handling.

What are the main features of borgo-lang/borgo?

The main features of borgo-lang/borgo are: Go Target Transpilers, Go-to-JavaScript Transpilers, Algebraic Data Types, Concurrent Programming Languages, Concurrent Thread Execution, Go-Compatible Language Runtimes, Go Library Interoperability, Channel-Based Concurrency.

Which projects share features with borgo-lang/borgo?

Projects with overlapping indexed features include: gcanti/fp-ts — fp-ts is a TypeScript library that brings pure functional programming patterns to the language through algebraic data… c3lang/c3c — c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static… purescript/purescript — PureScript is a statically typed, purely functional programming language that compiles to JavaScript. It is designed… reasonml/reason — Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web… dry-python/returns — Returns is a functional programming library for Python that provides type-safe containers for managing state, error… typelevel/cats — Cats is a Scala functional programming library and type class library designed to implement algebraic patterns and…