https://github.com/wireapp/pulsar-hs
Pulsar libraries for Apache Pulsar [Wire fork]
https://github.com/wireapp/pulsar-hs
Last synced: 9 days ago
JSON representation
Pulsar libraries for Apache Pulsar [Wire fork]
- Host: GitHub
- URL: https://github.com/wireapp/pulsar-hs
- Owner: wireapp
- Created: 2025-10-22T14:45:46.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-11-24T10:26:02.000Z (8 months ago)
- Last Synced: 2026-07-16T11:35:48.538Z (9 days ago)
- Language: Haskell
- Homepage:
- Size: 420 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
pulsar-hs
=========
> [!WARNING]
> This fork exists to explore if this library is feasible to be used at Wire. We
> may or may not maintain it later. This fork is owned by the backend team at
> Wire (especially @supersven). Its state should change in the next few months.
Provides libraries to deal with [Apache Pulsar](https://pulsar.apache.org/en/):
* [`pulsar-admin`](pulsar-admin) to deal with the Admin REST API
* [`pulsar-client-hs`](pulsar-client-hs) to deal with the server
## Building with Nix Flakes
This project uses Nix flakes for reproducible builds and development environments.
### Build all packages
```bash
nix build
```
### Build specific packages
```bash
nix build .#pulsar-client-hs
nix build .#pulsar-admin
nix build .#pulsar-client-cpp
```
### Development shell
Enter a development environment with all necessary tools (GHC 9.8, cabal, haskell-language-server, etc.):
```bash
nix develop
```
Or use direnv for automatic environment loading:
```bash
direnv allow
```
## Usage
### Caveats
The `pulsar-client-hs` library only works with the threaded GHC RTS (GHC flag
`-threaded`.) Due to asynchronous callback calls (invoking the logger), using a
non-threaded RTS can lead to random crashes. See
https://gitlab.haskell.org/ghc/ghc/-/issues/26561 for details.