exhaustive

Check exhaustiveness of switch statements of enum-like constants in Go source code. (by nishanths)

Exhaustive Alternatives

Similar projects and alternatives to exhaustive

  1. rust

    2,818 exhaustive VS rust

    Empowering everyone to build reliable and efficient software.

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. go

    2,255 exhaustive VS go

    The Go programming language

  4. fzf

    :cherry_blossom: A command-line fuzzy finder

  5. cobra

    A Commander for modern Go CLI interactions

  6. chi

    lightweight, idiomatic and composable router for building Go HTTP services

  7. validator

    :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving

  8. sqlx

    general purpose extensions to golang's database/sql

  9. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  10. pgx

    PostgreSQL driver and toolkit for Go

  11. Testify

    A toolkit with common assertions and mocks that plays nicely with the standard library

  12. delve

    Delve is a debugger for the Go programming language.

  13. go-sqlite3

    sqlite3 driver for go using database/sql

  14. gomock

    Discontinued GoMock is a mocking framework for the Go programming language. (by golang)

  15. fasthttp

    Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

  16. go-sql-driver/mysql

    Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package (by go-sql-driver)

  17. go-tools

    Staticcheck - The advanced Go linter

  18. gopherjs

    A compiler from Go to JavaScript for running Go code in a browser

  19. go-sumtype

    A simple utility for running exhaustiveness checks on Go "sum types."

  20. Ionide-vim

    2 exhaustive VS Ionide-vim

    F# Vim plugin based on FsAutoComplete and LSP protocol

  21. js-proposal-algebraic-effects

    šŸ“Let there be algebraic effects in JS

  22. go-optional

    A library that provides Go Generics friendly "optional" features.

  23. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better exhaustive alternative or higher similarity.

exhaustive discussion

Log in or Post with

exhaustive reviews and mentions

Posts with mentions or reviews of exhaustive. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-07-12.
  • Enums in Go
    6 projects | news.ycombinator.com | 12 Jul 2024
    There are two linters that add those checks: https://github.com/nishanths/exhaustive for values and https://github.com/alecthomas/go-check-sumtype for types. Both are integrated into golangci-lint. I use both a lot and have only a positive experience.

    Having support from the language would be nice, though.

  • Compile-time safety for enumerations in Go
    3 projects | news.ycombinator.com | 29 Sep 2023
    This is an analyzer that will catch this: https://github.com/nishanths/exhaustive

    I believe it's in golangci-lint.

  • Tools besides Go for a newbie
    36 projects | /r/golang | 26 Mar 2023
    I agree linters in general are quite useful for Go though. The default suite from golangci-lint is quite good. I would also recommend enabling exhaustive if you're working with a codebase that uses "enums" (full disclosure, I contributed a bit to that project).
  • What ā€œsucksā€ about Golang?
    17 projects | /r/golang | 10 Mar 2023
    there’s a linter for exhaustive matching: https://github.com/nishanths/exhaustive
  • Rusty enums in Go
    5 projects | /r/golang | 16 Feb 2023
    I tried to find that linter and found this: exhaustive
  • Supporting the Use of Rust in the Chromium Project
    11 projects | /r/rust | 13 Jan 2023
    And in Go you'd use a linter, like this one.
  • Blog on enums in Go: benchmarks; issues; assembly
    2 projects | /r/golang | 16 Nov 2022
    this is AST go vet analyzer that performs just that: https://github.com/nishanths/exhaustive (too bad it can not do struct based enums..)
  • Rust Is Hard, Or: The Misery of Mainstream Programming
    15 projects | news.ycombinator.com | 2 Jun 2022
    >> the main thing missing from Go is ADT's. After using these in Rust and Swift, a programming language doesn't really feel complete without them

    What are the differences between an ADT (plus pattern matching i’d reckon?) in Rust/Swift vs the equiv in Go (tagged interfaces + switch statement)?

    One has exhaustive matching at compile time, the other has a default clause (non exhaustive matching), although there’s an important nub here with respect to developer experience; it would be idiomatic in Go to use static analysis tooling (e.g. Rob Pike is on record saying that various checks - inc this one - don’t belong in the compiler and should live in go vet). I’ve been playing with Go in a side project and using golint-ci which invokes https://github.com/nishanths/exhaustive - net result, in both go and rust, i get a red line of text annotated at the switch in vscode if i miss a case.

    Taking a step back, there isn’t a problem you can solve with one that you can’t solve with the other, or is there?

    To take a step further back, why incomplete?

  • Why are enums not a thing in Go?
    5 projects | /r/golang | 22 May 2022
    Use a linter.
  • 1.18 is released
    6 projects | /r/golang | 15 Mar 2022
    For an exhaustive linter, were you referring to this? It looks pretty nice. If it's possible to check this with static analysis, is it something that could be in the compiler itself in the future?
  • A note from our sponsor - CodeRabbit
    coderabbit.ai | 30 Apr 2025
    Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR. Learn more →

Stats

Basic exhaustive repo stats
12
312
4.4
5 months ago

Sponsored
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai

Did you know that Go is
the 4th most popular programming language
based on number of references?