Vary

A readable, statically-typed programming language that measures test strength.

Why Vary

A lie detector for tests. Tests can lie. Mutation testing exposes the ones that do. vary mutate shows which tests are weak, which mutations survived, and exactly what to fix.

Contracts and assertions. Contracts (in / out) declare what a function expects and what it promises. observe assertions check behaviour at runtime. Both are part of the language, not annotations you bolt on.

One CLI for the entire workflow. Run, check, test, format, and mutate from a single binary. Everything ships with the compiler. No plugins or extra tools required. Get started in minutes.

Fast JVM execution. Vary compiles to JVM bytecode and runs on any JVM. Mutation testing uses bytecode patching, so mutants run without recompiling.

Recent Articles