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

Package maintainers

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.1.0)
Uploaded by SamTruzjan at 2014-02-19T01:25:08Z
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 7556 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]

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.