summaryrefslogtreecommitdiffhomepage
path: root/debug-me.cabal
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2017-04-27 12:01:20 -0400
committerJoey Hess <joeyh@joeyh.name>2017-04-27 12:08:37 -0400
commit5c542bb09e51eeb407a59f5bd4a2c6c460863446 (patch)
tree25c5b9cb53892b1445496d81357d9c889f162724 /debug-me.cabal
parent952cc2941091518e61345f005b6e218bc34f75ec (diff)
downloaddebug-me-5c542bb09e51eeb407a59f5bd4a2c6c460863446.tar.gz
switch wire message seralization to use protocol buffers
This way it's not tied to details of the haskell binary library, and implementations in other languages should be fairly simple to do. The haskell protobuf library was used because it does not need extra tooling or build steps. So I didn't write a .proto file, but one could fairly easily be written by following ProtocolBuffers.hs and translating it. ProtocolBuffers.hs is *extremely* repetative and tedious code. Surely there must be a way to not need to write all of that? Oh well, I wrote it.. Sizes of serialized messages: ">>> debug-me session started": 121 sending a single key press: 169 This seems equally as efficient as the binary serialization was; that was 165 bytes before elapsedTime was added. This commit was sponsored by Ethan Aubin.
Diffstat (limited to 'debug-me.cabal')
-rw-r--r--debug-me.cabal6
1 files changed, 4 insertions, 2 deletions
diff --git a/debug-me.cabal b/debug-me.cabal
index 8db9d4d..70ea2ac 100644
--- a/debug-me.cabal
+++ b/debug-me.cabal
@@ -36,7 +36,6 @@ Executable debug-me
, aeson (>= 0.11 && < 1.1)
, sandi (>= 0.4)
, text (>= 1.2.2)
- , binary (>= 0.8)
, optparse-applicative (>= 0.12)
, graphviz (== 2999.18.*)
, time (>= 1.6)
@@ -51,21 +50,24 @@ Executable debug-me
, websockets (>= 0.11.1)
, wai-websockets (>= 3.0)
, uuid (>= 1.3)
+ , protobuf
+ , cereal
Other-Modules:
CmdLine
Crypto
Graphviz
Hash
+ JSON
Log
Memory
Pty
+ ProtocolBuffers
Replay
Role.Developer
Role.Downloader
Role.User
Role.Watcher
Session
- Serialization
Server
SessionID
Types