packages feed

myxine-client-0.0.0.2: myxine-client.cabal

cabal-version:       2.4
name:                myxine-client
version:             0.0.0.2
synopsis:            A Haskell client for the Myxine GUI server
homepage:            https://github.com/GaloisInc/myxine
bug-reports:         https://github.com/GaloisInc/myxine/issues
license:             MIT
license-file:        LICENSE
author:              Kenny Foner
maintainer:          kwf@galois.com
copyright:           Copyright (c) 2020 Galois, Inc.
category:            GUI
stability:           alpha
extra-source-files:  CHANGELOG.md, enabled-events.json
description:
  [Myxine](https://github.com/GaloisInc/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@.
  .
  __Package versioning and stability:__ This package should be considered in
  "alpha" stability at present. No compatibility between alpha versions is
  guaranteed.

common deps
  build-depends:       base                 >= 4.12.0.0 && <= 4.14.0.0,
                       req                  ^>= 3.1,
                       aeson                ^>= 1.4,
                       text                 ^>= 1.2,
                       transformers         ^>= 0.5,
                       bytestring           ^>= 0.10,
                       unordered-containers ^>= 0.2,
                       dependent-map        ^>= 0.3,
                       dependent-sum        ^>= 0.6,
                       template-haskell     >= 2.14.0.0 && <= 2.15.0.0,
                       hashable             ^>= 1.3,
                       file-embed           ^>= 0.0.11.1,
                       http-client          ^>= 0.6,
                       http-types           ^>= 0.12

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,
                       DuplicateRecordFields,
                       EmptyCase,
                       GADTs,
                       GeneralizedNewtypeDeriving,
                       KindSignatures,
                       LambdaCase,
                       NamedFieldPuns,
                       OverloadedStrings,
                       RankNTypes,
                       ScopedTypeVariables,
                       StandaloneDeriving,
                       TemplateHaskell,
                       TupleSections,
                       TypeApplications,
                       ViewPatterns

library
  import:              deps, options
  exposed-modules:     Myxine
                       Myxine.Direct
  other-modules:       Myxine.Page
                       Myxine.Target
                       Myxine.Handlers
                       Myxine.Event
                       Myxine.Internal.EventStream
                       Myxine.Internal.TH
                       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