krpc: KRPC protocol implementation

[ bsd3, library, network ] [ Propose Tags ]

The KRPC protocol is a simple RPC mechanism consisting of bencoded dictionaries sent over UDP.

[Skip to Readme]


Maintainer's Corner

For package maintainers and hackage trustees


Versions [RSS],,,,,,,,,,
Change log ChangeLog
Dependencies base (>=4 && <5), bencoding (>=0.4.3), bytestring (>=0.10), containers, data-default-class, ghc-prim, lifted-base (>=0.1.1), monad-control (>=0.3), monad-logger (>=0.3), mtl, network (>=2.3), text (>=0.11), transformers (>=0.2) [details]
License BSD-3-Clause
Copyright (c) 2013-2014 Sam Truzjan
Author Sam Truzjan
Maintainer Sam Truzjan <>
Category Network
Home page
Bug tracker
Source repo head: git clone git:// -b master
this: git clone git:// -b master(tag v0.6.0.0)
Uploaded by SamTruzjan at 2014-01-08T03:14:29Z
Distributions NixOS:
Downloads 7265 total (28 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for krpc-

[back to package description]


KRPC is simple remote procedure call mechanism used by bittorrent DHT but might be used anywhere else.


KRPC basically consisting of bencoded dictionaries sent over UDP. This implementation provides extra safiety by separation of procedure signature and implementation and baking procedure type in host language, thus it's hard to shoot yourself in the foot accidently.

See bittorrent DHT specification for detailed protocol description.




  • Remote.KRPC — simple interface which reduce all RPC related stuff to a few lines. Should be used in the first place.

  • Remote.KRPC.Protocol — raw protocol implementation.

  • Remote.KRPC.Scheme — message validation.


For usage see examples in examples directory. For documentation see haddock generated documentation.

Build Status Build Status


Feel free to report bugs and suggestions via github issue tracker or the mail.