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: Simple 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 flag tox-only description: Enable only the Tox DHT and disable Mainline bencoded messages. default: False library default-language: Haskell2010 default-extensions: PatternGuards , OverloadedStrings , RecordWildCards hs-source-dirs: src exposed-modules: Network.DatagramServer Network.DatagramServer.Mainline Network.DatagramServer.Tox Network.DatagramServer.Types Network.DatagramServer.Error Network.DHT Network.DHT.Types Network.DHT.Mainline Network.DHT.Tox Network.KRPC.Method Data.Torrent Data.Digest.CRC32C Network.Address Network.BitTorrent.DHT Network.BitTorrent.DHT.ContactInfo Network.BitTorrent.DHT.Query Network.DHT.Routing Network.BitTorrent.DHT.Session Network.BitTorrent.DHT.Token Network.StreamServer Network.SocketLike Network.BitTorrent.DHT.Search Data.MinMaxPSQ Data.Wrapper.PSQ StaticAssert 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 build-depends: lifted-base , convertible >= 1.0 , pretty >= 1.1 -- Control , deepseq >= 1.3 , lens >= 3.0 , resourcet >= 0.4 , mtl , monad-control , transformers-base , transformers >= 0.2 -- Concurrency , SafeSemaphore , lifted-async , async-pool -- , BoundedChan >= 1.0.1.0 , split-channel >= 0.2 , stm >= 2.4 -- Streaming , conduit >= 1.1 , conduit-extra >= 1.1 , cereal-conduit >= 0.5 -- * Logging , fast-logger >= 2.0 , monad-logger >= 0.3.4 -- Data & Data structures , array , containers >= 0.5 , data-default >= 0.5.2 , data-default-class -- , data-dword , intset >= 0.1 -- patched build: , intset == 0.1.1.10000 -- , PSQueue >= 1.1 , psqueues , split >= 0.2 , text >= 0.11.0 , unordered-containers , vector >= 0.10 -- Hashing , cryptonite , memory , hashable >= 1.2 , largeword -- Codecs & Serialization , attoparsec >= 0.10 , base16-bytestring >= 0.1 , base32-bytestring >= 0.2 , base64-bytestring >= 1.0 , cereal >= 0.3.5 -- Time , old-locale >= 1.0 , time >= 1.0 -- Network , http-types >= 0.8 , http-client >= 0.2 && < 0.5 -- ^ We call setUri with Default Request instance, -- but that instance was removed in an API breaking -- change of http-client package, version 0.5.0. , http-conduit >= 2.0 -- ^ may wish && < 2.3 -- to tie upper bound here to http-client version -- maintained by same author , iproute >= 1.2.11 -- RNG/PRNG , entropy >= 0.2 , random >= 1.0.0.2 , random-shuffle >= 0.0.0.4 -- System , directory >= 1.2 , filepath >= 1.3 , mmap >= 0.5 , template-haskell , cpu if flag(network-uri) Build-depends: network >= 2.6 , network-uri >= 2.6 else Build-depends: network >= 2.4 && < 2.6 if flag(bits-extras) build-depends: base == 4.* , bits-extras >= 0.1.2 else build-depends: base >= 4.8 if !flag(tox-only) build-depends: bencoding >= 0.4.3 exposed-modules: Data.BEncode.Pretty else build-depends: largeword exposed-modules: Network.DatagramServer.Tox 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 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.DHT.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 if flag(network-uri) Build-depends: network >= 2.6 , network-uri >= 2.6 else Build-depends: network >= 2.4 && < 2.6 if !flag(tox-only) build-depends: bencoding >= 0.4.3 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 , mtl , lifted-base , pretty , data-default , monad-logger , bittorrent , unix , containers , stm , cereal , bencoding , random 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