Dingo is a meta-language that transpiles to Go, adding Result types, Option types, sum types with pattern matching, error propagation using the ? operator, and functional utilities while maintaining 100% Go ecosystem compatibility. The project compiles Dingo syntax to clean, idiomatic Go code with zero runtime overhead, similar to how TypeScript relates to JavaScript. Currently in active development with core features like sum types, pattern matching, error propagation, and lambda functions already working. The transpiler uses a two-stage architecture: preprocessor for text transformations followed by AST processing with Go's native parser. Includes full IDE support via LSP integration with gopls proxy and source maps for accurate position mapping.

40m read timeFrom github.com
Post cover image
Table of contents
Look, I love Go. But...What's Dingo?Why "Dingo"?Quick StartWhy Dingo?The Hidden Superpower: Use Dingo Selfishly, Help Go Evolve NaturallyWhy should you care?Show Me Code or I'm LeavingReal Working Examples (From Our Test Suite)The "Holy Crap" ExampleFeatures That Make Dingo SpecialFeature Deep DiveMore Real-World ExamplesHow does this actually work?What the generated code looks likeYour questions, answeredRoadmap (the realistic version)What Dingo adds (and what it doesn't)Standing on the shoulders of giantsCan I help?Project structure (for the curious)Implementation StatusOne more thingGet Started TodayJoin the CommunityOne Final Thing

Sort: