dingo  by MadAppGang

Go meta-language for enhanced safety and expressiveness

Created 2 weeks ago

New!

1,044 stars

Top 35.9% on SourcePulse

GitHubView on GitHub
Project Summary

Dingo is a meta-language designed to bring modern programming language features like Result types, pattern matching, and null safety to Go. It targets Go developers seeking to reduce boilerplate, enhance code safety, and improve expressiveness without sacrificing Go's performance or ecosystem compatibility. The primary benefit is writing cleaner, more robust Go code through a familiar syntax that transpiles to idiomatic Go.

How It Works

Dingo operates by transpiling Dingo source code into standard, idiomatic Go code. It employs a two-stage compiler: a preprocessor handles Dingo-specific syntax (like enum and ?), and an AST processor performs semantic transformations using Go's own tooling. This approach ensures zero runtime overhead and full compatibility with existing Go packages, effectively adding modern language ergonomics on top of Go's foundation.

Quick Start & Requirements

  • Installation: Clone the repository, build the compiler using go build -o dingo ./cmd/dingo, and optionally add the dingo executable to your PATH.
  • Prerequisites: Go version 1.21+ is required.
  • Usage: Create .dingo files and compile/run using dingo build <file> or dingo run <file>.
  • Links: Examples, Features.

Highlighted Details

  • Code Reduction: Claims significant reductions in boilerplate, such as 67% less error handling code and 78% less for sum type definitions.
  • Performance: Transpiles to pure Go, resulting in zero runtime overhead and identical performance to equivalent hand-written Go code.
  • IDE Support: Features Language Server Protocol (LSP) integration via a gopls proxy, providing accurate source maps for features like autocomplete, go-to-definition, and diagnostics within editors.
  • Key Features: Implements Result/Option types, ? operator for error propagation, pattern matching, safe navigation (?.), and null coalescing (??).

Maintenance & Community

Dingo is under active development with a target v1.0 release in Q1 2026. Community involvement is encouraged through GitHub issues and contributions.

Licensing & Compatibility

The license is currently TBD, with MIT or Apache 2.0 being likely. Dingo maintains 100% compatibility with the Go ecosystem, allowing seamless integration with existing Go packages and the ability to mix .go and .dingo files within projects.

Limitations & Caveats

Dingo is in active alpha development and is not yet recommended for production use, with v1.0 targeted for Q1 2026. Some features are still in development or marked as "Infrastructure Ready," indicating ongoing implementation and potential for changes.

Health Check
Last Commit

52 minutes ago

Responsiveness

Inactive

Pull Requests (30d)
2
Issues (30d)
25
Star History
1,062 stars in the last 15 days

Explore Similar Projects

Feedback? Help us improve.