SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Haskell Haskell Projects
-
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.
-
simplex-chat
SimpleX - the first messaging network operating without user identifiers of any kind - 100% private by design! iOS, Android and desktop apps 📱!
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
ihp
🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness
-
haskell-language-server
Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
-
servant
Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more!
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
These projects use Caddy as my local development server, Dart Sass for converting my Sass files to CSS, elm, elm-format, elm-optimize-level-2, elm-review, elm-test (only in Calculator), ShellCheck to find bugs in my shell scripts, and Terser to mangle and compress JavaScript code.
My main authoring tool is then Emacs Markdown Mode (https://jblevins.org/projects/markdown-mode/). For data entry, it comes with some bells and whistles similar to org-mode, like C-c C-l for inserting links etc.
I seldom export my notes for external usage, but if it is the case, I use lowdown (https://kristaps.bsd.lv/lowdown/) which also comes with some nice output targets (among the more unusual are Groff and Terminal). Of cource pandoc (https://pandoc.org/) does a very good job here, too.
Project mention: The API database architecture – Stop writing HTTP-GET endpoints | news.ycombinator.com | 2024-05-10Yes, sorry about that. We're looking at it on https://github.com/PostgREST/postgrest/issues/3503.
3. Hadolint: https://github.com/hadolint/hadolint Hadolint is a Dockerfile linter that helps you build best practice Docker images, reducing vulnerabilities in your container configurations.
Project mention: Learning Elm by porting a medium-sized web front end from React (2019) | news.ycombinator.com | 2024-02-29
Short version: no type classes (yet)
Longer version:
Building upon what Quekid5 mentioned, Unison abilities are an implementation of what is referred to as algebraic effects in programming language literature. They represent capabilities like IO, state, exceptions, etc. They aren't really a replacement for type classes, though in some cases you can shoehorn abilities in where you might otherwise use a type class.
For someone coming from a Haskell background, I think that abilities are closer to a replacement for monad transformers. But in my opinion they are much more ergonomic.
Discusson of type classes comes up a lot. Here is a long-standing GitHub issue: https://github.com/unisonweb/unison/issues/502
For what it's worth, I've written Unison quite a lot over the past few years and while I've missed type classes at times, I think that reading unfamiliar code is easier without them. There's no implicit magic; you can see exactly what is being passed into a function. So far I've been happy with a bit more verbosity for the sake of readability.
Project mention: What are your favorite End-to-End encrypted tools for online privacy? | /r/degoogle | 2023-12-08For messaging I'm currently on Olvid (E2E with physical key exchange) but since it still use their servers, I'm currently testing SimpleX where I can host my own servers.
The official guide and the archwiki do say that it's okay to just install it via pacman, but I've also found some issues on the official repo that strongly suggest against installing via pacman and to use stack instead, as sometimes pacman breaks dependencies.
For historical interest (though to compare you really need to work with them over a period of time), here's a thousand line [Makefile](https://github.com/simonmichael/hledger/blob/2d35b1051/Makef...) that was converted to a [Justfile](https://github.com/simonmichael/hledger/blob/43c93eb37/Justf...). And here's the kind of template I used for multicommand shell scripts when trying those ([ft](https://github.com/simonmichael/hledger/blob/43c93eb37/bin/f...), [tt](https://github.com/simonmichael/hledger/blob/43c93eb37/bin/t...)).
Or just go full on functional. There are several JVM based Haskell languages, e.g. Eta and Frege.
The advent of language server protocol made possible the creation of HLS (Haskell Language Server), and there are plugins for many editors, such as vscode-haskell, that allow you to have auto-complete, auto-import, and automatic function signatures—also available to your editor of choice. The whole feedback loop of editing, compiling, and running is greatly improved.
> do you really have to understand language extensions?
You do when your code doesn't compile and you're trying to figure out what the error message means, or when the library you want to use makes heavy use of it for even basic functionality.
> These days one just enables GHC2021
My experience was pre-GHC2021. I basically had to enable at a minimum 5-6 language extensions in every single file.
> Mostly they're just about removing unnecessary restrictions from the older standard.
Yeah, those ones are usually fine. I have zero objection to things like FlexibleInstances or DeriveFoldable.
> Could you give an example?
I believe I was trying to implement Central Authentication Service using Servant. However, that required returning a custom HTTP status code. There has been an open Github issue for this since 2017, but it seems to require basically rewriting the entire framework: https://github.com/haskell-servant/servant/issues/732
Looking back at it now Servant does have "ServerError", but that basically requires giving up all the advantages Servant claims to have and I believe it was not a viable option at the time. Looking at the timeline I was probably also on Servant 0.15, and there seems to have been a rewrite since then.
I vaguely recall running into a similar issue trying to interact with a database, but I can't remember the details of that.
Project mention: Show HN: Text Lambda, a versatile notebook for your personal data | news.ycombinator.com | 2024-02-21Thank you!
"stash", the initial MVP version, is written in Haskell. I chose Haskell mostly because of https://github.com/jtdaugherty/brick, which is a wonderful TUI library. I also tend to prefer functional programming languages when I have the choice.
However, Text 's backend and website are currently implemented in Clojure. The app is in C + Flutter (Dart).
Project mention: Would anyone be interested in hoot: A cabal wrapper for haskell based on Cargo? | /r/haskell | 2023-07-09Also, there's already a cabal RFC to support toml: https://github.com/haskell/cabal/issues/7548
Project mention: Clash: A Functional Hardware Description Language | news.ycombinator.com | 2023-12-27
Haskell Haskell related posts
-
Show HN: GNU Make as a Task Runner
-
Static Chess
-
How I switched from Stack to Cabal
-
IHP – The Haskell Framework for Non-Haskellers
-
How to Send an SMS in Haskell (2017)
-
LaTeX makes me so angry at word
-
Dockerfile Linter
-
A note from our sponsor - SaaSHub
www.saashub.com | 15 May 2024
Index
What are some of the best open-source Haskell projects in Haskell? This list will help you:
Project | Stars | |
---|---|---|
1 | ShellCheck | 35,098 |
2 | pandoc | 32,516 |
3 | postgrest | 22,376 |
4 | hadolint | 9,772 |
5 | purescript | 8,469 |
6 | unison | 5,577 |
7 | simplex-chat | 5,328 |
8 | ihp | 4,233 |
9 | xmonad | 3,245 |
10 | koka | 3,083 |
11 | hledger | 2,773 |
12 | eta | 2,594 |
13 | wire-server | 2,590 |
14 | haskell-language-server | 2,582 |
15 | wiwinwlh | 2,528 |
16 | patat | 2,336 |
17 | miso | 2,144 |
18 | servant | 1,777 |
19 | aur | 1,645 |
20 | brick | 1,567 |
21 | Cabal | 1,566 |
22 | grenade | 1,439 |
23 | clash-ghc | 1,376 |
Sponsored