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.

  • Our Free Plans just got better! | Auth0 Icon
    Our Free Plans just got better! | Auth0

    With up to 25k MAUs and unlimited Okta connections, our Free Plan lets you focus on what you do best—building great apps.

    You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your security. Auth0 now, thank yourself later.
    Try free now
  • Gen AI apps are built with MongoDB Atlas Icon
    Gen AI apps are built with MongoDB Atlas

    Build gen AI apps with an all-in-one modern database: MongoDB Atlas

    MongoDB Atlas provides built-in vector search and a flexible document model so developers can build, scale, and run gen AI apps without stitching together multiple databases. From LLM integration to semantic search, Atlas simplifies your AI architecture—and it’s free to get started.
    Start Free
  • 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: 160 This Week
    Last Update:
    See Project
  • 2
    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: 355 This Week
    Last Update:
    See Project
  • 3
    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: 30 This Week
    Last Update:
    See Project
  • 4
    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: 11 This Week
    Last Update:
    See Project
  • Photo and Video Editing APIs and SDKs Icon
    Photo and Video Editing APIs and SDKs

    Trusted by 150 million+ creators and businesses globally

    Unlock Picsart's full editing suite by embedding our Editor SDK directly into your platform. Offer your users the power of a full design suite without leaving your site.
    Learn More
  • 5
    Corne keyboard
    crkbd is the firmware and PCB design for the Corne split mechanical keyboard (aka "Corne"), maintained by foostan and the community. It provides QMK/VIA/Vial firmware support, RGB underglow, multiple layouts, and flexible hardware customization.
    Downloads: 10 This Week
    Last Update:
    See Project
  • 6
    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: 4 This Week
    Last Update:
    See Project
  • 7
    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
  • 8
    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: 4 This Week
    Last Update:
    See Project
  • 9
    turtle

    turtle

    Shell programming, Haskell style

    Turtle is a reimplementation of the Unix command line environment in Haskell so that you can use Haskell as a scripting language or a shell. Think of turtle as coreutils embedded within the Haskell language. The turtle library focuses on being a "better Bash" by providing a typed and light-weight shell scripting experience embedded within the Haskell language. If you have a large shell script that is difficult to maintain, consider translating it to a "turtle script" (i.e. a Haskell script using the turtle library). Among typed languages, Haskell possesses a unique combination of features that greatly assist scripting.
    Downloads: 4 This Week
    Last Update:
    See Project
  • Deliver secure remote access with OpenVPN. Icon
    Deliver secure remote access with OpenVPN.

    Trusted by nearly 20,000 customers worldwide, and all major cloud providers.

    OpenVPN's products provide scalable, secure remote access — giving complete freedom to your employees to work outside the office while securely accessing SaaS, the internet, and company resources.
    Get started — no credit card required.
  • 10
    Hasura GraphQL Engine

    Hasura GraphQL Engine

    Blazing fast, instant realtime GraphQL APIs on your DB

    Hasura is an open-source product that accelerates API development by 10x by giving you GraphQL or REST APIs with built-in authorization on your data, instantly. Run Hasura, locally or in the cloud, and connect it to your new or existing databases to instantly get a production-grade GraphQL API. Developers and architects love Hasura because it takes no time to get started, doesn’t need them to be a GraphQL expert upfront, and saves their teams months of recurring effort in building, shipping, and maintaining their APIs. Hasura’s built-in RLS style authorization engine allows you to conveniently specify authorization rules at a model level, and safely expose the GraphQL API to developers inside or outside your organization. Hasura’s authz engine is enabling agile teams in fast-growing startups as well as powering mission-critical data access in highly regulated environments such as Fortune 500 healthcare, financial services and US federal agencies.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 11
    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: 3 This Week
    Last Update:
    See Project
  • 12
    Accelerate

    Accelerate

    Embedded language for high-performance array computations

    Data.Array.Accelerate defines an embedded language of array computations for high-performance computing in Haskell. Computations on multi-dimensional, regular arrays are expressed in the form of parameterized collective operations (such as maps, reductions, and permutations). These computations are online-compiled and executed on a range of architectures. Accelerate is a free, general-purpose, open-source library that simplifies the process of developing software that targets massively parallel architectures including multicore CPUs and GPUs. Embedded in the advanced functional programming language Haskell, Accelerate programs are declarative, statically-typed, pure, functional, and ready to exploit all of the performance of modern parallel hardware. The combination of a strong type system, high-level code, and interactive development environment, allows you to develop code quickly with the confidence that it is correct.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 13
    Brick

    Brick

    A declarative Unix terminal UI library written in Haskell

    Brick is a Haskell terminal user interface (TUI) programming toolkit that enables developers to build rich, responsive terminal applications via a declarative model: you define a pure function that renders the UI from application state and supply state transition logic to handle events. brick exposes a declarative API. Unlike most GUI toolkits which require you to write a long and tedious sequence of widget creations and layout setup, brick just requires you to describe your interface using a set of declarative layout combinators. Event-handling is done by pattern-matching on incoming events and updating your application state. Under the hood, this library builds upon vty, so some knowledge of Vty will be necessary to use this library. Brick depends on vty-crossplatform, so Brick should work anywhere Vty works (Unix and Windows). Brick releases prior to 2.0 only support Unix-based systems.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 14
    Echidna

    Echidna

    Ethereum smart contract fuzzer

    Echidna is a weird creature that eats bugs and is highly electrosensitive (with apologies to Jacob Stanley) More seriously, Echidna is a Haskell program designed for fuzzing/property-based testing of Ethereum smarts contracts. It uses sophisticated grammar-based fuzzing campaigns based on a contract ABI to falsify user-defined predicates or Solidity assertions. We designed Echidna with modularity in mind, so it can be easily extended to include new mutations or test specific contracts in specific cases. Optional corpus collection, mutation and coverage guidance to find deeper bugs. Powered by Slither to extract useful information before the fuzzing campaign. Source code integration to identify which lines are covered after the fuzzing campaign. Curses-based retro UI, text-only or JSON output.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 15
    Gifcurry

    Gifcurry

    The open-source, Haskell-built video editor for GIF makers

    The open-source, Haskell-built video editor for GIF makers. Gifcurry is the open-source video editor for GIF makers. It's built with Haskell and works on Linux, Mac, and most likely Windows. There is both a graphical and command line interface. Gifcurry edits your GIFs or videos and turns them into videos or GIFs. You can crop, trim, seek, add text, pick a font, alter the duration, change the size, set the FPS, tweak the color count, enable dithering, import subtitles, and save your creation as either a GIF or video. Before you download Gifcurry, make sure your machine has GTK+, GStreamer, FFmpeg, and ImageMagick. Linux users can download the AppImage or the prebuilt binaries. If you'd rather install it, you can do so via pacman (Arch) or snap. If you're really courageous, you can build it from source.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 16
    Haste

    Haste

    A GHC-based Haskell to JavaScript compiler

    A compiler to generate JavaScript code from Haskell. It even has a website and a mailing list. Seamless, type-safe single program framework for client-server communication. Support for modern web technologies such as WebSockets, WebStorage and Canvas. Simple JavaScript interoperability. Generates small, fast programs. Supports all GHC extensions except Template Haskell. Uses standard Haskell libraries. Cabal integration, simple, one-step build; no need for error prone Rube Goldberg machines of Vagrant, VirtualBox, GHC sources and other black magic. Concurrency and MVars with Haste.Concurrent. Unboxed arrays, ByteArrays, StableNames and other low level features. Low-level DOM base library. You have three options for getting Haste: installing from Hackage, from Github or from one of the pre-built binary packages.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 17
    Reanimate

    Reanimate

    Haskell library for building declarative animations based on SVG

    Reanimate is a Haskell-based animation library for programmatically creating high-quality vector animations. It provides declarative functionality for composing SVG-based animations and integrates with tools like LaTeX, FFmpeg, Inkscape, Blender, and more to deliver rich, animated content for educational and mathematical visualizations. Reanimate aims at being a batteries-included way of gluing together different technologies: SVG as a universal image format, LaTeX for typesetting, ffmpeg for video encoding, inkscape/imagemagick for rasterization, potrace for vectorization, blender/povray for 3D graphics, and Haskell for scripting. Reanimate is a library for programmatically generating animations with a twist towards mathematics / 2D vector drawings. A lot of inspiration was drawn from 3b1b's manim library.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 18
    Servant

    Servant

    Haskell DSL for describing, serving, querying, mocking web apps

    Servant provides a type-level domain-specific language (DSL) in Haskell for describing web APIs. From a single API specification, developers can derive server implementations, client libraries, documentation, and more—ensuring consistency and type safety across the stack. We have a tutorial that introduces the core features of servant. After this article, you should be able to write your first server web services, learning the rest from the haddocks' examples. The core documentation can be found here. Other blog posts, videos, and slides can be found on the website. The core documentation can be found here. Other blog posts, videos and slides can be found on the website.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 19
    niv

    niv

    Easy dependency management for Nix projects

    Niv is a tool designed for managing dependencies in Nix projects. It simplifies adding, updating, and removing package sources via a single nix/sources.json file, improving reproducibility and version control in Nix-based workflows. niv simplifies adding and updating dependencies in Nix projects. It uses a single file, nix/sources.json, where it stores the data necessary for fetching and updating the packages. Nix is a very powerful tool for building code and setting up environments. niv complements it by making it easy to describe and update remote dependencies (URLs, GitHub repos, etc). It is a simple, practical alternative to Nix flakes. The add command will infer information about the package being added, when possible. This works very well for GitHub repositories. Run this command to add jq to your project.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 20
    Aeson

    Aeson

    A fast Haskell JSON library

    aeson is a high-performance Haskell library for JSON parsing and encoding, optimized for speed and ease of use. It serves as a foundational tool in the Haskell ecosystem for handling JSON data efficiently. High-performance optimized for real-world workloads. Widely used and well-maintained community library. Compatible with popular frameworks and the Haskell web ecosystem. Easy-to-use API (e.g., FromJSON, ToJSON typeclasses). Fast JSON parsing and serialization.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 21
    BSC

    BSC

    Bluespec Compiler (BSC)

    BSC is the open-source compiler toolchain for Bluespec SystemVerilog, a high-level, rule-based hardware design language. It translates Bluespec descriptions into synthesizable Verilog, letting developers bring typed, modular abstractions into mainstream FPGA/ASIC flows. The compiler performs scheduling of atomic rules, elaborates parameterized modules, and enforces interface contracts, producing predictable RTL that integrates with existing EDA tools. A companion simulator enables fast functional execution and debugging before handing designs to traditional verification and synthesis stages. The ecosystem includes standard libraries, FIFOs, interfaces, and utilities that encourage reuse and clean separation of datapaths and control. By raising the abstraction for hardware architecture while preserving efficient output, BSC helps teams explore complex designs—such as RISC-V cores or accelerators—more productively.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 22
    Fay

    Fay

    A proper subset of Haskell that compiles to JavaScript

    Fay is a compiler for a proper subset of Haskell that type-checks using GHC and compiles to JavaScript. It supports pure functional programming, a Fay-specific monad, FFI, optional tail-call optimization, and integration with Cabal packages. GHC-compatible type checking, ensuring correctness. Lazy, pure functional semantics with a distinct Fay monad. Foreign Function Interface (FFI) to integrate native JS code. Compatible with standard Haskell packaging tools like Cabal.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 23
    Functional-Programming

    Functional-Programming

    Functional Programming concepts, examples and patterns

    This repository is a tutorial collection showcasing functional programming concepts across multiple languages (Haskell, OCaml, Scala, Scheme, Clojure, Python). It provides reusable code snippets, examples, and case studies to illustrate FP ideas in a comparative manner. The purpose of this tutorial is to illustrate functional programming concepts in many languages by providing reusable and useful snippets of code, examples, case studies and applications. The project’s web site was updated and improved with a table of contents on side-bar. In addition, the new layout makes reading easier to read and browse the content. Those pages in the theme are in the gh-pages branch which can easy be downloaded for offline usage.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 24
    GHC (Glasgow Haskell Compiler)

    GHC (Glasgow Haskell Compiler)

    Mirror of the Glasgow Haskell Compiler

    GHC (Glasgow Haskell Compiler) is the leading open-source compiler and interactive environment for the Haskell programming language, supporting the Haskell 2010 standard plus numerous language extensions. It compiles to native machine code (via LLVM or C), and includes the interactive GHCi REPL. For full information on building GHC, see the GHC Building Guide. Here follows a summary - if you get into trouble, the Building Guide has all the answers. For building library documentation, you'll need Haddock. To build the compiler documentation, you need Sphinx and Xelatex (only for PDF output).
    Downloads: 1 This Week
    Last Update:
    See Project
  • 25
    GHCid

    GHCid

    Very low feature GHCi based IDE

    ghcid is a minimalist development tool for Haskell that runs GHCi as a daemon, watches source files for changes, reloads automatically, and shows compile errors instantly—providing a tight edit-feedback loop. In general, to use ghcid, you first need to get ghci working well for you. In particular, craft a command line or .ghci file such that when you start ghci it has loaded all the files you care about (check :show modules). If you want to use --test check that whatever expression you want to use works in that ghci session. Getting ghci started properly is one of the hardest things of using ghcid, and while ghcid has a lot of defaults for common cases, it doesn't always work out of the box. Expressions that read from standard input are likely to hang, given that Ghcid already uses the standard input to interact with Ghci.
    Downloads: 1 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • 3
  • 4
  • 5
  • Next
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.