packages feed

discord-haskell-voice-3.0.0: discord-haskell-voice.cabal

cabal-version: 1.12

name:           discord-haskell-voice
version:        3.0.0
synopsis:       Voice support for discord-haskell.
description:    Supplementary library to discord-haskell. See the project README on GitHub for more information. <https://github.com/yutotakano/discord-haskell-voice>
category:       Network
homepage:       https://github.com/yutotakano/discord-haskell-voice
bug-reports:    https://github.com/yutotakano/discord-haskell-voice/issues
author:         Yuto Takano <moa17stock@gmail.com>
maintainer:     Yuto Takano <moa17stock@gmail.com>
copyright:      Yuto Takano <moa17stock@gmail.com>, discord-haskell-voice Contributors
license:        MIT
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    ChangeLog.md

source-repository head
  type: git
  location: https://github.com/yutotakano/discord-haskell-voice

flag use-crypton
  description: Use crypton and crypton-box libraries for encryption instead of saltine, which has a dependency on libsodium. While it may be tempting to use a "pure-Haskell" solution (crypton does have a lot of C though), crypton and crypton-box's security have not been vetted for attacks. Further, Discord themselves use libsodium in their infrastructure, so it's recommended to keep this flag off and use saltine.
  manual: True
  default: False

library
  exposed-modules:
      Discord.Voice
      Discord.Voice.Conduit
      Discord.Internal.Types.VoiceCommon
      Discord.Internal.Types.VoiceUDP
      Discord.Internal.Types.VoiceWebsocket
      Discord.Internal.Voice
      Discord.Internal.Voice.CommonUtils
      Discord.Internal.Voice.UDPLoop
      Discord.Internal.Voice.WebsocketLoop
  other-modules:
      Discord.Internal.Voice.Encryption
      Discord.Internal.Voice.OggParser
  hs-source-dirs:
      src
  default-extensions:
      OverloadedStrings
    , Strict
  build-depends:
      BoundedChan ==1.0.3.0
    , aeson >=1.5 && <1.6 || >=2.0 && <2.3
    , async >=2.2.3 && <2.4
    , base >=4.7 && <5
    , binary ==0.8.*
    , bytestring >=0.10.12.0 && <0.13
    , conduit >=1.3.4.2 && <1.4.0.0
    , conduit-extra ==1.3.6
    , discord-haskell >=1.12.0 && <=1.17.1
    , microlens >=0.4.11.2 && <0.5
    , microlens-th >=0.4.3.10 && <0.5
    , mtl <2.4
    , network >=3.1.1.1 && <3.2
    , opus ==0.3.0.0
    , safe-exceptions >=0.1.7.1 && <0.1.8
    , stm >=2.5.0.0 && <=2.6.0.0
    , text >=1.2.4.1 && <3
    , time >=1.9.3 && <1.15
    , unliftio >=0.2.18 && <0.3
    , websockets >=0.12.7.2 && <0.14
    , wuss >=1.1.18 && <2.1.0.0
  default-language: Haskell2010

  if flag(use-crypton)
    cpp-options: -DUSE_CRYPTON
    build-depends:
        crypton >=0.32 && <1.1
      , crypton-box >=1.1.0 && <1.2
  else
    build-depends:
        saltine >=0.1.1.1 && <0.3

  if impl(ghc >= 9.6)
    -- 1.15.5 and earlier cannot build on GHC >= 9.6 since it tries to import
    -- Control.Monad functions from Control.Monad.Reader
    build-depends:
        discord-haskell  >= 1.15.6

executable basic-music-bot
  main-is: examples/BasicMusicBot.hs
  default-extensions:
      OverloadedStrings
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , conduit >=1.3.4.2 && <=1.4.0.0
    , discord-haskell >=1.12.0 && <=1.17.1
    , discord-haskell-voice
    , optparse-applicative >=0.15.1.0 && <0.19
    , stm >=2.5.0.0 && <2.6
    , stm-containers < 1.4
    , text >=1.2.4.1 && <3
    , unliftio >=0.2.18 && <0.3
  default-language: Haskell2010

executable join-all-on-start
  main-is: examples/JoinAllVC.hs
  default-extensions:
      OverloadedStrings
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , conduit >=1.3.4.2 && <=1.4.0.0
    , discord-haskell >=1.12.0 && <=1.17.1
    , discord-haskell-voice
    , safe-exceptions >=0.1.7.1 && <0.1.8
    , text >=1.2.4.1 && <3
  default-language: Haskell2010