name: bittorrent version: 0.0.0.3 license: BSD3 license-file: LICENSE author: Sam Truzjan maintainer: Sam Truzjan copyright: (c) 2013, Sam Truzjan category: Network build-type: Custom cabal-version: >= 1.10 tested-with: GHC == 7.6.3 homepage: https://github.com/cobit/bittorrent bug-reports: https://github.com/cobit/bittorrent/issues synopsis: BitTorrent protocol implementation. description: A library for making Haskell bittorrent applications easy. . For more information see: extra-source-files: res/dapper-dvd-amd64.iso.torrent res/pkg.torrent README.md ChangeLog cbits/*.h source-repository head type: git location: git://github.com/cobit/bittorrent.git source-repository this type: git location: git://github.com/cobit/bittorrent.git branch: master tag: v0.0.0.3 flag testing description: Whether to build tests. default: False flag examples description: Whether to build examples. default: False flag network-uri description: Use network-uri package. default: True flag bits-extras description: Use more-effecient bits-extras bitwise operations. default: False flag dht-only description: Build only DHT related modules. default: True flag builder description: Use older bytestring package and bytestring-builder. default: False flag aeson description: Use aeson for pretty-printing bencoded data. default: True flag thread-debug description: Add instrumentation to threads. default: True library default-language: Haskell2010 default-extensions: PatternGuards , OverloadedStrings , RecordWildCards hs-source-dirs: src, cryptonite-backport, . exposed-modules: Network.SocketLike Data.Digest.CRC32C Data.Bits.ByteString Data.Wrapper.PSQ Data.Wrapper.PSQInt Data.MinMaxPSQ Network.Address Network.Kademlia.Routing Data.Torrent Network.BitTorrent.DHT.ContactInfo Network.BitTorrent.DHT.Token Network.Kademlia.Search Network.QueryResponse Network.StreamServer Data.BEncode.Pretty Control.Concurrent.Tasks Network.Kademlia Network.BitTorrent.MainlineDHT System.Global6 Network.Tox Network.Tox.Transport Network.Tox.Crypto.Transport Network.Tox.Onion.Handlers Network.Tox.Onion.Transport Network.Tox.DHT.Handlers Network.Tox.DHT.Transport Network.Tox.NodeId Control.TriadCommittee Crypto.Tox Text.XXD build-depends: base , containers , array , hashable , iproute , stm , base16-bytestring , base32-bytestring , base64-bytestring , psqueues , reflection , deepseq , text , filepath , directory , bencoding , contravariant , cryptonite , memory , time , random , entropy , cpu , cereal , http-types , process , split , pretty , convertible , data-default , bifunctors , lens , lifted-async , lifted-base , monad-control , transformers-base , mtl if flag(network-uri) Build-depends: network >= 2.6 , network-uri >= 2.6 else Build-depends: network >= 2.4 && < 2.6 other-modules: Paths_bittorrent Crypto.Cipher.Salsa Crypto.Cipher.XSalsa Crypto.ECC.Class Crypto.ECC.Simple.Prim Crypto.ECC.Simple.Types Crypto.Error.Types Crypto.Internal.ByteArray Crypto.Internal.Compat Crypto.Internal.DeepSeq Crypto.Internal.Imports Crypto.PubKey.Curve25519 C-sources: cbits/cryptonite_xsalsa.c, cbits/cryptonite_salsa.c if !flag(dht-only) exposed-modules: Network.BitTorrent Network.BitTorrent.Client Network.BitTorrent.Client.Types Network.BitTorrent.Client.Handle Network.BitTorrent.Exchange Network.BitTorrent.Exchange.Bitfield Network.BitTorrent.Exchange.Block Network.BitTorrent.Exchange.Connection Network.BitTorrent.Exchange.Download Network.BitTorrent.Exchange.Manager Network.BitTorrent.Exchange.Message Network.BitTorrent.Exchange.Session Network.BitTorrent.Tracker Network.BitTorrent.Tracker.List Network.BitTorrent.Tracker.Message Network.BitTorrent.Tracker.RPC Network.BitTorrent.Tracker.RPC.HTTP Network.BitTorrent.Tracker.RPC.UDP Network.BitTorrent.Tracker.Session System.Torrent.Storage if !flag(dht-only) if flag(testing) exposed-modules: Network.BitTorrent.Internal.Cache Network.BitTorrent.Internal.Progress Network.BitTorrent.Internal.Types System.Torrent.FileMap System.Torrent.Tree else other-modules: Network.BitTorrent.Internal.Cache Network.BitTorrent.Internal.Progress Network.BitTorrent.Internal.Types System.Torrent.FileMap System.Torrent.Tree if flag(aeson) build-depends: aeson, aeson-pretty, unordered-containers, vector cpp-options: -DBENCODE_AESON if flag(thread-debug) exposed-modules: Control.Concurrent.Lifted.Instrument Control.Concurrent.Async.Lifted.Instrument cpp-options: -DTHREAD_DEBUG if flag(builder) build-depends: bytestring >= 0.9, bytestring-builder else build-depends: bytestring >= 0.10 if impl(ghc < 7.6) build-depends: ghc-prim ghc-options: -Wall -fdefer-typed-holes ghc-prof-options: test-suite spec if !flag(testing) buildable: False default-language: Haskell2010 default-extensions: OverloadedStrings type: exitcode-stdio-1.0 hs-source-dirs: tests main-is: Main.hs other-modules: Spec Config Network.KRPCSpec Network.KRPC.MethodSpec Network.DatagramServer.MainlineSpec Data.TorrentSpec Network.BitTorrent.Client.HandleSpec Network.BitTorrent.CoreSpec Network.BitTorrent.DHTSpec Network.BitTorrent.DHT.TestData Network.BitTorrent.DHT.MessageSpec Network.BitTorrent.DHT.QuerySpec Network.Kademlia.RoutingSpec Network.BitTorrent.DHT.SessionSpec Network.BitTorrent.DHT.TokenSpec Network.BitTorrent.Internal.CacheSpec Network.BitTorrent.Internal.ProgressSpec Network.BitTorrent.Tracker.TestData Network.BitTorrent.Tracker.ListSpec Network.BitTorrent.Tracker.MessageSpec Network.BitTorrent.Tracker.RPCSpec Network.BitTorrent.Tracker.RPC.HTTPSpec Network.BitTorrent.Tracker.RPC.UDPSpec Network.BitTorrent.Tracker.SessionSpec Network.BitTorrent.Exchange.BitfieldSpec Network.BitTorrent.Exchange.ConnectionSpec Network.BitTorrent.Exchange.DownloadSpec Network.BitTorrent.Exchange.MessageSpec Network.BitTorrent.Exchange.SessionSpec System.Torrent.StorageSpec System.Torrent.FileMapSpec build-depends: base == 4.* -- * Concurrency , async -- * Data , bytestring , bytestring-arbitrary , containers , convertible , data-default , text , time -- * Serialization , cereal -- * Monads , mtl , resourcet , conduit , conduit-extra , monad-loops , monad-logger -- * Network , http-types , iproute -- * System , optparse-applicative >= 0.8 , process , directory , filepath -- * Testing , hspec >= 1.8.2 , QuickCheck , quickcheck-instances -- * Bittorrent , bittorrent , temporary , bencoding >= 0.4.3 if flag(network-uri) Build-depends: network >= 2.6 , network-uri >= 2.6 else Build-depends: network >= 2.4 && < 2.6 ghc-options: -Wall -fno-warn-orphans --benchmark bench -- default-language: Haskell2010 -- default-extensions: -- type: exitcode-stdio-1.0 -- hs-source-dirs: bench -- main-is: Main.hs -- build-depends: base -- , bytestring -- , cereal -- , network -- -- , criterion -- , deepseq -- -- , bittorrent -- ghc-options: -O2 -Wall -fno-warn-orphans benchmark bench type: exitcode-stdio-1.0 default-language: Haskell2010 hs-source-dirs: bench main-is: Main.hs build-depends: base == 4.* , bytestring , mtl , monad-logger , criterion ghc-options: -O2 -fforce-recomp executable dht hs-source-dirs: examples main-is: dht.hs default-language: Haskell2010 build-depends: base, haskeline, network, bytestring, transformers executable dhtd hs-source-dirs: examples main-is: dhtd.hs default-language: Haskell2010 build-depends: base, network, bytestring, hashable, deepseq , aeson , pretty , bittorrent , unix , containers , stm , cereal , bencoding if flag(thread-debug) build-depends: time cpp-options: -DTHREAD_DEBUG -- Utility to work with torrent files. executable mktorrent if !flag(examples) buildable: False default-language: Haskell2010 hs-source-dirs: examples main-is: MkTorrent.hs other-modules: Paths_bittorrent build-depends: base == 4.* , bytestring , text , pretty , mtl , conduit , lens , lifted-async , parallel-io , bittorrent , filepath , optparse-applicative , hslogger -- if flag(network-uri) -- Build-depends: , network >= 2.6 , network-uri >= 2.6 -- else -- Build-depends: network >= 2.4 && < 2.6 ghc-options: -Wall -O2 -threaded -- nonfunctioning example of very basic bittorrent client executable client if !flag(examples) buildable: False default-language: Haskell2010 hs-source-dirs: examples main-is: Client.hs build-depends: base == 4.* , bittorrent , mtl , pretty , data-default , optparse-applicative