Hsthrift: Open-sourcing Thrift for Haskell - Facebook Engineering

This page summarizes the projects mentioned and recommended in the original post on /r/haskell

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • stan

    🕵️ Haskell STatic ANalyser (by kowainik)

  • However, I'm a huge fan of static tools like this in general. I've heard great things about https://package.elm-lang.org/packages/jfmengels/elm-review/latest/ and I need to try out https://github.com/kowainik/stan. Also its possible HLint has ways to write more advanced rules and I just don't know about them, but even if that's so hopefully I've explained why just dropping it in isn't a huge win.

  • hsthrift

    Discontinued The Haskell Thrift Compiler. This is an implementation of the Thrift spec that generates code in Haskell. It depends on the fbthrift project for the implementation of the underlying transport.

  • A bunch of those hints are coming from generated code - e.g. https://github.com/TomMD/hsthrift/blob/c9fb3a4b425c86fd0e0f7fe86d438fb90c0ff2e3/compiler/test/fixtures/gen-hs2/A/S/Service.hs#L56 is a complete mess for a human, but perfectly reasonable as a generation target. They might well be using HLint, and not running it on generated code, which would be a reasonable approach.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • pinch-gen

  • We have now switched to the pinch library ( https://hackage.haskell.org/package/pinch ) which feels more Haskell-y, although at the price of using some more advanced type-level stuff (type families, GADTs). On the other hand, finally an excuse to use those in production code :-) We also have written a code-generator for it, though that could do with a lot of polish ...( https://github.com/phile314/pinch-gen/ ).

  • hsthrift

    The Haskell Thrift Compiler. This is an implementation of the Thrift spec that generates code in Haskell. It depends on the fbthrift project for the implementation of the underlying transport. (by facebookincubator)

  • A production RPC framework is a lot of work, so of course we didn't want to duplicate everything in the C++ implementation. Yes that makes it a bit of a pain to build, but we have provided instructions and a CI setup that's working right now on github to demonstrate that it all works. Also there's a [pure Haskell implementation of the transport layer](https://github.com/facebookincubator/hsthrift/blob/master/lib/Thrift/Channel/SocketChannel.hs) in the repository for experimentation - we're in the process of making it easier to use this, but when we're done the only C++ dependency will be folly.

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