tket

Crates.iotket
lib.rstket
version0.15.0
created_at2025-06-19 12:33:06.544814+00
updated_at2025-09-15 11:18:26.426001+00
descriptionQuantinuum's TKET Quantum Compiler
homepagehttps://github.com/CQCL/tket2
repositoryhttps://github.com/CQCL/tket2
max_upload_size
id1718309
size815,849
Agustín Borgna (aborgna-q)

documentation

https://docs.rs/tket

README

tket: The Hardware Agnostic Quantum Compiler

build_status msrv codecov

TKET is an open source quantum compiler developed by Quantinuum. Central to TKET's design is its hardware agnosticism which allows researchers and quantum software developers to take advantage of its powerful compilation for many different quantum architectures.

Circuits are represented using the HUGR IR defined in the hugr crate. TKET augments Hugr with

  • The Circuit trait, providing a high-level interface for working with HUGRs representing quantum circuits
  • a HUGR extension with quantum operations
  • A composable pass system for optimising circuits
  • A number of built-in rewrite utilities and passes for common optimisations

This crate is interoperable with legacy pytket circuits via its serial encoding.

Using TKET

Defining a circuit in TKET is currently done by using the low-level hugr Builder API, or by loading tket1 circuits from JSON files.

use tket::{Circuit, Hugr};

// Load a tket1 circuit.
let mut circ: Hugr = tket::json::load_tk1_json_file("test_files/barenco_tof_5.json").unwrap();

assert_eq!(circ.qubit_count(), 9);
assert_eq!(circ.num_gates(), 170);

// Traverse the circuit and print the gates.
for command in circ.commands() {
    println!("{:?}", command.optype());
}

// Render the circuit as a mermaid diagram.
println!("{}", circ.mermaid_string());

// Optimise the circuit.
tket::passes::apply_greedy_commutation(&mut circ);

Please read the API documentation here.

Features

  • portmatching Enables pattern matching using the portmatching crate.

  • rewrite-tracing Adds opt-in tracking of the rewrites applied to a circuit.

Recent Changes

See CHANGELOG for a list of changes. The minimum supported rust version will only change on major releases.

Developing TKET

See DEVELOPMENT.md for instructions on setting up the development environment.

License

This project is licensed under Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).

Commit count: 855

cargo fmt