Varsnap provides a smart wrapper function that instruments your code and proxies it for further use.

import varsnap                    # Use one of our many clients
def calculate(x, y, z):
calculate = varsnap(calculate)    # Wrap any function with the varsnap function wrapper
calculate(1, 2, 3)                # Call your functions like normal
Routing without Varsnap
Why work with unknown data?
routing with Varsnap
When Varsnap can provide fresh data from production?

Automated Testing and Shadow Traffic

Varsnap automatically records function calls in production and replays them into your local development, CI, or staging environment for testing. Varsnap supplements your unit and integration tests with copies of real data to ensure you have full test coverage.

Realtime Development

Use recorded and realtime production function calls to proxy to your development environment to continually test your code as you work. Varsnap will generate reports of how your changes will run in production, including correctness comparisons and performance regressions. With the Varsnap wrapper function, run upstream and downstream integration tests on specially targeted production or test traffic seamlessly from your laptop.

Logging and Metrics

Varsnap will automatically log and store metrics on functions that it operates on. Remove the need to manually scatter instrumentation boilerplate code throughout your codebase.

Simple Installation

Varsnap is trivial to install for most languages and frameworks. See the language support table below for installation instructions.

Language Support

Language Support
Python (2 and 3) Full
Javascript Full
Go Coming Soon
Java Coming Soon
Ruby Coming Soon