App::mirai - debugging for Future-based code


version 0.003


 # Just trace a single script to STDOUT/STDERR:

 # Run the Tickit interface, and have it load the script as a separate process, directing
 # STDOUT/STDERR to windows in the UI and communicating via pipepair

 # eventually, the following options may also be added:

 # start an IO::Async::Listener on the given port/socket file. Means the event loop needs to
 # be running, but should be able to hook into an existing application without too much trouble.
 # Some complications around Future nesting (Futures are created by the debugger itself) but
 # that's easy enough to work around
 perl -d:Mirai=localhost:1234
 perl -d:Mirai=/tmp/mirai.sock
 # Run Tickit interface directly, presuming that the code itself is silent - everything is
 # in-process, so no need for debugging to go via pipes
 perl -Mirai


Provides a basic debugging interface for tracing and interacting with Futures. This should allow you to see the Future instances currently in use in a piece of code, and what their current status is.

The UI is currently Tickit-based.

Early preview screenshot:

Mirai Tickit user interface

There's a web interface in the works as well.

The name "mirai" (未来) was chosen because it's short and somewhat related to the concept of the code, plus it seemed like a better option than chigiri (契り) at the time.


Defines the serialisation format to use.

Prefers Sereal if available, will fall back to JSON via JSON::MaybeXS. Set MIRAI_SERIALISATION in the environment to override:

  • Sereal

  • JSON



Starts the child process for running the code-under-test.



Tom Molesworth <>


Copyright Tom Molesworth 2014-2015. Licensed under the same terms as Perl itself.