ghci-websockets: A websocket server that survives GHCi reloads

[ bsd3, language, library ] [ Propose Tags ]

A websocket server that survives GHCi reloads - use your browser to visualise results from the REPL.


[Skip to Readme]
Versions [RSS] [faq] 0.0.1, 0.0.2
Change log CHANGELOG.md
Dependencies aeson, base (<=5), containers, foreign-store, text, websockets [details]
License BSD-3-Clause
Copyright Copyright (C) 2019 Jann Mueller
Author Jann Müller
Maintainer Jann Müller (j.mueller.11@alumni.ucl.ac.uk)
Category Language
Home page https://github.com/j-mueller/ghci-websockets
Bug tracker https://github.com/j-mueller/ghci-websockets/issues
Source repo head: git clone https://github.com/j-mueller/ghci-websockets
Uploaded by jfmueller at 2019-07-14T21:52:48Z
Distributions NixOS:0.0.2
Downloads 621 total (9 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-07-14 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates


Readme for ghci-websockets-0.0.1

[back to package description]

ghci-websockets

With ghci-websockets you can send data from GHCi straight to the browser, using a websocket connection that survives GHCi reloads.

ghci-websockets.gif

Contents

The Ghci.Websockets module implements the actual websocket server, broadcasting JSON objects to all clients. Ghci.Websockets.Simple adds a custom message type for text, HTML, and plots on top of that.

Quickstart

  • Add ghci-websockets to the build-depends field of your .cabal file
  • Run cabal new-repl
  • Run Ghci.Websockets.Simple.initialiseDef
  • Open html/index.html in a browser
  • In GHCi, run Ghci.Websockets.Simple.broadcastText "hello" (see also broadcastHtml and broadcastPlot from the same module). You may need :set -XOverloadedStrings.

Warning

This packages uses the foreign-store package internally, which is highly unstable. I wouldn't use ghci-websockets for anything other than GHCi.

License

BSD-3-Clause, see LICENSE

Contributions

Bug reports, pull requests etc. are welcome!