OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-HTTP?expand=0&rev=107
186 lines
5.7 KiB
Plaintext
186 lines
5.7 KiB
Plaintext
Cabal-Version: >= 1.10
|
|
Name: HTTP
|
|
Version: 4000.4.1
|
|
x-revision: 2
|
|
Build-type: Simple
|
|
License: BSD3
|
|
License-file: LICENSE
|
|
Author: Warrick Gray <warrick.gray@hotmail.com>
|
|
Maintainer: Ganesh Sittampalam <ganesh@earth.li>
|
|
Homepage: https://github.com/haskell/HTTP
|
|
Category: Network
|
|
Synopsis: A library for client-side HTTP
|
|
Description:
|
|
|
|
The HTTP package supports client-side web programming in Haskell. It lets you set up
|
|
HTTP connections, transmitting requests and processing the responses coming back, all
|
|
from within the comforts of Haskell. It's dependent on the network package to operate,
|
|
but other than that, the implementation is all written in Haskell.
|
|
.
|
|
A basic API for issuing single HTTP requests + receiving responses is provided. On top
|
|
of that, a session-level abstraction is also on offer (the @BrowserAction@ monad);
|
|
it taking care of handling the management of persistent connections, proxies,
|
|
state (cookies) and authentication credentials required to handle multi-step
|
|
interactions with a web server.
|
|
.
|
|
The representation of the bytes flowing across is extensible via the use of a type class,
|
|
letting you pick the representation of requests and responses that best fits your use.
|
|
Some pre-packaged, common instances are provided for you (@ByteString@, @String@).
|
|
.
|
|
Here's an example use:
|
|
.
|
|
>
|
|
> do
|
|
> rsp <- Network.HTTP.simpleHTTP (getRequest "http://www.haskell.org/")
|
|
> -- fetch document and return it (as a 'String'.)
|
|
> fmap (take 100) (getResponseBody rsp)
|
|
>
|
|
> do
|
|
> (_, rsp)
|
|
> <- Network.Browser.browse $ do
|
|
> setAllowRedirects True -- handle HTTP redirects
|
|
> request $ getRequest "http://www.haskell.org/"
|
|
> return (take 100 (rspBody rsp))
|
|
.
|
|
__Note:__ This package does not support HTTPS connections.
|
|
If you need HTTPS, take a look at the following packages:
|
|
.
|
|
* <http://hackage.haskell.org/package/http-streams http-streams>
|
|
.
|
|
* <http://hackage.haskell.org/package/http-client http-client> (in combination with
|
|
<http://hackage.haskell.org/package/http-client-tls http-client-tls>)
|
|
.
|
|
* <http://hackage.haskell.org/package/req req>
|
|
.
|
|
* <http://hackage.haskell.org/package/wreq wreq>
|
|
.
|
|
|
|
Extra-Source-Files: CHANGES
|
|
|
|
tested-with:
|
|
GHC==9.2.1, GHC==9.0.1,
|
|
GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,
|
|
GHC==7.10.3, GHC==7.8.4, GHC==7.6.3
|
|
|
|
Source-Repository head
|
|
type: git
|
|
location: https://github.com/haskell/HTTP.git
|
|
|
|
Flag warn-as-error
|
|
default: False
|
|
description: Build with warnings-as-errors
|
|
manual: True
|
|
|
|
Flag conduit10
|
|
description: Use version 1.0.x or below of the conduit package (for the test suite)
|
|
default: False
|
|
|
|
Flag warp-tests
|
|
description: Test against warp
|
|
default: False
|
|
manual: True
|
|
|
|
flag network-uri
|
|
description: Get Network.URI from the network-uri package
|
|
default: True
|
|
|
|
Library
|
|
Exposed-modules:
|
|
Network.BufferType,
|
|
Network.Stream,
|
|
Network.StreamDebugger,
|
|
Network.StreamSocket,
|
|
Network.TCP,
|
|
Network.HTTP,
|
|
Network.HTTP.Headers,
|
|
Network.HTTP.Base,
|
|
Network.HTTP.Stream,
|
|
Network.HTTP.Auth,
|
|
Network.HTTP.Cookie,
|
|
Network.HTTP.Proxy,
|
|
Network.HTTP.HandleStream,
|
|
Network.Browser
|
|
Other-modules:
|
|
Network.HTTP.Base64,
|
|
Network.HTTP.MD5Aux,
|
|
Network.HTTP.Utils
|
|
Paths_HTTP
|
|
GHC-options: -fwarn-missing-signatures -Wall
|
|
|
|
-- note the test harness constraints should be kept in sync with these
|
|
-- where dependencies are shared
|
|
build-depends:
|
|
base >= 4.6.0.0 && < 4.19
|
|
, array >= 0.3.0.2 && < 0.6
|
|
, bytestring >= 0.9.1.5 && < 0.12
|
|
, parsec >= 2.0 && < 3.2
|
|
, time >= 1.1.2.3 && < 1.13
|
|
, transformers >= 0.2.0.0 && < 0.7
|
|
-- transformers-0.2.0.0 is the first to have Control.Monad.IO.Class
|
|
-- The following dependencies are refined by flags, but they should
|
|
-- still be mentioned here on the top-level.
|
|
, mtl >= 2.0.0.0 && < 2.4
|
|
, network >= 2.4 && < 3.2
|
|
|
|
default-language: Haskell98
|
|
default-extensions: FlexibleInstances
|
|
|
|
if flag(network-uri)
|
|
Build-depends: network-uri == 2.6.*, network >= 2.6
|
|
else
|
|
Build-depends: network < 2.6
|
|
|
|
if flag(warn-as-error)
|
|
ghc-options: -Werror
|
|
|
|
if os(windows)
|
|
Build-depends: Win32 >= 2.2.0.0 && < 2.14
|
|
|
|
Test-Suite test
|
|
type: exitcode-stdio-1.0
|
|
|
|
default-language: Haskell98
|
|
hs-source-dirs: test
|
|
main-is: httpTests.hs
|
|
|
|
other-modules:
|
|
Httpd
|
|
UnitTests
|
|
|
|
ghc-options: -Wall
|
|
|
|
build-depends:
|
|
HTTP
|
|
-- constraints inherited from HTTP
|
|
, base
|
|
, bytestring
|
|
, mtl
|
|
, network
|
|
-- extra dependencies
|
|
, deepseq >= 1.3.0.0 && < 1.5
|
|
, httpd-shed >= 0.4 && < 0.5
|
|
, HUnit >= 1.2.0.1 && < 1.7
|
|
, pureMD5 >= 0.2.4 && < 2.2
|
|
, split >= 0.1.3 && < 0.3
|
|
, test-framework >= 0.2.0 && < 0.9
|
|
, test-framework-hunit >= 0.3.0 && < 0.4
|
|
|
|
if flag(network-uri)
|
|
Build-depends: network-uri == 2.6.*, network >= 2.6
|
|
else
|
|
Build-depends: network < 2.6
|
|
|
|
if flag(warp-tests)
|
|
CPP-Options: -DWARP_TESTS
|
|
build-depends:
|
|
case-insensitive >= 0.4.0.1 && < 1.3
|
|
, conduit >= 1.0.8 && < 1.4
|
|
, http-types >= 0.8.0 && < 1.0
|
|
, wai >= 2.1.0 && < 3.3
|
|
, warp >= 2.1.0 && < 3.4
|
|
|
|
if flag(conduit10)
|
|
build-depends: conduit < 1.1
|
|
else
|
|
build-depends: conduit >= 1.1, conduit-extra >= 1.1 && < 1.4
|