whatisgithub

What is hs-ed25519?

psibi/hs-ed25519 — explained in plain English

Analysis updated 2026-07-11 · repo last pushed 2019-02-09

CAudience · developerComplexity · 2/5DormantLicenseSetup · moderate

In one sentence

A Haskell library for Ed25519 digital signatures, lets your Haskell app sign and verify messages to prove authenticity, wrapping a battle-tested C implementation.

Mindmap

mindmap
  root((repo))
    What it does
      Sign messages
      Verify signatures
      Prove authenticity
    Tech stack
      Haskell
      C
      SUPERCOP ref10
    Use cases
      Secure API calls
      Verify software updates
      Sign transactions
    Audience
      Haskell developers
      Backend developers
    License
      MIT
      Open source
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Sign and verify API requests in a Haskell backend to confirm sender authenticity.

USE CASE 2

Verify software updates by checking Ed25519 signatures before applying them.

USE CASE 3

Sign transactions or messages in a Haskell-based blockchain or fintech project.

What is it built with?

HaskellCSUPERCOP ref10

How does it compare?

psibi/hs-ed25519alichraghi/linux-audio-headerscalmh/pre-git
LanguageCCC
Last pushed2019-02-092024-01-082016-08-12
MaintenanceDormantDormantDormant
Setup difficultymoderateeasyhard
Complexity2/52/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires C compilation since the library wraps a C implementation, so a working C toolchain is needed alongside GHC.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

Ed25519 is a popular digital signature scheme, a cryptographic tool that lets someone prove they created a message or file, and lets others verify that proof. Think of it like a wax seal on an envelope: it proves authenticity. This project lets developers who write code in Haskell, a programming language, easily add that signing and verification capability to their applications. Under the hood, the package wraps an existing, highly regarded C implementation called SUPERCOP ref10. Rather than rewriting the cryptography from scratch, the project provides a thin bridge so Haskell programs can call into that battle-tested C code. The design philosophy is intentionally minimal: no extra dependencies, small footprint, and thorough documentation so developers can either pull it in as a package or copy the code directly into their projects. The people who'd reach for this are Haskell developers building systems where message authenticity matters, for instance, securing API communications, verifying software updates, or signing transactions. If you're building a backend service in Haskell and need to confirm that a request genuinely came from a trusted source, this library gives you the cryptographic primitives to do that. The README doesn't dive into specific use cases, but ed25519 signatures are widely used in secure messaging, SSH keys, and blockchain projects. What stands out is the deliberate focus on being lightweight and self-contained. By binding to the ref10 implementation rather than reimplementing the algorithm, the project gets both speed and reliability, the underlying C code is a well-known reference implementation that's been scrutinized by the cryptography community. The tradeoff is that this approach requires C compilation, but for most deployment scenarios that's a non-issue. The project is MIT-licensed and openly maintained, with contribution guidelines and an issue tracker for anyone who wants to get involved.

Copy-paste prompts

Prompt 1
I have a Haskell backend service and need to verify that incoming API requests are genuinely from a trusted source. Show me how to use hs-ed25519 to sign a message on the sender side and verify it on the receiver side.
Prompt 2
I want to copy the hs-ed25519 source directly into my Haskell project instead of adding it as a dependency. Walk me through the steps to integrate it and call the signing and verification functions.
Prompt 3
Help me set up a basic Haskell program using hs-ed25519 that generates a key pair, signs a short message, and then verifies the signature, including the C compilation step.

Frequently asked questions

What is hs-ed25519?

A Haskell library for Ed25519 digital signatures, lets your Haskell app sign and verify messages to prove authenticity, wrapping a battle-tested C implementation.

What language is hs-ed25519 written in?

Mainly C. The stack also includes Haskell, C, SUPERCOP ref10.

Is hs-ed25519 actively maintained?

Dormant — no commits in 2+ years (last push 2019-02-09).

What license does hs-ed25519 use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is hs-ed25519 to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is hs-ed25519 for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.