Open Source Haskell Software

Haskell Software

Haskell Clear Filters

Browse free open source Haskell Software and projects below. Use the toggles on the left to filter open source Haskell Software by OS, license, language, programming language, and project status.

  • Build Agents and Models on One Platform Icon
    Build Agents and Models on One Platform

    Everything you need to build production-ready agents and models. Access 200+ Google and third-party AI models and tools.

    Gemini Enterprise Agent Platform is Google Cloud's comprehensive platform for developers to build, scale, govern, and optimize agents and models. Choose from Google's most advanced models and third-party models like Anthropic's Claude Model Family.
    Start Free
  • Paessler: Easy to Use With Enterprise Power. Free Trial Icon
    Paessler: Easy to Use With Enterprise Power. Free Trial

    A low-code dashboard makes monitoring intuitive for any admin, while scripting and custom sensors give experts full control.

    You shouldn't have to choose between a monitoring tool that's easy to use and one that's powerful enough for a complex environment. PRTG's low-code interface lets any admin build dashboards, set alerts and monitor devices without scripting, while custom sensors and full API access are there when your team needs deeper control. One platform, no compromise. Download a free 30-day trial now.
    Get Free Download
  • 1
    Pandoc

    Pandoc

    The universal markup converter

    Pandoc is a universal document converter able to convert files from a multitude of markup formats into another. With Pandoc, you have a swiss-army knife of a converter, able to convert practically any markup format into any other. Pandoc contains a Haskell library for conversions as well as a command-line tool that uses this library. It can convert to and from just about anything-- lightweight markup formats, HTML formats, documentation formats, ebooks, TeX formats, word processor formats and so much more. It understands several useful markdown syntax extensions, such as document metadata, footnotes, tables, and more. If you want strict markdown compatibility however, these extensions can be turned off. Pandoc is no doubt powerful and customizable, but it is important to note that its intermediate representation of a document is less expressive than many of the formats, so it may not produce perfect conversions every time.
    Downloads: 156 This Week
    Last Update:
    See Project
  • 2
    Extism

    Extism

    The Universal Plug-in System. Extend anything with WebAssembly

    Extism is a plug-in system for everyone. We've carefully designed it to be flexible, fitting into codebases of all shapes and sizes, but opinionated enough so that things Just Work™ the way they should. Extism's goal is to make all software programmable. You can use Extism in your codebase, regardless of the programming language. We support several environments through our official Host SDKs, and are adding more language support all the time. A plug-in system is software that enables your users or customers to add some logic into certain points in your application. You decide where this logic runs, and your users decide what the plug-in does. Many engineering teams face an ever-growing list of feature requests, often exceeding their bandwidth several times over. How can you ever keep up? Making your product extensible by its end-users is a great way to move some of those features outside the core, and empower customers to make your software more useful for them.
    Downloads: 78 This Week
    Last Update:
    See Project
  • 3
    Perspec

    Perspec

    Scriptable desktop app to correct the perspective of images

    App and workflow to perspectively correct images. For example whiteboards, document scans, or facades. Perspec currently only works on macOS and Linux. Any help to make it work on Microsoft (Ticket) would be greatly appreciated! Rescale image on viewport change. Handle JPEG rotation. Draw lines between corners to simplify guessing of clipped corners. Bundle Imagemagick. Better error if the wrong file format is dropped (images/error-message.jpg). Center Perspec window on screen. Drag'n'Drop for corner markers. "Submit" button. "Convert to Grayscale" button. Add support for custom output size (e.g. A4). Manual rotation buttons. Zoom view for corners. Label corner markers.
    Downloads: 49 This Week
    Last Update:
    See Project
  • 4
    FreeArc combines best 7-zip and RAR features: auto-selected LZMA/PPMD/Multimedia compression, 1gb dictionary, exe/dict/delta data filters, updatable solid archives, SFXes, recovery record, AES+Twofish+Serpent encryption, Linux support and much more...
    Leader badge
    Downloads: 400 This Week
    Last Update:
    See Project
  • Veeam Data Platform v13.1 - Get Your Free Trial Icon
    Veeam Data Platform v13.1 - Get Your Free Trial

    Secure by design, portable by default. Recover clean, fast, anywhere. Start a free trial.

    Try Veeam Data Platform today. Experience the unified platform that's secure by design, portable by default, and proven to recover clean, fast, and anywhere.
    Try it Free
  • 5
    PostgREST

    PostgREST

    REST API for any Postgres database

    PostgREST is a standalone web server that turns your PostgreSQL database directly into a RESTful API. The structural constraints and permissions in the database determine the API endpoints and operations. Using PostgREST is an alternative to manual CRUD programming. Custom API servers suffer problems. Writing business logic often duplicates, ignores or hobbles database structure. Object-relational mapping is a leaky abstraction leading to slow imperative code. The PostgREST philosophy establishes a single declarative source of truth: the data itself. It’s easier to ask PostgreSQL to join data for you and let its query planner figure out the details than to loop through rows yourself. It’s easier to assign permissions to db objects than to add guards in controllers. (This is especially true for cascading permissions in data dependencies.) It’s easier to set constraints than to litter code with sanity checks.
    Downloads: 46 This Week
    Last Update:
    See Project
  • 6
    pandoc-crossref filter

    pandoc-crossref filter

    Pandoc filter for cross-references

    pandoc-crossref is a pandoc filter for numbering figures, equations, tables and cross-references to them. The input file (like demo.md) can be converted into HTML, LaTeX, PDF, Markdown or other formats. Optionally, you can use cleveref for LaTeX/PDF output, e.g. cleveref PDF, cleveref LaTeX, and listings package, e.g. listings PDF, listings LaTeX. This package tries to use LaTeX labels and references if output type is LaTeX. It also tries to supplement rudimentary LaTeX configuration that should mimic metadata configuration by setting header-includes variable. The easiest option to get pandoc-crossref on Windows, macOS, or Linux, is to download pre-built executables available at the releases page. Bear in mind that those are a product of automated build scripts, and as such, provided as-is, with zero guarantees. Feel free to open issues if those don't work though, I'll try to do what I can.
    Downloads: 42 This Week
    Last Update:
    See Project
  • 7
    Wasp

    Wasp

    A programming language that understands what a web app is

    Wasp (Web Application Specification Language) is a declarative DSL (domain-specific language) for developing, building and deploying modern full-stack web apps with less code. Concepts such as app, page, user, login, frontend, production, etc. are baked into the language, bringing a new level of expressiveness and allowing you to get more work done with fewer lines of code. While describing high-level features with Wasp, you still write the rest of your logic in your favorite technologies (currently React, NodeJS, Prisma). Wasp is in alpha and is therefore likely to change a lot, have bugs and miss important features. Due to its expressiveness, you can create and deploy a production-ready web app from scratch with very few lines of concise, consistent, declarative code. When you need more control than Wasp offers, you can write code in existing technologies such as js/html/css/... and combine it with Wasp code!
    Downloads: 30 This Week
    Last Update:
    See Project
  • 8
    SimpleX

    SimpleX

    The first messaging platform operating without user identifiers

    Other apps have user IDs: Signal, Matrix, Session, Briar, Jami, Cwtch, etc. SimpleX does not, not even random numbers. This radically improves your privacy. The video shows how you connect to your friend via their 1-time QR-code, in person or via a video link. You can also connect by sharing an invitation link. Temporary anonymous pairwise identifiers SimpleX uses temporary anonymous pairwise addresses and credentials for each user contact or group member. It allows to deliver messages without user profile identifiers, providing better meta-data privacy than alternatives. Many communication platforms are vulnerable to MITM attacks by servers or network providers. To prevent it SimpleX apps pass one-time keys out-of-band when you share an address as a link or a QR code. Double-ratchet protocol. OTR messaging with perfect forward secrecy and break-in recovery. NaCL cryptobox in each queue to prevent traffic correlation between message queues if TLS is compromised.
    Downloads: 24 This Week
    Last Update:
    See Project
  • 9
    Cabal

    Cabal

    Upstream development repository for Cabal and cabal-install

    Cabal is a system for building and packaging Haskell libraries and programs. It defines a common interface for package authors and distributors to easily build their applications in a portable way. Cabal is part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and programs. The term cabal can refer to either: cabal-the-spec (.cabal files), cabal-the-library (code that understands .cabal files), or cabal-the-tool (the cabal-install package which provides the cabal executable); usually folks are referring to cabal-the-tool when they say cabal. To install the cabal executable you can use ghcup (if you're using Linux), the Haskell Platform, install the cabal-install package from your distributions package manager (if using Linux or Mac), or download the source or prebuilt binary from the Download page.
    Downloads: 20 This Week
    Last Update:
    See Project
  • 99.99% Uptime for MySQL and PostgreSQL Databases Icon
    99.99% Uptime for MySQL and PostgreSQL Databases

    Sub-second maintenance. 2x read/write performance. Built-in vector search for AI apps.

    Cloud SQL Enterprise Plus delivers near-zero downtime with 35 days of point-in-time recovery. Supports MySQL, PostgreSQL, and SQL Server.
    Start Free
  • 10
    Ormolu

    Ormolu

    A formatter for Haskell source code

    Ormolu is a formatter for Haskell source code. Using GHC's own parser to avoid parsing problems caused by haskell-src-exts. Let some whitespace be programmable. The layout of the input influences the layout choices in the output. This means that the choices between single-line/multi-line layouts in certain situations are made by the user, not by an algorithm. This makes the implementation simpler and leaves some control to the user while still guaranteeing that the formatted code is stylistically consistent. Writing code in such a way so it's easy to modify and maintain. Implementing one “true” formatting style which admits no configuration. The formatting style aims to result in minimal diffs. Choose a style compatible with modern dialects of Haskell. As new Haskell extensions enter broad use, we may change the style to accommodate them. Idempotence: formatting already formatted code doesn't change it.
    Downloads: 14 This Week
    Last Update:
    See Project
  • 11
    Clash

    Clash

    Haskell to VHDL/Verilog/SystemVerilog compiler

    Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. It provides a familiar structural design approach to both combinational and synchronous sequential circuits. The Clash compiler transforms these high-level descriptions to low-level synthesizable VHDL, Verilog, or SystemVerilog. Clash is an open-source project, licensed under the permissive BSD2 license, and actively maintained by QBayLogic. The Clash project is a Haskell Foundation affiliated project. Clash is built on Haskell which provides an excellent foundation for well-typed code. Together with Clash's standard library it is easy to build scalable and reusable hardware designs. Load your designs in an interpreter and easily test all your component without needing to setup a test bench. Although Clash offers many features, you sometimes need to directly access VHDL, Verilog, or SystemVerilog directly.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 12
    The Futhark Programming Language

    The Futhark Programming Language

    A data-parallel functional programming language

    Futhark is a small programming language designed to be compiled into efficient parallel code. It is a statically typed, data-parallel, and purely functional array language in the ML family, and comes with a heavily optimizing ahead-of-time compiler that presently generates either GPU code via CUDA and OpenCL, or multi-threaded CPU code. Futhark is not designed for graphics programming, but can instead use the compute power of the GPU to accelerate data-parallel array computations. The language supports regular nested data-parallelism, as well as a form of imperative-style in-place modification of arrays, while still preserving the purity of the language via the use of a uniqueness type system. While the Futhark language and compiler is an ongoing research project, it is quite usable for real programming and can compile nontrivial programs which then run on real machines at high speed.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 13
    miso

    miso

    A tasty Haskell front-end framework

    Miso is a small, production-ready, "isomorphic" Haskell front-end framework for quickly building highly interactive single-page web applications. It features a virtual-dom, recursive diffing / patching algorithm, attribute and property normalization, event delegation, event batching, SVG, Server-sent events, Websockets, type-safe servant-style routing and an extensible Subscription-based subsystem. Inspired by Elm, Redux and Bobril. Miso is pure by default, but side effects (like XHR) can be introduced into the system via the Effect data type. Miso makes heavy use of the GHCJS FFI and therefore has minimal dependencies. Miso can be considered a shallow embedded domain-specific language for modern web programming.
    Downloads: 12 This Week
    Last Update:
    See Project
  • 14
    Summoner

    Summoner

    Tool for scaffolding batteries-included production-level Haskell

    Summoner is a tool for scaffolding fully configured batteries-included production-level Haskell projects. Do you want to create a library that is to be uploaded to Hackage/Stackage, that builds with both Cabal and Stack and supports the latest three major GHC versions? Or are you building a production application that uses a custom prelude and has CI with GitHub Actions or Travis Linux and AppVeyors Windows checks? Maybe do you want to play with your idea in a single module without introducing the whole complexity of the Haskell projects. Summoner can help you do all that with minimal effort from you - it can even upload the project to GitHub if you wish! By the way, Summoner operates as either CLI or TUI application, so you can choose what you are more comfortable with and install only the required one.
    Downloads: 11 This Week
    Last Update:
    See Project
  • 15
    tetris

    tetris

    A terminal interface for Tetris

    A terminal interface for Tetris. Installation on MacOS and Linux is outlined below. Windows support is questionable, but you can try to install from source. The default game is run by simply executing the tetris command. If the unicode characters look a bit wonky in your terminal, you can also run. People seem to have varying levels of success with the linux binary. Please note that it is compiled dynamically and hence should not be expected to work on most distros. This code is built on top of brick which makes building terminal user interfaces very accessible.
    Downloads: 10 This Week
    Last Update:
    See Project
  • 16
    erd

    erd

    Translates a plain text description of a relational database schema

    erd is a Haskell-based command-line tool that transforms a plain-text description of a relational database schema into a graphical entity-relationship diagram using common ER conventions. This utility takes a plain text description of entities, their attributes and the relationships between entities and produces a visual diagram modeling the description. The visualization is produced by using Dot with GraphViz. There are limited options for specifying color and font information. Also, erd can output graphs in a variety of formats, including but not limited to: pdf, svg, eps, png, jpg, plain text and dot. In case one wishes to have a statically linked erd as a result, this is possible to have by executing build-static_by-nix.sh: which requires the nix package manager to be installed on the building machine. NixOS itself is not a requirement.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 17
    hindent

    hindent

    Haskell pretty printer

    Haskell pretty printer. hindent is used in a pipeline style. The default indentation size is 2 spaces. Create a hindent.yaml file in your project directory or in your ~/ home directory. By default, hindent preserves the newline or lack of newline in your input. With force-trailing-newline, it will make sure there is always a trailing newline. hindent can be forced to insert a newline before specific operators and tokens with line-breaks. This is especially useful when utilizing libraries like servant which use long-type aliases. Using extensions, hindent can be made aware of valid syntactic compiler extensions that would normally be considered invalid syntax. The 'formatprg' option lets you use an external program (like hindent) to format your text. Note that unlike in emacs you have to take care of selecting a sensible buffer region as input to hindent yourself. If that is too much trouble you can try vim-textobj-haskell which provides a text object for top-level bindings.
    Downloads: 8 This Week
    Last Update:
    See Project
  • 18
    Beam

    Beam

    A type-safe, non-TH Haskell SQL library and ORM

    Beam is a Haskell interface to relational databases. Beam uses the Haskell type system to verify that queries are type-safe before sending them to the database server. Queries are written in a straightforward, natural monadic syntax. Combinators are provided for all standard SQL92 features, and a significant subset of SQL99, SQL2003, and SQL2008 features. Beam is standards-compliant but not naive. We recognize that different database backends provide different guarantees, syntaxes, and advantages. To reflect this, Beam maintains a modular design. While the core package provides standard functionality, Beam is split up into a variety of backends which provide a means to interface Beam's data query and update DSLs with particular RDBMS backends. Backends can be written and maintained independently of this repository. For example, the beam-MySQL and beam-firebird backends are packaged independently.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 19
    LiquidHaskell

    LiquidHaskell

    Liquid Types For Haskell

    This is the development site of the LiquidHaskell formal verification tool. If you're a LiquidHaskell user (or just curious), you probably want to go to the documentation website instead. LiquidHaskell (LH) refines Haskell's types with logical predicates that let you enforce important properties at compile time. LH warns you that head is not total as it is missing the case for [] and checks that it is total on NonEmpty lists. The input contract propagates to uses of head which are verified by ensuring the arguments are NonEmpty. LH lets you avoid off-by-one errors that can lead to crashes or buffer overflows. Dependent contracts let you specify, e.g. that dotProduct requires equal-sized vectors. LH checks that functions terminate and so warns about the infinite recursion due to the missing case in fib.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 20
    ShellCheck

    ShellCheck

    A static analysis tool for shell scripts

    ShellCheck is a GPLv3 tool that provides warnings and possible suggestions for bash/sh shell scripts. ShellCheck finds bugs in your shell scripts. You can cabal, apt, dnf, pkg or brew install it locally right now. ShellCheck highlights and clarifies typical beginner's syntax mistakes and issues that cause a shell to give a cryptic error message. It shows typical intermediate level semantic problems that cause a shell to behave in a abnormally and counter-intuitively. It can also discover ssubtle caveats, corner cases and pitfalls that may cause an user's working script to fail under probable future circumstances. ShellCheck.net is always synchronized to the latest git version, and is the simplest way to give ShellCheck a go.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 21
    Reflex

    Reflex

    Interactive programs without callbacks or side-effects

    Reflex apps automatically react to changing data. This keeps every interaction current, accurately representing the relationship between your data and the real world. Reflex components are modular and reusable. If your requirements change, your app can quickly and easily be reworked. The modularity of Reflex lets you iterate quickly, without wasting code. Reflex has been built to seamlessly support interfaces on desktop, mobile, web, and other platforms, all in Haskell. Regardless of your platform needs, Reflex lets you take your team and your code with you. Reflex is the key to writing self-updating user interfaces. Develop efficiently no matter how many times you pivot. One team, one code base, every platform. You don’t have to choose between building quickly or sustainably anymore. Reflex-FRP allows you to write production quality code from the get-go, with less technical debt.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 22
    The Aura Package Manager

    The Aura Package Manager

    A secure, multilingual package manager for Arch Linux

    Aura, a secure, multilingual package manager for Arch Linux. Aura's original purpose is as an AUR helper, in that it automates the process of installing packages from the Arch User Repositories. It is, however, capable of much more. Aura is a package manager for Arch Linux. Its original purpose is as an AUR helper, in that it automates the process of installing packages from the Arch User Repositories. It is, however, capable of much more. Aura doesn't just mimic pacman; it is pacman. All pacman operations and their sub-options are allowed. Some even hold special meaning in Aura as well. -S yields pacman packages and only pacman packages. This agrees with the above. In Aura, the -A operation is introduced for obtaining AUR packages. -A comes with sub-options you're used to (-u, -s, -i, etc.). PKGBUILDs from the AUR can contain anything. It's a user's responsibility to verify the contents of a PKGBUILD before building, but people can make mistakes and overlook details.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 23
    Cryptol

    Cryptol

    Cryptol: The Language of Cryptography

    Cryptol is a domain-specific language (DSL) for specifying and verifying cryptographic algorithms. Developed by Galois, Cryptol provides a high-level mathematical syntax for describing cryptographic primitives and enables formal verification of algorithm properties. It is used in academic, research, and defense sectors to validate correctness and security through symbolic execution and model checking, ensuring critical cryptographic code is free of design flaws.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 24
    Stack

    Stack

    The Haskell Tool Stack

    Stack is a cross-platform build tool for Haskell projects that simplifies dependency management, project setup, and reproducible builds. It provides curated package sets (Stackage), isolated project environments, and consistent tooling for compiling and testing Haskell applications. Stack streamlines workflows for developers by automating many parts of the Haskell toolchain, making it easier to get started and maintain complex codebases. It supports integration with GHC (Glasgow Haskell Compiler) and Hackage.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 25
    Algebraic graphs

    Algebraic graphs

    Algebraic graphs

    Alga is a library for algebraic construction and manipulation of graphs in Haskell. See this Haskell Symposium paper and the corresponding talk for the motivation behind the library, the underlying theory and implementation details. We can give semantics to the constructors in terms of the pair (V, E) of graph vertices and edges. Alga can handle graphs comprising millions of vertices and billions of edges in a matter of seconds, which is fast enough for many applications. We believe there is a lot of potential for improving the performance of the library, and this is one of our top priorities. If you come across a performance issue when using the library, please let us know.
    Downloads: 3 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • 3
  • 4
  • 5
  • Next