packages feed

myxine-client-0.0.1.2: myxine-client.cabal

cabal-version:       2.4
name:                myxine-client
version:             0.0.1.2
synopsis:            A Haskell client for the Myxine GUI server
homepage:            https://github.com/kwf/myxine
bug-reports:         https://github.com/kwf/myxine/issues/new
license:             MIT
license-file:        LICENSE
author:              Kenny Foner
maintainer:          kwf@very.science
copyright:           Copyright (c) 2020 Kenny Foner and Galois, Inc.
category:            GUI
stability:           alpha
extra-source-files:  CHANGELOG.md, enabled-events.json
description:
  [Myxine](https://github.com/kwf/myxine) is a language-agnostic local
  server that lets you build interactive applications in the browser using a
  RESTful API. This package defines high-level typed Haskell bindings for using
  Myxine to quickly prototype surprisingly high-performance GUIs.
  .
  Myxine itself runs as a local server, separately from these bindings. It is
  built in [Rust](https://www.rust-lang.org/learn/get-started), and can be
  installed using the standard Rust build tool @cargo@:
  .
  > $ cargo install myxine
  .
  This Haskell package does __not__ manage the @myxine@ server process; it
  assumes that it is already running in the background (either started by an
  end-user, or managed by your own Haskell application).
  .
  __Required extensions:__ This library relies on the __@OverloadedRecordFields@__
  language extension, since a variety of browser event interfaces share field
  names/types. Without enabling it, you'll see many bewildering errors about
  ambiguous names. You may also find useful for concision the extensions
  __@NamedFieldPuns@__ and __@RecordWildCards@__.

common deps
  build-depends:       base                 >= 4.12.0.0 && <= 4.14.0.0,
                       req                  >= 3.1 && <= 3.3,
                       aeson                ^>= 1.4,
                       text                 ^>= 1.2,
                       mtl                  ^>= 2.2,
                       transformers         ^>= 0.5,
                       bytestring           ^>= 0.10,
                       unordered-containers ^>= 0.2,
                       containers           ^>= 0.6,
                       dependent-map        ^>= 0.4,
                       some                 ^>= 1.0,
                       template-haskell     >= 2.14.0.0 && <= 2.16.0.0,
                       hashable             ^>= 1.3,
                       file-embed           ^>= 0.0.11.1,
                       http-client          ^>= 0.6,
                       http-types           ^>= 0.12,
                       modern-uri           ^>= 0.3,
                       constraints          >= 0.10 && <= 0.12,
                       salve                ^>= 1.0,
                       blaze-markup         ^>= 0.8,
                       blaze-html           ^>= 0.9,
                       spoon                ^>= 0.3,
                       async                ^>= 2.2,
                       lens                 ^>= 4.19

common options
  default-language:    Haskell2010
  ghc-options:         -Wall
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wpartial-fields
  default-extensions:  BlockArguments,
                       DataKinds,
                       DeriveAnyClass,
                       DeriveGeneric,
                       DerivingStrategies,
                       DerivingVia,
                       DeriveFunctor,
                       DeriveFoldable,
                       DeriveTraversable,
                       DuplicateRecordFields,
                       RecordWildCards,
                       EmptyCase,
                       FlexibleInstances,
                       FlexibleContexts,
                       GADTs,
                       GeneralizedNewtypeDeriving,
                       KindSignatures,
                       LambdaCase,
                       MultiParamTypeClasses,
                       NamedFieldPuns,
                       OverloadedStrings,
                       RankNTypes,
                       ScopedTypeVariables,
                       StandaloneDeriving,
                       TemplateHaskell,
                       TupleSections,
                       TypeApplications,
                       ViewPatterns

library
  import:              deps, options
  exposed-modules:     Myxine
                       Myxine.Event
                       Myxine.Direct
                       Myxine.Handlers
  other-modules:       Myxine.Reactive
                       Myxine.Page
                       Myxine.Target
                       Myxine.ConjMap
                       Myxine.Internal.TH
                       Myxine.Internal.Event
                       Paths_myxine_client
  autogen-modules:     Paths_myxine_client
  hs-source-dirs:      src

test-suite myxine-client-test
  import:              options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Test.hs
  build-depends:       myxine-client,
                       text,
                       bytestring