The krpc package

[Tags:benchmark, bsd3, library, test]

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

[Skip to Readme]


Change log ChangeLog
Dependencies base (==4.*), 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 BSD3
Copyright (c) 2013-2014 Sam Truzjan
Author Sam Truzjan
Maintainer Sam Truzjan <>
Category Network
Home page
Bug tracker
Source repository head: git clone git:// -b master
this: git clone git:// -b master(tag v0.6.1.0)
Uploaded Wed Feb 19 01:25:08 UTC 2014 by SamTruzjan
Distributions NixOS:
Downloads 2283 total (3 in the last 30 days)
0 []
Status Docs available [build log]
Successful builds reported [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for krpc

Readme for krpc-


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.