summaryrefslogtreecommitdiff
path: root/kad/kad.cabal
blob: be8ab212475629c1755d1fafb4dbaa6b79525192 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
name:                kad
version:             0.1.0.0
synopsis:            Kademlia implementation used by the dhtd process.
description:

  Kademlia is a Distributed Hash Table Algorithm, useful for routing in a peer
  to peer network. In particular, it is the algorithm used by the Bittorrent and
  ToxChat networks.

  The original intention of this library, was to provide a commons for all
  implementers and implementations of kademlia.  Mostly however, it's present
  purpose is as the backbone to the routing done by the dhtd unix daemon, which
  supports both of the afore named networks. One way to bootstrap a peer to peer
  network is simply to use an existing one. This can be done by interfacing with
  dhtd, which is available via the dht-client package.  If however, you wish to
  form an independent routing network based on the kademlia algorithm, or an
  alternative to dhtd, then this library may be of interest to you.

  That said, this library is not officially released, and all the usual caveats
  apply until the 1.0 version is announced.

license:             BSD3
license-file:        LICENSE
author:              Joe Crayne, James Crayne
maintainer:          James Crayne <jim.crayne@gmail.com>
-- copyright:
-- category:
build-type:          Simple
extra-source-files:  CHANGELOG.md
cabal-version:       >=1.10

library
  cpp-options: -DTHREAD_DEBUG
  exposed-modules:
          Network.Kademlia
        , Network.Kademlia.Bootstrap
        , Network.Kademlia.Routing
        , Network.Kademlia.CommonAPI
        , Network.Kademlia.Persistence
        , Network.Kademlia.Search
  other-modules: DebugTag
  other-extensions:
          CPP
        , ConstraintKinds
        , DeriveFunctor
        , DeriveTraversable
        , FlexibleContexts
        , GADTs
        , KindSignatures
        , LambdaCase
        , NamedFieldPuns
        , PartialTypeSignatures
        , PatternSynonyms
        , RankNTypes
        , ScopedTypeVariables
        , RecordWildCards
        , BangPatterns
        , ViewPatterns
        , TypeOperators
        , DeriveGeneric
        , TupleSections
        , StandaloneDeriving
        , MultiParamTypeClasses
        , FlexibleInstances
        , ExistentialQuantification
  build-depends:
          base
        , tox-crypto
        , entropy
        , lifted-base
        , lifted-concurrent
        , aeson
        , vector
        , containers
        , unordered-containers
        , dput-hslogger
        , time
        , stm
        , pretty
        , bytestring
        , hashable
        , contravariant
        , reflection
        , psq-wrap
        , minmax-psq
        , network-addr
        , cereal
        , tasks
        , server
  hs-source-dirs:      src
  default-language:    Haskell2010

executable testSearch
  hs-source-dirs:      tests
  build-depends: kad, base, stm, containers, minmax-psq, server
  main-is: searchCancel.hs
  ghc-options: -rtsopts -threaded


executable testReset
  hs-source-dirs:      tests
  build-depends: kad, base, stm, containers, minmax-psq, server
  main-is: searchReset.hs
  ghc-options: -rtsopts -threaded