GitPedia

Haskell capnp

Cap'n Proto for Haskell

From zenhack·Updated February 19, 2026·View on GitHub·

A Haskell library for the [Cap'N Proto][1] Cerialization and RPC protocol. The project is written primarily in Haskell, distributed under the MIT License license, first published in 2016. Key topics include: capn-proto, capnp, capnproto, haskell, rpc.

hackage

A Haskell library for the Cap'N Proto Cerialization and RPC
protocol.

Note, this project's official home is on
codeberg
; if you're viewing
this elsewhere, this is a mirror. For trivial changes we'll still accept
patches here, but please file issues and submit more substantial changes
via codeberg.

Getting Started

There is a module Capnp.Tutorial which contains an introduction
to the library; users are strongly encouraged to read this first, as
the reference documentation can be bewildering without that context.

Status

Serialization support works, with some limitations:

  • We do not support defining custom default values for fields of pointer
    type; see (#28).
  • We currently do not correctly handle decoding lists of structs from
    non-composite lists (#27). This means that, contrary to the
    protocol evolution rules, it is not safe to change a field from
    type List(T) (where T is any non-struct type) to a list of a struct
    type.

Level 1 RPC support is implemented and usable, though it should be
considered alpha quality for now. Specific things to be aware of:

  • The implementation is not robust against resource exhaustion
    attacks; for now users are strongly discouraged from using it to do
    RPC with untrusted peers.

The API is considered unstable. It will likely see changes, for the
sake of polish, consistency, etc. as well as to improve performance and
accommodate more features as we add them.

Contributors

Showing top 6 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from zenhack/haskell-capnp via the GitHub API.Last fetched: 6/15/2026