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 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: False flag builder description: Use older bytestring package and bytestring-builder. default: False flag aeson description: Use aeson for pretty-printing bencoded data. default: True library default-language: Haskell2010 default-extensions: PatternGuards , OverloadedStrings , RecordWildCards hs-source-dirs: src exposed-modules: Network.KRPC Network.KRPC.Message Network.KRPC.Method Network.KRPC.Manager Data.BEncode.Pretty Data.Torrent Data.Digest.CRC32C Network.BitTorrent.Address Network.BitTorrent.DHT Network.BitTorrent.DHT.ContactInfo Network.BitTorrent.DHT.Message Network.BitTorrent.DHT.Query Network.BitTorrent.DHT.Routing Network.BitTorrent.DHT.Session Network.BitTorrent.DHT.Token other-modules: Paths_bittorrent 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 -- , 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 , PSQueue >= 1.1 , split >= 0.2 , text >= 0.11.0 , unordered-containers , vector >= 0.10 -- Hashing , cryptohash >= 0.10 , hashable >= 1.2 -- Codecs & Serialization , attoparsec >= 0.10 , base16-bytestring >= 0.1 , base32-bytestring >= 0.2 , base64-bytestring >= 1.0 , bencoding >= 0.4.3 , cereal >= 0.3.5 -- Time , old-locale >= 1.0 , time >= 1.0 -- Network , http-types >= 0.8 , http-client >= 0.2 , http-conduit >= 2.0 , 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 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(aeson) build-depends: aeson, aeson-pretty, unordered-containers, vector cpp-options: -DBENCODE_AESON 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.KRPC.MessageSpec 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.BitTorrent.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 , bencoding , krpc >= 0.6.1 , bittorrent , temporary 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 , krpc ghc-options: -O2 -fforce-recomp -- 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