Haskell ghost knowledge; difficult to access, not written down

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

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • superrecord

    Haskell: Supercharged anonymous records (by agrafix)

  • Cool. I added a few features (#30, #31) to superrecord that I needed in order to synthesise the record type from JSON at runtime, so I'd probably have to wait until those are ported to give it a try (unfortunately rather swamped at the moment so can't find the time to port those features myself right now).

  • large-records

    Library to support efficient compilation of large records (linear in the number of record fields)

  • Also: maybe you already knew GHC.Generics instances had superlinear compilation time, but betcha you didn't know even normal records themselves had superlinear compilation time. At least I didn't know until Edsko's super-recent investigation (resulting in yet-unreleased https://github.com/well-typed/large-records)

  • 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
  • post-rfc

    Blog post previews in need of peer review

  • rlua

    High level Lua bindings to Rust

  • Idiomatic bindings to the Lua reference implementation are tricky: https://github.com/amethyst/rlua/issues/172#issuecomment-616975763

  • cxx

    Safe interop between Rust and C++

  • Interestingly, things get easier in some sense when you try to interoperate with C++, as more Rust features have an analogue there. See cxx and autocxx.

  • hyper

    An HTTP library for Rust (by hyperium)

  • Initial PR to expose a C API for hyper (for usage in a curl backend): https://github.com/hyperium/hyper/pull/2278

  • amazonka

    A comprehensive Amazon Web Services SDK for Haskell.

  • amazonka is a bit of a minefield despite being listed as the only AWS library by SOTU

  • SaaSHub

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

    SaaSHub logo
  • regex-tdfa

    Pure Haskell Tagged DFA Backend for "Text.Regex" (regex-base) (by haskell-hvr)

  • regex-tdfa, a very popular library, is buggy (e.g. here) despite claiming that "This regex-tdfa package implements, correctly, POSIX extended regular expressions [and your OS likely doesn't]"; its bugs very likely won't be fixed despite the fact that the library is still maintained

  • bytestring

    An efficient compact, immutable byte string type (both strict and lazy) suitable for binary or 8-bit character data.

  • If you need fast Double rendering you can get a significant improvement by using double-conversion or the Ryu branch of bytestring. Again, you'd expect that "how to show a floating-point number quickly" would be a solved problem, but it's not.

  • text-icu

    This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text.

  • text-icu occasionally breaks horribly and nondeterministically (1, 2) despite being praised by SOTU

  • rust-bindgen

    Automatically generates Rust FFI bindings to C (and some C++) libraries.

  • Yeah, it is certainly advisable to e.g. avoid setjmp/longjmp as in the Lua example above (this was the main reason for the release of Rust 1.24.1). But even for "Rust-aware" C, one has to write a lot of boilerplate. For example, with bindgen, the go-to tool to create bindings to C headers, one has to write (unsafe) wrapper functions which

  • jrec

    Literally the best anonymous records

  • Try jrec. I threw away the sorting and it typechecks much faster now.

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