evdev-streamly: Bridge for working with evdev and streamly

[ bsd3, library, streamly, system ] [ Propose Tags ]

Functions for working with streams of input events. Often much more pleasant than working in a more imperative style.

[Skip to Readme]


[Index] [Quick Jump]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],
Change log CHANGELOG.md
Dependencies base (>=4.11 && <5), bytestring (>=0.10 && <0.12), containers (>=0.6.2 && <0.7), evdev (>=2.1 && <2.3), extra (>=1.6.18 && <1.8), filepath-bytestring (>=1.4.2 && <1.5), rawfilepath (>=1.0.0 && <1.1), streamly (>=0.8 && <0.9), streamly-fsnotify (>=1.1.1 && <1.2), unix (>=2.7.2 && <2.8) [details]
License BSD-3-Clause
Author George Thomas
Maintainer George Thomas
Revised Revision 1 made by GeorgeThomas at 2023-06-12T20:00:36Z
Category Streamly, System
Home page https://github.com/georgefst/evdev
Source repo head: git clone git://github.com/georgefst/evdev.git
Uploaded by GeorgeThomas at 2022-01-06T17:58:34Z
Downloads 315 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-08-26 [all 3 reports]

Readme for evdev-streamly-

[back to package description]

Evdev + Streamly

This library provides provides a high level Streamly-based interface to evdev, for working with streams of input events.

It doesn't re-export anything, so you will almost certainly also need to depend directly on both of those packages.

Many of the functions in this library make use of concurrency, so you will probably want --ghc-options=-threaded for any executables you build, in order to enable the threaded runtime, and get the expected behaviour. This should be on by default in a near-future version of GHC.

Why streamly?

Compared to other Haskell streaming libraries, I've found streamly to have a remarkably easy-to-use API, and the best, simplest support for concurrency. For example, merging concurrent streams of events, from different devices, is trivial.

If you wish to use this library alongside conduit, pipes etc. then see the Interoperation section of Streamly's tutorial.