Always be able to
Replay what happened
in production.

Runs in the background. Negligible impact on performance. Minimal storage requirement.

Free and soon to be open source. Easy set up with pip install.

Work with

Python
half life
bash
# Install Retrace
pip install retrace

# Set environment variables for recording
export PYTHONPATH="/path/to/your/retrace-record-replay-directory/"
export RETRACE_MODE="record"
python
# Run your application with Retrace recording
python your_app.py
bash
# Set environment variables for replay
export PYTHONPATH="/path/to/your/retrace-record-replay-directory/"
export RETRACE_MODE="replay"
python retrace_replay.py

Simple deployment

No code changes required.
You can install Retrace using pip‑install.

No data sharing

Retrace is entirely downloadable and runs locally, without sending data outside your environment.

Simple deployment

No code change.
You can install Retrace using pip‑install.

Comprehensive replay

Retrace allows you to replay the entire execution of your application, including code execution paths, variable states, network requests, DOM changes, and user interactions.

Low storage requirement

Retrace only records IO. As an example, the trace file from recording the start-up of a Django app will be less than 2MBs.

Free and soon-to-be open-source

We are working on our plan to open-source Record-Replay. In the meantime the product is free to use.

How does it work?

During the recording phase, Retrace captures all I/O interactions and the program’s structure, storing everything needed to enable deterministic replay.

Using a custom proxy system, Retrace ensures that the program can be re-executed with the recorded I/O, faithfully reproducing its original behavior.

 

RECORD

REPLAY

 

Getting Started with Record-Replay

Implement our Record-Replay library in any Python application in just five minutes.
With a few lines of code you can start recording your application's interactions and replaying them for detailed analysis. Here's how to get started:

Step 1: Set Up Your Environment

To begin using Retrace, you'll need to set some environment variables in your project directory. Open a terminal and run the following commands:

PYTHONPATH: Set this to the directory containing the retrace-record-replay repository. This will vary depending on where you have installed it on your system. For example:

bash
export PYTHONPATH="/path/to/your/retrace-record-replay-directory/"

RETRACE_MODE: Set this to record for recording. For example:

bash
export RETRACE_MODE=record

Step 2: Start Recording

With the environment variables set, you're ready to start recording your application. Simply use the command you normally use to start your application. For example, if you're using Django, run:

bash
python manage.py runserver

Retrace will now capture all interactions and save them for later replay.

Step 3: Replay Your Recorded Session

When you're ready to replay a recorded session, it's just as simple. First, set Retrace to replay mode by running:

bash
export RETRACE_MODE=replay

Then, use the same command you used during recording. For example: python manage.py runserver

Retrace will read the recorded data from the trace directory and reproduce the application's execution, providing detailed logs along the way.

That's it! With these three simple steps, you can harness the power of Retrace's Record-Replay functionality to streamline your debugging and testing process. Say goodbye to time-consuming bug hunts and hello to efficient, reproducible debugging sessions.

Why Record-Replay?

Reproducibility

Capture and replay specific execution paths, making it easy to reproduce and analyze bugs.

Collaboration

Share recorded sessions with team members, facilitating collaboration and knowledge sharing.

Time travelling debugging

Step forward and backward through your application's execution, gaining deep insights into its behavior.

Efficiency

Save time and effort by quickly reproducing issues and focusing on the root cause.

Use cases

Retrace’s Record-Replay library allows you to easily reproduce issues. Here are some of the scenarios where this is useful:

Software is not running as expected in a client’s environment and you can not recreate the issue.

Troubleshoot hard to find bugs.

A security breach.

Performance issues from a memory leak.

Tested frameworks and libraries

Our aim is for the Record-Replay library to work seamlessly with a wide range of Python frameworks, servers, and versions.

We have tested Record-Replay with Python 3.8, 3.9, 3.10 and 3.11, Django and Flask, plus over 60 popular libraries. You can see a full list here.

Please tell us which libraries you need us to be able to work with. Join the community here.

About us

Retrace is a technology company based in London, UK. Our mission is to bring end to end data visibility through applications and databases, transforming business transparency.