A few words on Ruby's type annotations state

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. contracts.ruby

    Contracts for Ruby.

    I had written a code contracts library for Ruby about 10 years ago [1]. I stopped working on it, mainly because it only provided runtime type checking, and I wanted static type checking. Nowadays my main language is typescript. I miss ruby, but can't give up the static typing that typescript provides. I really wish Ruby had a type system with the same level of support. VSCode has phenomenal TS support, and there's a community adding types to projects [2]. This is something I'd like for Ruby also.

    > An integral part of this informality is relying on Matz’s taste and intuition for everything that affects the language’s core.

    I think a more defined process would mean a better future for Ruby and Ruby developers.

    - [1] https://github.com/egonschiele/contracts.ruby

    - [2] https://github.com/DefinitelyTyped/DefinitelyTyped

  2. SaaSHub

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

    SaaSHub logo
  3. sorbet

    A fast, powerful type checker designed for Ruby

  4. dd-trace-rb

    Datadog's client library for Ruby

    > For myself, I'm fine with the typing being in a separate .rbs file

    We type[0] by having one separate .rbs file per .rb file. Works really well with an editor's vertical splits: type outline on one side, code on the other. That, or use something like vim-projectionist[1].

    [0]: (WIP: there's a huge codebase to type, but we're progressively getting there) https://github.com/DataDog/dd-trace-rb/tree/master/sig

    [1]: https://github.com/tpope/vim-projectionist

  5. vim-projectionist

    projectionist.vim: Granular project configuration

    > For myself, I'm fine with the typing being in a separate .rbs file

    We type[0] by having one separate .rbs file per .rb file. Works really well with an editor's vertical splits: type outline on one side, code on the other. That, or use something like vim-projectionist[1].

    [0]: (WIP: there's a huge codebase to type, but we're progressively getting there) https://github.com/DataDog/dd-trace-rb/tree/master/sig

    [1]: https://github.com/tpope/vim-projectionist

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Best AI Coding Tools of 2025: What Tools Should You Use?

    4 projects | dev.to | 28 Oct 2025
  • The end of "Useless Ruby sugar": On intuitions and evolutions

    4 projects | news.ycombinator.com | 23 Jan 2024
  • Datadog vs Dynatrace in 2026: Enterprise Observability Compared

    2 projects | dev.to | 13 Jun 2026
  • OpenTelemetry: The Foundation of Modern Cloud-Native Observability — Traces, Metrics, Logs, and the Future of Observability

    2 projects | dev.to | 28 May 2026
  • An introduction to types in Ruby

    2 projects | dev.to | 27 Jan 2026