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
pip install retrace
# Set environment variables for recording
export PYTHONPATH="/path/to/your/retrace-record-replay-directory/"
export RETRACE_MODE="record"
python your_app.py
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.
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
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:
RETRACE_MODE: Set this to record for recording. For example:
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:
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:
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.
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.
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.
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.
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.