FSharp.Azure.Quantum.Braket 0.6.2

dotnet add package FSharp.Azure.Quantum.Braket --version 0.6.2
                    
NuGet\Install-Package FSharp.Azure.Quantum.Braket -Version 0.6.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FSharp.Azure.Quantum.Braket" Version="0.6.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FSharp.Azure.Quantum.Braket" Version="0.6.2" />
                    
Directory.Packages.props
<PackageReference Include="FSharp.Azure.Quantum.Braket" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FSharp.Azure.Quantum.Braket --version 0.6.2
                    
#r "nuget: FSharp.Azure.Quantum.Braket, 0.6.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FSharp.Azure.Quantum.Braket@0.6.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FSharp.Azure.Quantum.Braket&version=0.6.2
                    
Install as a Cake Addin
#tool nuget:?package=FSharp.Azure.Quantum.Braket&version=0.6.2
                    
Install as a Cake Tool

FSharp.Azure.Quantum.Braket

AWS Braket plugin for FSharp.Azure.Quantum

Submits circuits to AWS Braket gate QPUs and simulators via OpenQASM 3.0, and neutral-atom analog programs to QuEra Aquila via the Braket AHS format. This is the only package that depends on the AWS SDK — the core FSharp.Azure.Quantum package stays AWS-free.

Supported devices

Kind Devices (Braket.Devices.*) Format
Gate QPUs ionqAria1, ionqForte1, rigettiAnkaa3, iqmGarnet, oqcLucy, infleqtionSqale OpenQASM 3.0
Managed simulators sv1, dm1, tn1 OpenQASM 3.0
Neutral-atom analog QPU queraAquila AHS

Device ARNs track the Braket console — update Braket.Devices if a device is retired or added.

Installation

dotnet add package FSharp.Azure.Quantum.Braket

This package requires FSharp.Azure.Quantum (pulled in transitively) and the AWSSDK.Braket and AWSSDK.S3 packages. You need AWS credentials with Braket access and an S3 bucket where Braket writes task results.

Quick start

Gate circuits (any Braket gate device)

BraketBackend implements the shared IQuantumBackend, so it works with any gate device by ARN and plugs into the standard algorithms (Grover, QFT, Shor, HHL).

open Amazon.Braket
open Amazon.S3
open FSharp.Azure.Quantum.Braket
open FSharp.Azure.Quantum.Braket.BraketExecution

let braket = new AmazonBraketClient()
let s3 = new AmazonS3Client()
let s3Config = { Bucket = "my-braket-results"; KeyPrefix = "tasks" }

// Pick a device by ARN — simulator, IonQ, Rigetti, IQM, OQC, Infleqtion, ...
let backend = BraketBackend(braket, s3, s3Config, Braket.Devices.sv1, shots = 1000)

// Run a gate circuit (wrap a CircuitBuilder.Circuit with CircuitWrapper)
let result = (backend :> IQuantumBackend).ExecuteToState circuit

The backend exports the circuit to OpenQASM 3.0, submits the task, polls to completion, reads the result JSON from S3, and returns an approximate QuantumState built from the measurement histogram. Failures come back as Error (QuantumError ...) rather than exceptions.

Qubit limits

The backend reports a qubit limit (IQubitLimitedBackend), and solvers refuse or split a wider problem before a task is submitted. Braket.Devices.maxQubits holds the figures of the devices this module names as they were when this version was released; a device it does not name reports no limit. To use a device at its current width:

// read the figure from the device itself (one GetDevice call, needs braket:GetDevice)
let! live = BraketBackend.CreateWithDeviceLimitAsync(braket, s3, s3Config, Braket.Devices.ionqForte1, shots = 1000)

// or state it
let stated = BraketBackend(braket, s3, s3Config, Braket.Devices.ionqForte1, shots = 1000, maxQubits = 64)

CreateWithDeviceLimitAsync returns Result<BraketBackend, QuantumError>; a device whose capabilities name no qubit count keeps the built-in figure. deviceQubitsAsync braket deviceArn ct returns the reported count alone.

Neutral-atom analog programs (QuEra Aquila)

open FSharp.Azure.Quantum.Algorithms.NeutralAtom

// Build a RydbergProgram, then submit it via the AHS format
let! result =
    submitAhsAsync braket s3 s3Config Braket.Devices.queraAquila program shots ct

Modules

  • Braket — pure helpers with no AWS SDK dependency (device ARNs, OpenQASM action wrapping, gate-result parsing). Testable in isolation.
  • BraketExecution — the AWS-facing layer: submitActionAsync, submitAhsAsync, and the BraketBackend gate IQuantumBackend.

Notes

  • ExecuteToState reconstructs a QuantumState from the measurement histogram in three tiers: a dense state vector up to 20 qubits, a SparseState (observed outcomes only) for 21–31 qubits, and QuantumState.MeasurementHistogram (bitstring → count) beyond that. The histogram tier has no width limit — it holds at most shots entries regardless of qubit count, so wide devices (Rigetti Ankaa, QuEra-scale) work. To get the raw histogram at any width, call BraketBackend.ExecuteToHistogramAsync (circuit, ct).
  • ApplyOperation is not supported (Braket runs whole circuits, not incremental gates); use ExecuteToState with a complete circuit.

License

Same as the parent project (FSharp.Azure.Quantum) — Unlicense / Public Domain.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.6.2 96 10/10/2026
0.6.1 87 10/9/2026
0.6.0 81 10/9/2026
0.5.2 101 10/2/2026
0.5.1 97 10/1/2026
0.5.0 92 10/1/2026
0.4.15 97 9/30/2026
0.4.12 94 9/29/2026
0.4.11 104 9/26/2026
0.4.9 102 9/20/2026
0.4.8 99 9/18/2026
0.4.7 141 8/1/2026
0.4.6 137 7/11/2026
0.4.5 123 7/6/2026
0.4.4 132 7/3/2026
0.4.3 134 7/1/2026

v0.6.2: Rebuilt against FSharp.Azure.Quantum v1.6.2

v0.6.1: Rebuilt against FSharp.Azure.Quantum v1.6.1

v0.6.0: Rebuilt against FSharp.Azure.Quantum v1.6.0 (qubit limits come from the backend; see its notes)

v0.5.2: Rebuilt against FSharp.Azure.Quantum v1.5.2

v0.5.1: Rebuilt against FSharp.Azure.Quantum v1.5.1
- ADDED: the backend reports its device's qubits (IQubitLimitedBackend, Braket.Devices.maxQubits) for the devices the module names
- ADDED: BraketBackend takes maxQubits, which replaces that figure; BraketBackend.CreateWithDeviceLimitAsync and deviceQubitsAsync read the device's own qubit count (GetDevice, Braket.Devices.qubitCountOfCapabilities)

v0.5.0: Rebuilt against FSharp.Azure.Quantum v1.5.0 (Task-based API; see its notes)

v0.4.16: Rebuilt against FSharp.Azure.Quantum v1.4.16
- CHANGED: Braket results carry their recorded counts, so measuring a returned state yields Braket's own shots rather than outcomes resampled from its amplitudes

v0.4.14: Rebuilt against FSharp.Azure.Quantum v1.4.14
- ADDED: the Braket backend implements IShotSamplingBackend, so sampled UCCSD-VQE knows its shot count
- CHANGED: circuits are transpiled to the target device's gate set before OpenQASM 3.0 export, so composite gates (Toffoli, multi-controlled, controlled-phase) reach the device; an optional JobBudget limits submitted jobs
- Requires FSharp.Azure.Quantum v1.4.14+