packages feed

arch-web-0.1.0: README.md

# arch-web

[![Hackage](https://img.shields.io/hackage/v/arch-web.svg?logo=haskell)](https://hackage.haskell.org/package/arch-web)
[![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
![build](https://github.com/berberman/arch-web/workflows/build/badge.svg)


`arch-web` is a simple library providing functions to access [Official repositories web interface](https://wiki.archlinux.org/index.php/Official_repositories_web_interface) and [Aurweb RPC interface](https://wiki.archlinux.org/index.php/Aurweb_RPC_interface), based on [servant-client](https://hackage.haskell.org/package/servant-client).

## Documentation

Documentation of released version is available at [hackage](https://hackage.haskell.org/package/arch-web),
and of master is at [github pages](https://berberman.github.io/arch-web).

## Example

* Print [linux](https://archlinux.org/packages/core/x86_64/linux/)'s version:

```haskell
import Control.Lens
import Control.Monad (void)
import Control.Monad.IO.Class (liftIO)
import qualified Data.Text as T
import Web.ArchLinux
import Web.ArchLinux.Types.Lens

main :: IO ()
main = void . runAPIClient' $ do
  linux <- getPackageDetails Core X86_64 "linux"
  liftIO . putStrLn $ "linux in [core] has version: " <> T.unpack (linux ^. pkgver)
```

* Search keywords "yay":

```haskell
import Control.Lens 
import Control.Monad (void)
import Control.Monad.IO.Class (liftIO)
import Web.ArchLinux
import Web.ArchLinux.Types.Lens

main :: IO ()
main = void . runAPIClient' $ do
  response <- searchAur ByNameOrDesc "yay"
  liftIO . print $ (response ^. results ^.. each . name)
```

* ...