{"id":15010957,"url":"https://github.com/keera-studios/haskell-titan","last_synced_at":"2025-08-08T18:57:12.222Z","repository":{"id":56880632,"uuid":"102318085","full_name":"keera-studios/haskell-titan","owner":"keera-studios","description":"Testing Infrastructure for Temporal AbstractioNs","archived":false,"fork":false,"pushed_at":"2020-08-24T16:42:04.000Z","size":592,"stargazers_count":23,"open_issues_count":6,"forks_count":0,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-03-23T20:37:18.102Z","etag":null,"topics":["debugging","frp","functional-programming","functional-reactive-programming","haskell","quickcheck","record-and-replay","testing","visual-debugging"],"latest_commit_sha":null,"homepage":"http://facebook.com/keerastudios","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keera-studios.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-04T04:16:15.000Z","updated_at":"2025-01-26T23:16:34.000Z","dependencies_parsed_at":"2022-08-20T13:00:42.002Z","dependency_job_id":null,"html_url":"https://github.com/keera-studios/haskell-titan","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keera-studios%2Fhaskell-titan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keera-studios%2Fhaskell-titan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keera-studios%2Fhaskell-titan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keera-studios%2Fhaskell-titan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keera-studios","download_url":"https://codeload.github.com/keera-studios/haskell-titan/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248088437,"owners_count":21045713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debugging","frp","functional-programming","functional-reactive-programming","haskell","quickcheck","record-and-replay","testing","visual-debugging"],"created_at":"2024-09-24T19:37:49.936Z","updated_at":"2025-04-09T18:35:25.466Z","avatar_url":"https://github.com/keera-studios.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Haskell Titan - Testing Infrastructure for Temporal AbstractioNs\n\nHaskell Titan is a testing and debugging system for reactive, time-varying and\ninteractive software.\n\nIt is built on the principles of Functional Reactive Programming, although it's\nideas can be applied to other time-based abstractions.\n\n\u003cdiv style=\"text-align:center\"\u003e\u003cimg src =\"https://raw.githubusercontent.com/keera-studios/haskell-titan/develop/docs/debugger.gif\" /\u003e\u003c/div\u003e\n\n# Structure of Haskell Titan\n\nHaskell Titan is composed of two parts: testing facilities and debugging\nfacilities.\n\nThe testing facilities allow you to: 1) describe and test temporal unit\ntests, and 2) test FRP programs using QuickCheck (both using real traces or\nunit tests)\n\nThe debugging facilities allow you to: 1) record and replay FRP programs in a\nreferentially transparent manner and 2) debug programs as you run them.\n\nPart of the testing facilities have been introduced in Yampa's repository\ndirectly, and you can find them at:\n\nhttps://github.com/ivanperez-keera/Yampa\n\nIn this repo you will find:\n\n- An extension of Yampa to run programs recording their input and debugging\n  them.\n\n- An interactive debugging GUI to connect to a running Yampa program and\n  control it remotely.\n\n## Getting started\n\n### Debugging\n\nIt's easier to get started with an example:\n\n```\n$ git clone https://github.com/keera-studios/haskell-titan\n$ cd haskell-titan\n$ git clone https://github.com/ivanperez-keera/Yampa\n$ cabal sandbox init\n$ cabal install Yampa/ -fexpose-core\n$ cabal install -fexamples titan-yampa-debugger/\n$ cabal install titan-gui/\n$ ./.cabal-sandbox/bin/titan-gui \u0026\n$ ./.cabal-sandbox/bin/titan-yampa-debugger-example-bouncing-ball\n```\n\nYou'll need GTK with glade installed. On Ubuntu you can:\n```\n$ apt-get install libglade2-dev\n```\n\n## Related Papers\n\n- [Testing and debugging functional reactive programming](https://dl.acm.org/citation.cfm?id=3110246)\n\n# Collaborations\n\nPlease, send pull requests and file bugs.\n\nIf you are considering to do something similar for a different FRP\nimplementation, please consider adding a new backend for this project so that\nwe can join efforts. That way our efforts will be more likely to help you, and\nyours will also help us. There's always some extra effort from trying to\ncollaborate with others, but it's totally worth it :)\n\n# Copyright\n\nThis software is the Copyright of Keera Studios Ltd. It is released under GPL-3 license.\n\nIf you find this license too restrictive for the environment where you need to\nuse Haskell Titan or to create an extension, please contact us at\nsupport@keera.co.uk and provide details about your case. We may be able to\ngrant an exception.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeera-studios%2Fhaskell-titan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeera-studios%2Fhaskell-titan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeera-studios%2Fhaskell-titan/lists"}