diff --git a/.github/workflows/hqs-build-deploy-sphinx-doc-rust-pyo3.yml b/.github/workflows/hqs-build-deploy-sphinx-doc-rust-pyo3.yml index 2006fc678..1ab5a983e 100644 --- a/.github/workflows/hqs-build-deploy-sphinx-doc-rust-pyo3.yml +++ b/.github/workflows/hqs-build-deploy-sphinx-doc-rust-pyo3.yml @@ -6,10 +6,34 @@ on: types: [created] jobs: - publish_documentation: - uses: HQSquantumsimulations/reusable_workflows/.github/workflows/reusable_publish_documentation_rust_sphinx.yml@main - with: - py_interface_folder: "qoqo" - py_docs_folder: "qoqo/docs" - secrets: inherit + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + - uses: peaceiris/actions-mdbook@v1 + with: + version: latest + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + default: true + - name: Install dependencies + run: | + python -m pip install --upgrade pip maturin + pip install ${{inputs.py_interface_folder}}/[docs] + - name: build + run: | + cd ${{inputs.py_docs_folder}} + python -m sphinx -T -E -b html . _build/html + mv _build/html ../../documentation/src/python_api_docs + cd ../.. + mdbook build documentation + - name: publish + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: documentation/book diff --git a/CHANGELOG.md b/CHANGELOG.md index 6561812a2..9c7eeacc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ This changelog track changes to the qoqo project starting at version v0.5.0 +## Unreleased + +* Added the documentation from qoqo_examples. + ## 1.16.1 ### Fixed in 1.16.1 diff --git a/Cargo.lock b/Cargo.lock index a2f1c5fd3..bc2e59688 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -143,9 +143,9 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" [[package]] name = "byteorder" @@ -374,9 +374,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" @@ -432,9 +432,9 @@ checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", @@ -655,9 +655,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" [[package]] name = "js-sys" @@ -703,9 +703,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] name = "libm" @@ -715,9 +715,9 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -1006,9 +1006,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "portable-atomic" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] name = "ppv-lite86" @@ -1021,9 +1021,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -1268,9 +1268,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -1430,18 +1430,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", @@ -1461,9 +1461,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -1555,9 +1555,9 @@ dependencies = [ [[package]] name = "struqture" -version = "2.0.0-alpha.3" +version = "2.0.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5164769bf87c5ba799f89d51526152e1ba1cf36735cfa59ddefa3ddcb480541" +checksum = "8ec79acf34c1f18f4f29f6331d97380da7fac3d0d152003f4693ec46b3fadc31" dependencies = [ "indexmap", "itertools 0.12.1", @@ -1591,7 +1591,7 @@ dependencies = [ "serde", "serde_json", "struqture 1.9.2", - "struqture 2.0.0-alpha.3", + "struqture 2.0.0-alpha.4", "struqture-py-macros", "syn", "thiserror", @@ -1611,9 +1611,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ "proc-macro2", "quote", @@ -1622,9 +1622,9 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -1681,18 +1681,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", @@ -1727,9 +1727,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "libc", @@ -1808,9 +1808,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unindent" @@ -1820,9 +1820,9 @@ checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -1964,9 +1964,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.28" +version = "0.7.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690" +checksum = "58e6db2670d2be78525979e9a5f9c69d296fd7d670549fe9ebf70f8708cb5019" dependencies = [ "bytemuck", "safe_arch", @@ -2089,9 +2089,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -2101,9 +2101,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", @@ -2134,18 +2134,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", diff --git a/documentation/book.toml b/documentation/book.toml new file mode 100644 index 000000000..671be0a79 --- /dev/null +++ b/documentation/book.toml @@ -0,0 +1,10 @@ +[book] +authors = ["HQS Quantum Simulations "] +language = "en" +multilingual = false +src = "src" +title = "HQS qoqo User Documentation" + + +[output.html] +mathjax-support = true diff --git a/documentation/src/SUMMARY.md b/documentation/src/SUMMARY.md new file mode 100644 index 000000000..50bdc6711 --- /dev/null +++ b/documentation/src/SUMMARY.md @@ -0,0 +1,23 @@ +# qoqo/roqoqo User Guide + +[Introduction](introduction.md) + +- [Installation](installation.md) +- [Quantum Circuits](circuits/intro.md) + - [Unitary Operations](circuits/unitary.md) + - [Readout](circuits/readout.md) + - [Pragma Operations](circuits/pragma.md) + - [Noise Operations](circuits/noise.md) +- [High-Level Interface: Quantum Programs](high-level/intro.md) + - [PauliZProduct Measurement](high-level/pauliz.md) + - [QuantumProgram and Variable-Replacement](high-level/program.md) + - [ClassicalRegister Measurement](high-level/classical.md) + - [CheatedPauliZProduct Measurement](high-level/pauliz_cheated.md) + - [Cheated Measurement](high-level/cheated.md) +- [Backends](backends.md) +- [Devices](devices.md) +- [Conventions](conventions.md) +- [List of Gate Operations](gate_operations/intro.md) + - [Single-Qubit Gates](gate_operations/single_qubit_gates.md) + - [Two-Qubit Gates](gate_operations/two_qubit_gates.md) + - [Multi-Qubit Gates](gate_operations/multi_qubit_gates.md) diff --git a/documentation/src/backends.md b/documentation/src/backends.md new file mode 100644 index 000000000..a375b6d58 --- /dev/null +++ b/documentation/src/backends.md @@ -0,0 +1,183 @@ +# Backends + +Backends in qoqo/roqoqo are used for two things: + +* Running quantum programs and obtaining results from them +* Translating qoqo/roqoqo objects to other frameworks + +## Running quantum programs + +To obtain results based on a quantum program (or quantum circuit) defined in qoqo/roqoqo, the program must run on a simulator or real quantum computing hardware. + +For an individual simulator or hardware, a backend can be created that implements roqoqo's `EvaluatingBackend` trait and executes quantum circuits. +The implementation of individual backends is provided not in qoqo itself, but in other packages. + +At the moment the following EvaluatingBackends are implemented for qoqo/roqoqo: + +* [qoqo_aqt](https://github.com/HQSquantumsimulations/qoqo_aqt) +* [qoqo_mock](https://github.com/HQSquantumsimulations/qoqo_aqt) +* [qoqo_qryd](https://github.com/HQSquantumsimulations/qoqo_qryd) +* [qoqo_quest](https://github.com/HQSquantumsimulations/qoqo-quest) + +An EvaluatingBackend provides the functionality to run: + +* A _single_ circuit. The backend will execute just the circuit and return the measurement results of all registers in a tuple (bit-registers, float-registers, complex-registers). More details on registers can be found in section [readout](circuits/readout.md). All the postprocessing of the bare results needs to be done manually. +* A measurement. _All_ circuits collected in the measurement are executed and the post-processed expectation values are returned. +* A quantum program. A qoqo QuantumProgram also handles replacement of symbolic variables. It provides its own `run()` method and calls the given backend internally. + +All evaluating backends provide the same methods: `run_circuit()`, `run_measurement()` or `run_measurement_registers()`, and `run()`. + +### Example + +A [QuantumProgram](hight-level/program.md) is created to be executed on the [qoqo_quest](https://github.com/HQSquantumsimulations/qoqo-quest) simulator backend. Here, all three options supported by an `EvaluatingBackend` are presented: + +* to run a single circuit, +* to run a measurement, and +* to run a quantum program. + +In python: + +```python +from qoqo import Circuit +from qoqo import operations as ops +from qoqo.measurements import PauliZProduct, PauliZProductInput +from qoqo import QuantumProgram +from qoqo_quest import Backend +# initialize |psi> +init_circuit = Circuit() +# Apply a RotateY gate with a symbolic angle +# To execute the circuit this symbolic parameter must replaced +# with a real number with the help of a QuantumProgram +init_circuit += ops.RotateX(0, "angle") +# Z-basis measurement circuit with 1000 shots +z_circuit = Circuit() +z_circuit += ops.DefinitionBit("ro_z", 1, is_output=True) +z_circuit += ops.PragmaRepeatedMeasurement("ro_z", 1000, None) +# X-basis measurement circuit with 1000 shots +x_circuit = Circuit() +x_circuit += ops.DefinitionBit("ro_x", 1, is_output=True) +# Changing to the X basis with a Hadamard gate +x_circuit += ops.Hadamard(0) +x_circuit += ops.PragmaRepeatedMeasurement("ro_x", 1000, None) + +# Preparing the measurement input for one qubit +measurement_input = PauliZProductInput(1, False) +# Read out product of Z on site 0 for register ro_z (no basis change) +z_basis_index = measurement_input.add_pauliz_product("ro_z", [0,]) +# Read out product of Z on site 0 for register ro_x +# (after basis change effectively a measurement) +x_basis_index = measurement_input.add_pauliz_product("ro_x", [0,]) + +# Add a result (the expectation value of H) that is a combination of the PauliProduct +# expectation values +measurement_input.add_linear_exp_val("", {x_basis_index: 0.1, z_basis_index: 0.2}) + +measurement = PauliZProduct( + constant_circuit=init_circuit, + circuits=[z_circuit, x_circuit], + input=measurement_input, +) + +# Here we show three alternative options that can be ran: +# a single circuit, a measurement, and a quantum program. + +# Create a backend simulating one qubit +backend = Backend(1) + +# a) Run a single circuit +(bit_registers, float_registers, complex_registers) = backend.run_circuit(z_circuit) + +# b) To run a measurement we need to replace the free parameter by hand +executable_measurement = measurement.substitute_parameters({"angle": 0.2}) +expectation_values = backend.run_measurement(executable_measurement) +print(expectation_values) + +# c) Run a quantum program +# The QuantumProgram now has one free parameter that must be set when executing it. +# The symbolic value "angle" in the circuits will be replaced by that free parameter +# during execution. +program = QuantumProgram(measurement=measurement, input_parameter_names=["angle"]) +# Run the program with 0.1 substituting `angle` +expectation_values = program.run(backend, [0.1]) +``` + +In Rust: + +```rust +use std::collections::HashMap; + +use roqoqo::Circuit; +use roqoqo::operations as ops; +use roqoqo::measurements::{PauliZProduct, PauliZProductInput}; +use roqoqo::QuantumProgram; +use roqoqo::prelude::EvaluatingBackend; +use roqoqo::prelude::Measure; +use roqoqo_quest::Backend; + +// initialize |psi> +let mut init_circuit = Circuit::new(); +// Apply a RotateY gate with a symbolic angle +// To execute the circuit this symbolic parameter needs to be replaced +// with a real number with the help of a QuantumProgram +init_circuit += ops::RotateX::new(0, "angle".into()); +// Z-basis measurement circuit with 1000 shots +let mut z_circuit = Circuit::new(); +z_circuit += ops::DefinitionBit::new("ro_z".to_string(), 1, true); +z_circuit += ops::PragmaRepeatedMeasurement::new("ro_z".to_string(), 1000, None); +// X-basis measurement circuit with 1000 shots +let mut x_circuit = Circuit::new(); +x_circuit += ops::DefinitionBit::new("ro_x".to_string(), 1, true); +// Changing to the X basis with a Hadamard gate +x_circuit += ops::Hadamard::new(0); +x_circuit += ops::PragmaRepeatedMeasurement::new("ro_x".to_string(), 1000, None); + +// Preparing the measurement input for one qubit +let mut measurement_input = PauliZProductInput::new(1, false); +// Read out product of Z on site 0 for register ro_z (no basis change) +let z_basis_index = measurement_input.add_pauliz_product("ro_z".to_string(), vec![0,]).unwrap(); +// Read out product of Z on site 0 for register ro_x +// (after basis change effectively a measurement) +let x_basis_index = measurement_input.add_pauliz_product("ro_x".to_string(), vec![0,]).unwrap(); + +//Add a result (the expectation value of H) that is a combination of the PauliProduct +// expectation values +let mut linear: HashMap = HashMap::new(); +linear.insert(x_basis_index, 0.1); +linear.insert(z_basis_index, 0.2); +measurement_input.add_linear_exp_val("".to_string(), linear).unwrap(); + +let measurement = PauliZProduct{ + constant_circuit: Some(init_circuit), + circuits: vec![z_circuit.clone(), x_circuit], + input: measurement_input, +}; + +// Here we show three alternative options that can be ran: +// a single circuit, a measurement, and a quantum program. + +// Create a backend simulating one qubit +let backend = Backend::new(1); + +// a) Run a single circuit +let (_bit_registers, _float_registers, _complex_registers) = backend.run_circuit(&z_circuit).unwrap(); + +// b) To run a measurement we need to replace the free parameter by hand +let executable_measurement = measurement.substitute_parameters(HashMap::from([("angle".to_string(), 0.2)])).unwrap(); +let expectation_values = backend.run_measurement(&executable_measurement).unwrap(); +println!("{:?}", expectation_values); + +// c) Run a quantum program +// The QuantumProgram now has one free parameter that must be set when executing it. +// The symbolic value "angle" in the circuits will be replaced by that free parameter +// during execution. +let program = QuantumProgram::PauliZProduct{ measurement, input_parameter_names: vec!["angle".to_string()]}; +// Run the program with 0.1 substituting `angle` +let expectation_values = program.run(backend, &[0.1]).unwrap(); +println!("{:?}", expectation_values); +``` + +## Translating to other quantum computing frameworks + +There are many open- and closed-source quantum frameworks. For some use cases, it may be advantageous to interface between qoqo and another quantum computing framework. Depending on the target framework, circuits containing an available subset of qoqo operations can be translated to other frameworks by backends. Backends that translate qoqo/roqoqo objects (for example Circuits) to other frameworks or representations do not implement the `EvaluatingBackend`. + +At the moment, we have implemented one translating backend, from qoqo/roqoqo `Circuits` to qasm: [qoqo_qasm](https://github.com/HQSquantumsimulations/qoqo_qasm). diff --git a/documentation/src/circuits/intro.md b/documentation/src/circuits/intro.md new file mode 100644 index 000000000..9d88bce6f --- /dev/null +++ b/documentation/src/circuits/intro.md @@ -0,0 +1,53 @@ +# Quantum circuit + +A quantum circuit refers to a linear sequence of operations that can be executed on a quantum computer. Like most quantum computing toolkits, qoqo/roqoqo provides a `Circuit` object and a set of `Operations` that can be added to a `Circuit`. + +qoqo/roqoqo distinguishes between: + +* Definitions: Operations that declare (and initialize) classical register values ([see also here](readout.md)) +* Gate Operations: Unitary operations that can be executed on every unitary quantum computer (but might need to be decomposed into a sequence of native operations) ([see also here](unitary.md)) +* Pragma operations that are not generally available on all universal quantum computers (see [pragma operations](pragma.md) and [noise operations](noise.md) ) + +In order to create a useful result, a Circuit in qoqo/roqoqo must contain: + +* A definition of a classical register for readout +* Operations to change the state of the quantum computer, for example `RotateZ` or `CNOT` gate operations. +* A measurement to return classical information based on the state of the quantum computer. + +With qoqo, a `Circuit` can be constructed like this: + +```python +from qoqo import Circuit +from qoqo import operations as ops +# create a new circuit +circuit = Circuit() +# Define the readout for two qubits +circuit += ops.DefinitionBit(name="ro", length=2, is_output=True) +# Rotation around Z axis by pi/2 on qubit 0 +circuit += ops.RotateZ(qubit=0, theta=1.57) +# Entangling qubits 0 and 1 with CNOT gate +circuit += ops.CNOT(control=0, target=1) +# Measuring the qubits +circuit += ops.MeasureQubit(qubit=0, readout="ro", readout_index=0) +circuit += ops.MeasureQubit(qubit=1, readout="ro", readout_index=1) +``` + +And with roqoqo, like this: + +```rust +use roqoqo::{Circuit, operations::*}; + +// Create a new _modifiable_ circuit +let mut circuit = Circuit::new(); +// Define the readout for two qubits +circuit += DefinitionBit::new("ro".to_string(), 2, true); +// Apply rotation around Z axis by pi/2 on qubit 0 +circuit += RotateZ::new(0, 1.57.into()); +// Establish entanglement between qubits 0 and 1 +circuit += CNOT::new(0, 1); +// Measuring the qubits +circuit += MeasureQubit::new(0, "ro".to_string(), 0); +circuit += MeasureQubit::new(1, "ro".to_string(), 1); +``` + +For details on the **available methods** of a `Circuit` please refer to the **API documentation** of [roqoqo](https://docs.rs/roqoqo/latest/roqoqo/struct.Circuit.html) and [qoqo](https://hqsquantumsimulations.github.io/qoqo/generated/qoqo.html#qoqo.Circuit). diff --git a/documentation/src/circuits/noise.md b/documentation/src/circuits/noise.md new file mode 100644 index 000000000..ceb56fb66 --- /dev/null +++ b/documentation/src/circuits/noise.md @@ -0,0 +1,97 @@ +# Noise Operations + +qoqo/roqoqo enables the user to construct finely controlled noise models. Noise acting on the quantum computer is modeled as noise operations acting on individual qubits in between each unitary gate applied on the quantum computer. + +The noise operations can be directly added to a quantum circuit and can be simulated by compatible backends. Since noise cannot be actively controlled on a quantum computer normally, the noise operations are defined as [Pragma](pragma.md) operations in qoqo/roqoqo. The strength of the noise is determined by defining a `gate_time` and a `rate`. The noise Pragma operation affects the system as a Lindblad type noise acting on the system with the rate `rate` for the time `gate_time`. + +_Note_: as long as gate times and rates are scaled inversely any kind of units can be used. + +## Example + +For example we can add dephasing noise to qubit 0, damping noise to qubit 1, and depolarising noise to qubit 2 after a `CNOT` gate has been applied. + +In Python: + +```python + +from qoqo import Circuit +from qoqo import operations + +circuit = Circuit() +circuit += operations.CNOT(0,1) +# Adding dephasing noise acting on gate 0 with gate_time 1.0 and rate 1e-3 +circuit += operations.PragmaDephasing(qubit=0, gate_time=1.0, rate=1e-3) +circuit += operations.PragmaDamping(1, 1.0, 2e-3) +circuit += operations.PragmaDepolarising(3, 1.0, 5e-3) + +``` + +In Rust: + +```rust +use roqoqo::Circuit; +use roqoqo::operations; + +let mut circuit = Circuit::new(); +circuit += operations::CNOT::new(0,1); +// Adding dephasing noise acting on gate 0 with gate_time 1.0 and rate 1e-3 +circuit += operations::PragmaDephasing::new(0, 1.0, 1e-3.into()); +circuit += operations::PragmaDamping::new(1, 1.0, 2e-3.into()); +circuit += operations::PragmaDepolarising::new(3, 1.0, 5e-3.into()); +``` + +## Superoperator representation + +All noise operations in qoqo/roqoqo provide a `superoperator()` method that returns the definition of the noise operation in superoperator matrix form. +In the superoperator formalism, the density matrix of the system is rewritten as a vector in row-major form. Applying the noise to the quantum computer then corresponds to multiplying the vector with the superoperator matrix. +The superoperator matrix ignores the qubits the noise operation acts on to fit in the smallest possible matrix dimension. + +For other methods available for noise operations see the API documentation of [roqoqo](https://docs.rs/roqoqo/latest/roqoqo/operations/index.html) and [qoqo](https://hqsquantumsimulations.github.io/qoqo/generated/generated/qoqo.operations.html). + +## Noise operations + +The single noise operations shown in the example above are: + +* `PragmaDamping`, which applies a pure damping error corresponding to _zero_ temperature environments. +* `PragmaDepolarising`, which applies a depolarising noise. +* `PragmaDephasing`, which applies a pure dephasing noise. + +For a stochastically unravelled combination of dephasing and depolarising, the user can choose to use the `PragmaRandomNoise`. The error rate of the depolaristion (`depolarising_rate`) and the error rate of the dephasing (`dephasing_rate`) are provided as input parameters for this random noise operation. + +### PragmaGeneralNoise + +The most general noise can be modeled in qoqo by the PragmaGeneralNoise operation. This Pragma operation applies a noise term according to the given rates. The rates are represented by a 3x3 matrix: + +\\[ + M = \begin{pmatrix} + a & b & c \\\\ + d & e & f \\\\ + g & h & j \\\\ + \end{pmatrix} +\\], + +where the coefficients correspond to the following summands expanded from the first term of the non-coherent part of the Lindblad equation: +\\[ + \frac{d}{dt}\rho = \sum_{i,j=0}^{2} M_{i,j} L_{i} \rho L_{j}^{\dagger} - \frac{1}{2} \{ L_{j}^{\dagger} L_i, \rho \} +\\], + +with \\( L_0 = \sigma^{+} \\), \\( L_1 = \sigma^{-} \\) and \\( L_3 = \sigma_{z} \\). + +Applying a Pragma noise operation with a given `gate_time` corresponds to applying the full time-evolution under the Lindblad equation. + +## Error Pragmas that are not noise operations + +qoqo/roqoqo also supports Pragma operations that lead to errors in the execution of the quantum program that do not correspond to applying physical noise to the system + +### PragmaOverrotation + +This operation applies a statistical overrotation to the next rotation gate in the circuit, which matches the name given in the `gate` parameter of `PragmaOverrotation` and the involved qubits provided in `qubits`. The applied overrotation corresponds to adding a random number to the rotation angle. +The random number is drawn from a normal distribution with mean `0` and standard deviation whose variance is given by the input parameter `variance`, which is then multiplied by the `amplitude` parameter. + +### PragmaBoostNoise + +This operation boosts noise and overrotations in the circuit. The input parameter `noise_coefficient` defines the coefficient by which the noise is boosted, *i.e.* the number by which the `gate_time` is multiplied. + +### PragmaSleep + +This operation makes the quantum computer hardware, that provides this functionality, wait a given amount of time (`sleep_time`). Waiting for a given time can increase the effect of continuous noise on the result of running a quantum circuit. This is sometimes used in noise-extrapolation error mitigation techniques. \ No newline at end of file diff --git a/documentation/src/circuits/pragma.md b/documentation/src/circuits/pragma.md new file mode 100644 index 000000000..b3677974f --- /dev/null +++ b/documentation/src/circuits/pragma.md @@ -0,0 +1,15 @@ +# Pragma Operations + +Pragma operations in qoqo/roqoqo are operations that are _not_ part of the set of operations that can run on all universal quantum computers. + +Pragma operations can be used to: + +* Annotate a quantum circuit with additional information that is not necessary for execution (e.g. `PragmaGlobalPhase`, `PragmaStartDecompositionBlock`) +* Apply operations that lead to a repeated execution of a circuit (`PragmaRepeatedMeasurement`, `PragmaSetNumberOfMeasurements`) +* Apply operations that are only available on specific hardware (e.g. `PragmaChangeDevice`, `PragmaSleep`) +* Apply operations that are only available on a simulator (e.g. `PragmaSetStateVector`, `PragmaGetStateVector`) +* Model noise ([see also](noise.md)) +* Model error sources (`PragmaOverrotation`) + +For a full list of available Pragma operations see the API documentation of [roqoqo](https://docs.rs/roqoqo/latest/roqoqo/operations/index.html) + and [qoqo](https://hqsquantumsimulations.github.io/qoqo/generated/generated/qoqo.operations.html). diff --git a/documentation/src/circuits/readout.md b/documentation/src/circuits/readout.md new file mode 100644 index 000000000..c68a74c00 --- /dev/null +++ b/documentation/src/circuits/readout.md @@ -0,0 +1,102 @@ +# Readout + +To obtain results from running a quantum circuit, the quantum computer needs to return classical information. +qoqo/roqoqo uses register-based readouts where all classical information is returned from the quantum circuit using classical registers declared at the start of the circuit. +Classical registers can contain three types of classical data: + +* Bit (or bool) +* Float (f64/double) +* Complex. + +Each register is declared in a `Circuit` by a Pragma operation setting the register name and a length. The Pragma operation also declares whether the register is an output or not. +After being declared at the start of the circuit, information is written to the registers in the `Circuit` by `Measurement` or `Pragma` operations. +If the register is declared as an output register, it is returned after the execution of the circuit. + +A python example: + +```python +from qoqo import Circuit +from qoqo import operations as ops + +circuit = Circuit() +# A bit register that is not returned +circuit += ops.DefinitionBit("bit_register", length=2, is_output=False) +# A float register that is returned +circuit += ops.DefinitionFloat("float_register", length=2, is_output=True) +# A complex register that is not returned +circuit += ops.DefinitionComplex("complex_register", length=3, is_output=False) +``` + +A Rust example: + +```rust +use roqoqo::Circuit; +use roqoqo::operations; + +fn main(){ +let mut circuit = Circuit::new(); +// A bit register of length 2 that is not returned +circuit += operations::DefinitionBit::new("bit_register".to_string(), 2, false); +// A float register of length 2 that is returned as an output of the circuit +circuit += operations::DefinitionFloat::new("float_register".to_string(), 2, true); +// A complex register of length 3 that is not returned as an output +circuit += operations::DefinitionComplex::new("complex_register".to_string(), 3, false); +} +``` + +## Writing to registers + +Information is written to registers by the `MeasureQubit` operation or Pragma operations in a quantum circuit. + +* On quantum computing _hardware_ only _projective_ measurements into a bit register are available, that is a measurement in the `Z`-basis yielding `0` or `1`. +* On _simulators_ one can also read out the full state vector or density matrix into a complex register. + +`MeasureQubit` corresponds directly to a _projectivce_ measurement. By definition, projective measurements are available on universal quantum computers. +`PragmaRepeatedMeasurement` is shorthand for repeatedly running the circuit and applying a projective measurement each time. While it is not necessarily available on every [backend](backends.md) it is compatible with hardware quantum computers. + +As shown in the example below, the operation `MeasureQubit` can be used to provide measurement instructions for each individual qubit. The input parameter `qubit` specifies the qubit to be measured, whereas the parameter `readout_index` defines the position in the classical register `readout` where the measurement value of the `qubit` is stored. The explicit assignment of a qubit measurement to a readout register index can be used to handle qubit remapping in a quantum circuit. + +When supported by the backend, `PragmaRepeatedMeasurement` can be used instead of `MeasureQubit` command to provide the measurement instruction for all qubits in `qubit_mapping` that needs to be repeated N times (`number_measurements`). For further available Pragma measurement instructions, please refer to the section [Pragma operations](pragma.md). + +Setting up readouts in Python: + +```python +from qoqo import Circuit +from qoqo import operations as ops + +circuit = Circuit() +# Add a Bit register to the circuit for the qubit readout +circuit += ops.DefinitionBit("bit_register", 2, is_output = True) +# Add measurement instructions for each qubit, when using hardware +circuit += ops.MeasureQubit(qubit=0, readout="bit_register", readout_index=0) +circuit += ops.MeasureQubit(qubit=1, readout="bit_register", readout_index=1) + +# Alternatively, define a Complex register to readout the state vector +circuit += ops.DefinitionComplex("complex_register", 3, is_output = False) +# Measure the state vector when running the circuit on a simulator +circuit += ops.PragmaGetStateVector("complex_register", None) +``` + +Setting up readouts in Rust: + +```rust +use roqoqo::Circuit; +use roqoqo::operations; + + +let mut circuit = Circuit::new(); +// Add a Bit register to the circuit for the qubit readout +circuit += operations::DefinitionBit::new("bit_register".to_string(), 2, true); +// Add measurement instructions for each qubit, when using hardware +circuit += operations::MeasureQubit::new(0, "bit_register".to_string(), 0); +circuit += operations::MeasureQubit::new(1, "bit_register".to_string(), 1); + +// Alternatively, define a Complex register to readout the state vector +circuit += operations::DefinitionComplex::new( + "complex_register".to_string(), 3, false, +); +// Measure the state vector when running the circuit on a simulator +circuit += operations::PragmaGetStateVector::new( + "complex_register".to_string(), None, +); +``` diff --git a/documentation/src/circuits/unitary.md b/documentation/src/circuits/unitary.md new file mode 100644 index 000000000..b864b17ea --- /dev/null +++ b/documentation/src/circuits/unitary.md @@ -0,0 +1,13 @@ +# Unitary Operations + +Unitary operations or gate operations are operations that can be executed on all universal quantum computers. The operations correspond to unitary transformations of the state of a quantum computer. + +## Unitary Matrix + +Gate operations in qoqo/roqoqo provide a `unitary_matrix()` method that returns the definition of the gate in matrix form. This definition ignores the qubits the gates acts on to fit in the smallest possible matrix dimension. + +* For single-qubit gates, the created matrix always corresponds to `qubit=0` and has dimension 2x2. +* For two-qubit gates, the created matrix always corresponds to `control=1`, `target=0` and has dimension a 4x4. See also the state ordering [conventions](../conventions.md). +* For multi-qubit gates, the created matrix always corresponds to `qubits=[0..N]` where `N` is the number of qubits in the qubit vector of the multi-qubit gate. + +For a list of unitary operations see [gate operations](../gate_operations/intro.md). diff --git a/documentation/src/conventions.md b/documentation/src/conventions.md new file mode 100644 index 000000000..9011732d3 --- /dev/null +++ b/documentation/src/conventions.md @@ -0,0 +1,82 @@ +# Conventions + +This section gives a quick overview of some of the conventions used in qoqo/roqoqo. + +## Definitions + +* `operation`: An atomic instruction applied to a quantum computer (or simulated quantum computer). +* `gate`: An `operation` that corresponds to a unitary transformation of the state of the quantum computer and can be implemented on all universal quantum computers. +* `qubit`: A quantum bit. Can be in a superposition of two basis states. +* `Circuit`: A linear sequence of `operations`. + +## Qubit states + +For the two basis states of a single qubit we define + +\\[ + \left\| 0 \right> = \left|\textrm{false} \right> = \left| \uparrow \right> = \begin{pmatrix} + 1 \\\\ + 0 + \end{pmatrix} \\\\ + \\]. + + \\[ + \left \|1 \right> = \left|\textrm{true} \right> = \left| \downarrow \right> = \begin{pmatrix} + 0 \\\\ + 1 + \end{pmatrix} \\\\ + \\]. + +Before any operations are applied in a circuit a quantum computer is always assumed to be in the zero state (all qubits in state `|0>`). + +### Note + +This convention implies that `|0>` is the **excited** state with respect to the `Z` Pauli operator and `|1>` is the **ground** state. This is in contract with the physical implementation of qubits, where `|0>` typically corresponds to the state with lower energy and damping will lead to the system relaxing from `|1>` to `|0>`. + +This means that in this convention, when identifying the qubits with spins with respect to the `Z` operator, the system starts out in the highest energy case and damping leads to a heating effect where the system population shifts to higher energy spin states. + +## Endianness + +qoqo and roqoqo use little-endian encoding, where the least significant qubit is at the smallest memory address (or at the lowest index in a vector and at the rightmost entry when writing the qubit state as a sequence of `0` and `1` like a binary number). + +For a two-qubit state space we write the states of the qubits in the following order: + \\[ + \left|00 \right> = \textrm{state} 0 \\\\ + \left|01 \right> = \textrm{state} 1 \\\\ + \left|10 \right> = \textrm{state} 2 \\\\ + \left|11 \right> = \textrm{state} 3 \\\\ + \\]. + +## Operation order + + When adding qoqo/roqoqo operations to circuits, the first operation added will be executed first. When writing qoqo/roqoqo operations, they are read left to right. This leads to an inversion of the order when transcribing to matrix form, where the matrix to the right acts first. + + \\[ + \textrm{PauliX}(0) \cdot \textrm{PauliZ}(0) \\\\ = + \textrm{PauliZ(0).unitary_matrix()} \cdot \textrm{PauliX(0).unitary_matrix()} \\\\ + = \begin{pmatrix} + 1 & 0 \\\\ + 0 & -1 + \end{pmatrix} \begin{pmatrix} + 0 & 1 \\\\ + 1 & 0 + \end{pmatrix} + \\]. + +## Qubit naming + +qoqo uses a unified naming scheme for qubits in operations + +* In single-qubit operations, the qubit is always referred to as `qubit`, +* In two-qubit gates, the two qubits are referred to as `control` and `target`, +* In multi-qubit gates, the ordered list/vector of qubits the gates acts on is referred to as `qubits`. + +When initializing two-qubit gates, the `control` is always the first argumemt and `target` the second argument. + +## Unitary Matrix + +Unitary operations in qoqo/roqoqo provide a `unitary_matrix()` method that returns the definition of the gate in matrix form. This definition ignores the qubits of the gate to fit in the smallest possible matrix dimension. + +* For single-qubit gates, the created matrix always corresponds to `qubit=0` and has a 2x2-dimension. +* For two-qubit gates, the created matrix always corresponds to `control=1`, `target=0` and is a 4x4-dimensional matrix. This convention corresponds to the little-endian encoding described above. +* For multi-qubit gates, the created matrix always corresponds to `qubits=[0..N]` where `N` is the number of qubits in the qubit vector of the multi-qubit gate. diff --git a/documentation/src/devices.md b/documentation/src/devices.md new file mode 100644 index 000000000..3ad0289c6 --- /dev/null +++ b/documentation/src/devices.md @@ -0,0 +1,110 @@ +# Devices + +When working with quantum circuits it is often necessary to know the topology of a target quantum device. Device properties can also be used by backends, for example to accurately simulate a given quantum device. +qoqo/roqoqo defines an interface for obtaining the device topology. The interface is defined by roqoqo's `Device` trait. Additionally qoqo/roqoqo provides some simple devices that can be used to quickly define simple device topologies. + +Devices based on the roqoqo `Device` trait can be abstract devices or backend devices. + +**Abstract devices** contain abstract information about the device topology and the available gates. + +**Backend devices** are devices that are implemented by a roqoqo [backend](backends.md). They can specify additional information for accessing the device on the backend and can contain additional information. The devices also contain all the information of the abstract devices. + +A typical example for abstract devices are linear chains of square lattices in which two-qubit gate operations are only available between neighboring qubits. + +It is defined by the decoherence rates `M` and the (pseudo-)time needed to execute a quantum operation. + +The matrix representation of the decoherence rates of the Lindblad equation can be obtained by calling the method `qubit_decoherence_rates()` of a device. + +The time required for a gate operation can be obtained from the methods `single_qubit_gate_time()`, `two_qubit_gate_time()`, and `multi_qubit_gate_time()` for a specific type of gate (defined by its name) and the qubits the gate should act on. +The gate time method can also be used to query the topology and available gate operations on a device. If a specific type of gate operation is not available on the given qubits, the gate time method will return `None`. + +For further details of the `Device` trait please refer to the API documentation of [roqoqo::devices](https://docs.rs/roqoqo/latest/roqoqo/devices/index.html) (Rust core) + +## Simple Devices + +qoqo/roqoqo provide three simple devices + +* `GenericDevice` +* `AllToAllDevice` +* `SquareLatticeDevice` + +The `GenericDevice` is the most basic device. It simply contains all available gate operations, the corresponding gate times and the decoherence rate for each qubit in internal HashMaps. It can be used to create custom devices and as a device interchange format. As part of the `Device` interface, each device can be exported as a `GenericDevice` with the `to_generic_device` function. The `GenericDevice` is also used to exchange device data via JSON files or REST API calls. + +```rust +use roqoqo::devices::Device; +use roqoqo::devices::{GenericDevice, AllToAllDevice}; +use ndarray::array; +// Create a two-qubit device +let mut generic_device = GenericDevice::new(2); +// Create a comparison two-qubit device with `RotateZ` and `CNOT` as the only gates and 1.0 as the default gate time +let all_to_all = AllToAllDevice::new(2, &["RotateZ".to_string()], &["CNOT".to_string()], 1.0); + +generic_device.set_single_qubit_gate_time("RotateZ", 0, 1.0).unwrap(); +generic_device.set_single_qubit_gate_time("RotateZ", 1, 1.0).unwrap(); +generic_device.set_two_qubit_gate_time("CNOT", 0, 1, 1.0).unwrap(); +generic_device.set_two_qubit_gate_time("CNOT", 1, 0, 1.0).unwrap(); +assert_eq!(generic_device, all_to_all.to_generic_device()); +``` + +```python +from qoqo import devices +import numpy as np + +# Create a two-qubit device +generic_device = devices.GenericDevice(2) +# Create a comparison two-qubit device with `RotateZ` and `CNOT` as the only gates and 1.0 as the default gate time +all_to_all = devices.AllToAllDevice(2, ["RotateZ"], ["CNOT"], 1.0) + +generic_device.set_single_qubit_gate_time("RotateZ", 0, 1.0) +generic_device.set_single_qubit_gate_time("RotateZ", 1, 1.0) +generic_device.set_two_qubit_gate_time("CNOT", 0, 1, 1.0) +generic_device.set_two_qubit_gate_time("CNOT", 1, 0, 1.0) +assert generic_device == all_to_all.generic_device() +``` + +The `AllToAllDevice` can be used to quickly create a device with all-to-all connectivity. Additionally to the `set_single_qubit_time` type functions which are identical to the `GenericDevice`, it provides functions to set the gate time on *all* gates of a certain type and set the decoherence rates of *all* qubits. When setting these attributes for *all* of the qubits on the device, the `AllToAllDevice` uses a builder pattern, in order for the user to be able to chain such calls. This is demonstrated below. + +```rust +use roqoqo::devices::Device; +use roqoqo::devices::{GenericDevice, AllToAllDevice}; +use ndarray::array; + +// Create a two-qubit device with `RotateZ` and `CNOT` as the only gates and 1.0 as the default gate time +let mut all_to_all = AllToAllDevice::new(2, &["RotateZ".to_string()], &["CNOT".to_string()], 1.0); +// Set a new time for all RotateZ gates +let mut all_to_all = all_to_all.set_all_single_qubit_gate_times("RotateZ", 2.0); +// Set a new time for all CNOT gates +let mut all_to_all = all_to_all.set_all_two_qubit_gate_times("CNOT", 0.1); +``` + +```python +from qoqo import devices +import numpy as np + +# Create a two-qubit device with `RotateZ` and `CNOT` as the only gates and 1.0 as the default gate time +all_to_all = devices.AllToAllDevice(2, ["RotateZ"], ["CNOT"], 1.0) + +# Set a new time for all RotateZ gates and CNOT gates +all_to_all = all_to_all.set_all_single_qubit_gate_times("RotateZ", 2.0).set_all_two_qubit_gate_times("CNOT", 0.1) +``` + +The `SquareLatticeDevice` can be used to quickly initialize a device with two-qubit operations available between next-neighbours on a square lattice. The same methods as `AllToAllDevice` are available. + +```rust +use roqoqo::devices::Device; +use roqoqo::devices::{SquareLatticeDevice}; +let rows = 1; +let columns = 2; +// Create a two-qubit device with `RotateZ` and `CNOT` as the only gates and 1.0 as the default gate time +let square_lattice = SquareLatticeDevice::new(rows, columns, &["RotateZ".to_string()], &["CNOT".to_string()], 1.0); +``` + +```python +from qoqo import devices + +rows = 1 +columns = 2 + +# Create a two-qubit device with `RotateZ` and `CNOT` as the only gates and 1.0 as the default gate time +square_lattice = devices.SquareLatticeDevice(rows, columns, ["RotateZ"], ["CNOT"], 1.0) +``` diff --git a/documentation/src/gate_operations/intro.md b/documentation/src/gate_operations/intro.md new file mode 100644 index 000000000..64ca55d07 --- /dev/null +++ b/documentation/src/gate_operations/intro.md @@ -0,0 +1,68 @@ +# List of Gate Operations + +Operations are the atomic instructions in any quantum program that can be represented by qoqo/roqoqo. Gate operations are single-, two- or multi-qubit unitary operations that apply a unitary transformation and can be executed on any universal quantum computer. Mathematically, a gate can be represented by a unitary matrix. + +A list of the gate operations available in qoqo and roqoqo with their mathematical description is provided in this section. We differentiate between [single-qubit gates](single_qubit_gates.md) acting on a single qubit, [two-qubit gates](two_qubit_gates.md) applied on a pair of qubits and [multi-qubit gates](multi_qubit_gates.md) affecting a series of qubits. + +### Notation + +* A rotation angle is usually annotated with \\( \theta \\) and its corresponding argument is `theta`. +* For the phase angle, the symbol \\( \varphi \\) is used. +* The rotation angle \\( \phi \\) in the x-y plane is addressed by the argument name `phi`. +* \\( \sigma_x \\), \\( \sigma_y \\), \\( \sigma_z \\) are the Pauli matrices X, Y, Z +\\[ + \sigma_x = \begin{pmatrix} 0 & 1 \\\\ 1 & 0 \end{pmatrix} := X, \quad \sigma_y = \begin{pmatrix} 0 & -i \\\\ i & 0 \end{pmatrix} := Y, \quad \sigma_z = \begin{pmatrix} 1 & 0 \\\\ 0 & -1 \end{pmatrix} := Z +\\]. + +## [Single-qubit gates](single_qubit_gates.md) + +| Gate | Short Description | +|---------|---------| +| Hadamard | The Hadamard gate, to create a superposition of states, and so to change the basis. | +| InvSqrtPauliX | The inverse square root of the PauliX gate \\( e^{i \frac{\theta}{4} \sigma_x} \\). | +| PauliX | The Pauli X gate, a rotation with a fixed angle of \\( \frac{\pi}{2} \\), corresponds to a "flip" on x-axis. | +| PauliY | The Pauli Y gate, a rotation with a fixed angle of \\( \frac{\pi}{2} \\), corresponds to a "flip" on y-axis. | +| PauliZ | The Pauli Z gate, a rotation with a fixed angle of \\( \frac{\pi}{2} \\), corresponds to a "flip" on z-axis. | +| PhaseShiftState0 | Rotation around z-axis by angle \\(\theta\\) applied on state \\( \left \|0 \right> \\) results in a phase shift compared to RotateZ gate. | +| PhaseShiftState1 | Rotation around z-axis by angle \\(\theta\\) applied on state \\( \left\|1 \right> \\) results in phase shift compared to RotateZ gate. | +| RotateAroundSphericalAxis | Implements a rotation around an axis in spherical coordinates. | +| RotateX | The rotation gate around x-axis \\( e^{-i \frac{\theta}{2} \sigma_x} \\). | +| RotateXY | Implements a rotation around an axis in the x-y plane, where the axis is defined by an angle/spherical coordinates. | +| RotateY | The rotation gate around y-axis \\( e^{-i \frac{\theta}{2} \sigma_y} \\). | +| RotateZ | The rotation gate around z-axis \\( e^{-i \frac{\theta}{2} \sigma_z} \\). | +| SGate | The S gate. | +| SqrtPauliX | The square root of the PauliX gate \\( e^{-i \frac{\theta}{4} \sigma_x} \\). | +| TGate | The T gate. | + +## [Two-qubit gates](two_qubit_gates.md) + +| Gate | Short Description | +|---------|---------| +| Bogoliubov | The Bogoliubov DeGennes interaction gate. | +| CNOT | The controlled not gate, *e.g.* to entangle two qubits. | +| ComplexPMInteraction | The complex hopping gate. | +| ControlledPauliY | The controlled PauliY gate. | +| ControlledPauliZ | The controlled PauliZ gate. | +| ControlledPhaseShift | The controlled phase shift gate. | +| Fsim | The fermionic qubit simulation gate. | +| FSwap | The fermionic SWAP gate. | +| GivensRotation | The Givens rotation interaction gate in big endian notation: \\(e^{-\mathrm{i} \theta (X_c Y_t - Y_c X_t)}\cdot e^{-i \phi Z_t/2} \\). | +| GivensRotationLittleEndian | The Givens rotation interaction gate in little-endian notation: \\(e^{-\mathrm{i} \theta (X_c Y_t - Y_c X_t)}\cdot e^{-i \phi Z_c/2} \\). | +| InvSqrtISwap | The inverse square root of the ISwap gate. | +| ISwap | The complex swap gate. | +| MolmerSorensenXX | The fixed-phase Mølmer–Sørensen XX gate. | +| PhaseShiftedControlledZ | The phased-shifted controlled-Z gate. | +| PMInteraction | The transversal interaction gate. | +| Qsim | The qubit simulation gate. | +| SpinInteraction | The generalized, anisotropic XYZ Heisenberg interaction between spins. | +| SqrtISwap | The square root of the ISwap gate. | +| SWAP | The swap gate, to switch the positions of two qubits. | +| VariablesMSXX | The variable-angle Mølmer–Sørensen XX gate. | +| XY | The XY gate. | + +## [Multi-qubit gates](multi_qubit_gates.md) + +| Gate | Short Description | +|---------|---------| +| MultiQubitMS | The Mølmer–Sørensen gate between multiple qubits. | +| MultiQubitZZ | The multi-qubit PauliZ-product gate. | diff --git a/documentation/src/gate_operations/multi_qubit_gates.md b/documentation/src/gate_operations/multi_qubit_gates.md new file mode 100644 index 000000000..5d8ef5937 --- /dev/null +++ b/documentation/src/gate_operations/multi_qubit_gates.md @@ -0,0 +1,74 @@ +# Multi-qubit gates + +Multi-qubit gates in qoqo/roqoqo represent atomic instructions in any quantum computer that act on `N` number of qubits. In multi-qubit gates the `qubits` are given as a vector of all involved qubits. The unitary matrix of a multi-qubit gate corresponds to the notation based on `qubits=[0..N]` where `N` is the number of qubits in the qubit vector of the multi-qubit gate. + +## ControlledControlledPauliZ + +Implements the double-controlled PauliZ gate, with two control qubits and one target qubit. The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & -1 + \end{pmatrix} +\\]. + +## ControlledControlledPhaseShift + +Implements the double-controlled PhaseShift gate, with two control qubits and one target qubit. The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & e^{i \theta} + \end{pmatrix} +\\]. + +## MultiQubitMS + +The Mølmer–Sørensen gate between multiple qubits. The gate applies the rotation under the product of PauliX operators on multiple qubits. In mathematical terms, the gate applies + +\\[ + e^{-i * \theta/2 * X_{i0} * X_{i1} * ... * X_{in}}, +\\], + +whereas \\(\theta\\) is the angle parameter of the multi-qubit Mølmer–Sørensen gate and `i0`, `i1` *etc.* are the qubits the gate acts on. + +## MultiQubitZZ + +The multi-qubit PauliZ-product gate. he gate applies the rotation under the product of PauliZ operators on multiple qubits. + +\\[ + e^{-i * \theta/2 * Z_{i0} * Z_{i1} * ... * Z_{in}}, +\\], + +whereas \\(\theta\\) is the angle parameter of the multi-qubit PauliZ-product gate and `i0`, `i1` *etc.* are the qubits the gate acts on. + +## Toffoli + +Implements the Toffoli, with two control qubits and one target qubit. The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 + \end{pmatrix} +\\]. diff --git a/documentation/src/gate_operations/single_qubit_gates.md b/documentation/src/gate_operations/single_qubit_gates.md new file mode 100644 index 000000000..5760a1c05 --- /dev/null +++ b/documentation/src/gate_operations/single_qubit_gates.md @@ -0,0 +1,211 @@ +# Single-qubit gates + +Single-qubit gates in qoqo/roqoqo represent atomic instructions of any quantum computer that act on a single qubit. In single-qubit gates the qubit is always referred to as `qubit`. The unitary matrices of single-qubit gates are 2x2-dimensional matrices applied on single-qubit states \\( \left \|0 \right> \\) and \\( \left \|1 \right> \\), as defined in chapter [conventions](../conventions.md). + +The most general unitary operation acting on one qubit is of the form +\\[ + U =e^{\mathrm{i} \phi}\begin{pmatrix} + \alpha_r+\mathrm{i} \alpha_i & -\beta_r+\mathrm{i} \beta_i \\\\ + \beta_r+\mathrm{i} \beta_i & \alpha_r-\mathrm{i}\alpha_i + \end{pmatrix} + \\]. + +The parameters \\( \alpha_r \\), \\( \alpha_i \\) and \\( \beta_r \\), \\( \beta_i \\) can be accessed by the functions `alpha_r()`, `alpha_i()`, `beta_r()` and `beta_i()`, applied on the particular single-qubit gate. The full matrix form of the single-qubit gates available in qoqo/roqoqo is documented in this chapter. + +## GPi + +The unitary matrix of the GPi gate, which is often used in the context of ion traps, is defined as follows: + +\\[ + U = \begin{pmatrix} + 0 & e^{-i \theta}\\\\ + e^{i \theta} & 0 + \end{pmatrix} +\\]. + +## GPi2 + +The unitary matrix of the GPi2 gate, which is often used in the context of ion traps, is defined as follows: + +\\[ + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & -i e^{-i \theta}\\\\ + -i e^{i \theta} & 1 + \end{pmatrix} +\\]. + +## Hadamard + +The Hadamard gate when applied creates a superposition of states, and can therefore be used to change the basis if required. The definition of the gate in matrix form is given by: + +\\[ + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & 1 \\\\ + 1 & -1 + \end{pmatrix} +\\]. + +## InvSqrtPauliX + +The inverse square root of the PauliX gate \\( e^{\mathrm{i} \frac{\theta}{4} \sigma_x} \\) corresponds to a unitary matrix defined as: + +\\[ + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & \mathrm{i} \\\\ + \mathrm{i} & 1 + \end{pmatrix} +\\]. + + On some hardware platforms, the gate operation `InvSqrtPauliX` together with the operation `SqrtPauliX` are the only available rotation gates. This becomes relevant when it comes to the compilation of a quantum algorithm containing any arbitrary gates to the set of basic gates supported by the hardware device. + +## PauliX + +The Pauli X gate implements a rotation of \\( \frac{\pi}{2} \\) about the x-axis that can be used, for example, to flip the qubit state. The full matrix form is given by: + +\\[ + U = \begin{pmatrix} + 0 & 1 \\\\ + 1 & 0 + \end{pmatrix} +\\]. + +## PauliY + +The Pauli Y gate implements a rotation of \\( \frac{\pi}{2} \\) about the y-axis that can be used, for example, to flip the qubit state. The unitary matrix is defined as: + +\\[ + U = \begin{pmatrix} + 0 & -\mathrm{i} \\\\ + \mathrm{i} & 0 + \end{pmatrix} +\\]. + +## PauliZ + +The Pauli Z gate implements a rotation of \\( \frac{\pi}{2} \\) about the z-axis that can be used, for example, to flip the qubit state. The full matrix form is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 \\\\ + 0 & -1 + \end{pmatrix} +\\]. + +## PhaseShiftState0 + +This gate operation corresponds to the phase shift gate applied on state \\( \left \|0 \right> \\) compared to RotateZ gate. It implements a rotation around Z-axis by an arbitrary angle \\(\theta\\), also known as AC Stark shift of the state \\( \left \|0 \right> \\). The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + e^{\mathrm{i} \theta} & 0\\\\ + 0 & 1 + \end{pmatrix} +\\]. + +## PhaseShiftState1 + +This gate operation corresponds to the phase shift gate applied on state \\( \left \|1 \right> \\) compared to RotateZ gate. It implements a rotation around Z-axis by an arbitrary angle \\(\theta\\), also known as AC Stark shift of the state \\( \left \|1 \right> \\). The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0\\\\ + 0 & e^{\mathrm{i} \theta} + \end{pmatrix} +\\]. + +## RotateAroundSphericalAxis + +Implements a rotation around an axis in the x-y plane in spherical coordinates. The definition of the gate in matrix form is given by: + +\\[ + U = \begin{pmatrix} + \cos\left(\frac{\theta}{2}\right) & 0\\\\ + 0 & \cos\left(\frac{\theta}{2}\right) + \end{pmatrix} + \+ \begin{pmatrix} + -\mathrm{i} \sin\left(\frac{\theta}{2}\right) v_z & \sin\left(\frac{\theta}{2}\right) \left(-i v_x - v_y \right)\\\\ + \sin\left(\frac{\theta}{2}\right) \left(-\mathrm{i} v_x + v_y \right) & \mathrm{i} \sin\left(\frac{\theta}{2}\right) v_z + \end{pmatrix} +\\], + + +with \\[ v_x = \sin\left(\theta_{sph}\right) \cdot \cos\left(\phi_{sph}\right), \quad v_y = \sin\left(\theta_{sph}\right)\cdot\sin\left(\phi_{sph}\right), \quad v_z = \cos\left(\theta_{sph}\right). \\]. + +## RotateX + +The rotation gate around x-axis \\( e^{-\mathrm{i} \frac{\theta}{2} \sigma_x} \\). The definition of the unitary matrix is as follows: + +\\[ + U = \begin{pmatrix} + \cos(\frac{\theta}{2}) & -\mathrm{i} \sin(\frac{\theta}{2})\\\\ + -\mathrm{i}\sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2}) + \end{pmatrix} +\\]. + +## RotateXY + +Implements a rotation around an axis in the x-y plane, where the axis is defined by an angle/spherical coordinates. The unitary matrix representing the gate is given by: + +\\[ + U = \begin{pmatrix} + \cos \left(\frac{\theta}{2} \right) & -\mathrm{i} e^{-\mathrm{i} \phi} \sin \left(\frac{\theta}{2} \right) \\\\ + -\mathrm{i} e^{\mathrm{i} \phi} \sin \left( \frac{\theta}{2} \right) & \cos\left( \frac{\theta}{2} \right) + \end{pmatrix} + \\]. + +## RotateY + +The rotation gate around the y-axis \\( e^{-\mathrm{i} \frac{\theta}{2} \sigma_y} \\). The full matrix form is given by: + +\\[ + U = \begin{pmatrix} + \cos(\frac{\theta}{2}) & - \sin(\frac{\theta}{2})\\\\ + \sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2}) + \end{pmatrix} +\\]. + +## RotateZ + +The rotation gate around the z-axis \\( e^{-\mathrm{i} \frac{\theta}{2} \sigma_z} \\). The unitary matrix reads: + +\\[ + U = \begin{pmatrix} + \cos(\frac{\theta}{2}) -\mathrm{i} \sin(\frac{\theta}{2}) & 0\\\\ + 0 & \cos(\frac{\theta}{2}) + \mathrm{i} \sin(\frac{\theta}{2}) + \end{pmatrix} +\\]. + +## SGate + +The unitary matrix of the S gate, which is often used in the theory of error correction, reads: + +\\[ + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & 0 \\\\ + 0 & \mathrm{i} + \end{pmatrix} +\\]. + +## SqrtPauliX + +The square root of the PauliX gate \\( e^{-\mathrm{i} \frac{\theta}{4} \sigma_x} \\). The full matrix form is given by: + +\\[ + U = \frac{1}{\sqrt(2)}\begin{pmatrix} + 1 & -\mathrm{i} \\\\ + -\mathrm{i} & 1 + \end{pmatrix} +\\]. + +On some hardware platforms, the gate operation `SqrtPauliX` together with the operation `InvSqrtPauliX` are the only available rotation gates. This becomes relevant when it comes to the compilation of a quantum algorithm containing any arbitrary gates to the set of basic gates supported by the hardware device. + +## TGate + +The unitary matrix of the T gate, which is often used in the theory of error correction, is defined as follows: + +\\[ + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & 0 \\\\ + 0 & e^{\mathrm{i} \frac{\pi}{4}} + \end{pmatrix} +\\]. diff --git a/documentation/src/gate_operations/two_qubit_gates.md b/documentation/src/gate_operations/two_qubit_gates.md new file mode 100644 index 000000000..c077441c2 --- /dev/null +++ b/documentation/src/gate_operations/two_qubit_gates.md @@ -0,0 +1,358 @@ +# Two-qubit gates + +Two-qubit gates in qoqo/roqoqo represent atomic instructions of any quantum computer that act on a pair of qubits. In two-qubit gates the two qubits are referred to as `control` and `target`. When initializing two-qubit gates, the `control` is always the first argument and `target` the second argument. For two-qubit gates, the created matrix always corresponds to `control=1`, `target=0`, and is a 4x4-dimensional matrix. This convention corresponds to the little-endian encoding as described in chapter [conventions](../conventions.md). The full matrix form of the two-qubit gates implemented in qoqo/roqoqo is documented in this chapter. + +The given form of the unitary matrix is consistent with the following ordering of qubit states in a two-qubit state space: + + \\[ + \left|00 \right> = \textrm{state} 0 \\\\ + \left|01 \right> = \textrm{state} 1 \\\\ + \left|10 \right> = \textrm{state} 2 \\\\ + \left|11 \right> = \textrm{state} 3 \\\\ + \\]. + +## Bogoliubov + +The Bogoliubov DeGennes gate representing interactions of the form: +\\[ + e^{-\mathrm{i} \mathrm{Re}(\Delta)\cdot(X_c X_t - Y_c Y_t)/2 + \mathrm{Im}(\Delta)\cdot(X_c Y_t+Y_c X_t)/2}, + \\], + +where \\(X_c\\) is the Pauli matrix \\(\sigma_x\\) acting on the control qubit, and \\(Y_t\\) is the Pauli matrix \\(\sigma_y\\) acting on the target qubit, and \\( \Delta \\) is the complex Bogoliubov interaction strength. + +The full matrix form is given by: + +\\[ + U = \begin{pmatrix} + \cos(|\Delta|) & 0 & 0 & \mathrm{i} \sin(|\Delta|) e^{\mathrm{i} \cdot \varphi(\Delta)} \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 \\\\ + \mathrm{i} \sin(|\Delta|) e^{-\mathrm{i} \cdot \varphi(\Delta)} & 0 & 0 & \cos(|\Delta|) + \end{pmatrix} +\\], + +with the value \\(|\Delta|\\) of the complex Bogoliubov interaction strength \\( \Delta \\), and its phase angle \\(\varphi(\Delta)\\). + +## CNOT + +The controlled not gate can be used to entangle two qubits. The unitary matrix for the CNOT gate is defined as: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & 1 \\\\ + 0 & 0 & 1 & 0 + \end{pmatrix} + \\]. + + ## ComplexPMInteraction + +This gate implements the complex hopping operation of the form: + +\\[ + e^{-\mathrm{i} \left[ \mathrm{Re}(\theta) \cdot (X_c X_t + Y_c Y_t) - \mathrm{Im}(\theta) \cdot (X_c Y_t - Y_c X_t) \right] } , +\\], + +where \\(X_c\\) is the Pauli matrix \\(\sigma_x\\) acting on the control qubit, and \\(Y_t\\) is the Pauli matrix \\(\sigma_y\\) acting on the target qubit. The complex parameter \\( \theta \\) gives the strength of the rotation. + +## ControlledPauliY + +The controlled PauliY gate applies the PauliY gate on the `target` qubit based on the value of the `control` qubit. The corresponding unitary matrix reads: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & -\mathrm{i} \\\\ + 0 & 0 & \mathrm{i} & 0 + \end{pmatrix} + \\]. + +## ControlledPauliZ + +The controlled PauliZ gate applies the PauliZ gate on the `target` qubit controlled by the `control` qubit. The definition for the unitary matrix is as follows: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 \\\\ + 0 & 0 & 0 & -1 + \end{pmatrix} + \\]. + +## ControlledPhaseShift + +The controlled phase shift gate implements a phase shift applied on `target` qubit based on the value of the `control` qubit. The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 \\\\ + 0 & 0 & 0 & e^{\mathrm{i} \theta} + \end{pmatrix} +\\]. + +## ControlledRotateX + +The controlled RotateX implements a RotateX gate applied on `target` qubit based on the value of the `control` qubit. The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & \cos(\frac{\theta}{2}) & -i \sin(\frac{\theta}{2}) \\\\ + 0 & 0 & -i \sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2}) + \end{pmatrix} +\\]. + +## ControlledRotateXY + +The controlled RotateXY implements a RotateXY gate applied on `target` qubit based on the value of the `control` qubit. The unitary matrix is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & \cos(\frac{\theta}{2}) & -i e^{-i \phi} \sin(\frac{\theta}{2}) \\\\ + 0 & 0 & -i e^{-i \phi} \sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2}) + \end{pmatrix} +\\]. + +## Fsim + +The fermionic qubit simulation gate that can be represented as the following unitary matrix: + +\\[ + U = \begin{pmatrix} + \cos(\Delta) & 0 & 0 & \mathrm{i} \sin(\Delta) \\\\ + 0 & -\mathrm{i} \sin(t) & \cos(t) & 0 \\\\ + 0 & \cos(t) & -\mathrm{i} \sin(t) & 0 \\\\ + -\sin(\Delta) \cdot e^{-\mathrm{i} U} & 0 & 0 & -\cos(\Delta) \cdot e^{-\mathrm{i} U} + \end{pmatrix} +\\], + +where `t` is the hopping strength, `U` is the interaction strength and \\( \Delta \\) is the Bogoliubov interaction strength. + +_Note_: The qubits have to be adjacent, *i.e.*, \\( |i-j|=1 \\) has to hold. This is the only case in which the gate is valid as a two-qubit gate (due to the Jordan-Wigner transformation). + + +## FSwap + +The fermionic SWAP gate can be represented as the following unitary matrix: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & -1 + \end{pmatrix} +\\]. + +## GivensRotation + +The Givens rotation interaction gate in big endian notation: +\\[ + e^{-\mathrm{i} \theta (X_c Y_t - Y_c X_t)}\cdot e^{-\mathrm{i} \phi Z_t/2}, +\\], + +where \\(X_c\\) is the Pauli matrix \\(\sigma_x\\) acting on the control qubit, \\(Y_t\\) is the Pauli matrix \\(\sigma_y\\) acting on the target qubit, and \\(Z_t\\) is the Pauli matrix \\(\sigma_z\\) acting on the target qubit. + +The unitary matrix representation is: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & \cos(\theta) \cdot e^{\mathrm{i} \phi} & \sin(\theta) & 0 \\\\ + 0 & -\sin(\theta) \cdot e^{\mathrm{i} \phi} & \cos(\theta) & 0 \\\\ + 0 & 0 & 0 & e^{\mathrm{i} \phi} + \end{pmatrix} +\\]. + +Further information on the endianness in context of qoqo can be found in the section [conventions](../conventions.md). + +## GivensRotationLittleEndian + +The Givens rotation interaction gate in little-endian notation: +\\[ + e^{-\mathrm{i} \theta (X_c Y_t - Y_c X_t)}\cdot e^{-\mathrm{i} \phi Z_c/2}, +\\], +with Pauli matrices \\( X := \sigma_x\\), \\( Y := \sigma_y\\), \\( Z := \sigma_z\\) and indices `c` for control qubit and `t` for target qubit. + +The unitary matrix form is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & \cos(\theta) & \sin(\theta) & 0 \\\\ + 0 & -\sin(\theta) \cdot e^{\mathrm{i} \phi} & \cos(\theta) \cdot e^{\mathrm{i} \phi} & 0 \\\\ + 0 & 0 & 0 & e^{\mathrm{i} \phi} + \end{pmatrix} +\\]. + +## InvSqrtISwap + +The inverse square root of the ISwap gate has the full matrix form: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & \frac{1}{\sqrt{2}} & \frac{-\mathrm{i}}{\sqrt{2}} & 0 \\\\ + 0 & \frac{-\mathrm{i}}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 \\\\ + 0 & 0 & 0 & 1 + \end{pmatrix} +\\]. + +## ISwap + +The unitary matrix of the complex ISwap gate reads: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 0 & \mathrm{i} & 0 \\\\ + 0 & \mathrm{i} & 0 & 0 \\\\ + 0 & 0 & 0 & 1 + \end{pmatrix} +\\]. + +## MolmerSorensenXX + +This gate implements the fixed-phase MolmerSorensen XX operation as introduced in this [reference](http://arxiv.org/abs/1705.02771). The MolmerSorensenXX gate can be used to represent global laser-driver entangling operations, for example in the context of quantum computing hardware based on trapped ions. The unitary matrix is given by: + +\\[ + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & 0 & 0 & -\mathrm{i} \\\\ + 0 &1 & -\mathrm{i} & 0 \\\\ + 0 & -\mathrm{i} & 1 & 0 \\\\ + -\mathrm{i} & 0 & 0 & 1 + \end{pmatrix} +\\]. + +## PhaseShiftedControlledPhase + +The phase-shifted controlled PhaseShift gate of the form: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & e^{\mathrm{i} \phi} & 0 & 0 \\\\ + 0 & 0 & e^{\mathrm{i} \phi} & 0 \\\\ + 0 & 0 & 0 & e^{\mathrm{i} (2\cdot\phi - \pi)} + \end{pmatrix} +\\], + +with the single-qubit phase \\( \phi \\). + +## PhaseShiftedControlledZ + +The phase-shifted controlled-Z gate, modified, *i.e.* phase-shifted ControlledPauliZ two-qubit gate, which corresponds to the equation (1) in the original [reference](https://arxiv.org/pdf/1908.06101.pdf). The full matrix form is defined as: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & e^{\mathrm{i} \phi} & 0 & 0 \\\\ + 0 & 0 & e^{\mathrm{i} \phi} & 0 \\\\ + 0 & 0 & 0 & e^{\mathrm{i} (2\cdot\phi - \pi)} + \end{pmatrix} +\\], + +with the single-qubit phase \\( \phi \\). + +## PMInteraction + +The transversal interaction gate of the form: + +\\[ + e^{-\mathrm{i} \theta (X_c X_t + Y_c Y_t)} = e^{-\mathrm{i} \theta (\sigma^+_c \sigma^-_t + \sigma^-_c \sigma^+_t)} , +\\], + +where \\(X_c\\) is the Pauli matrix \\(\sigma_x\\) acting on the control qubit, and \\(Y_t\\) is the Pauli matrix \\(\sigma_y\\) acting on the target qubit. The parameter \\( \theta \\) gives the strength of the rotation. + +## Qsim + +The Qsim gate implements a `SWAP` between two spins and a `SpinInteraction` simultaneously. In this context, spins are meant to be localized and therefore have distinguishable degrees of freedom. The definition of the Qsim gate in matrix form is given by: + + +\\[ + U = \begin{pmatrix} + \cos(x-y) \cdot e^{-\mathrm{i} z} & 0 & 0 & -\mathrm{i}\sin(x-y)\cdot e^{-\mathrm{i} z}\\\\ + 0 & -\mathrm{i} \sin(x+y)\cdot e^{\mathrm{i} z} & \cos(x+y)\cdot e^{\mathrm{i} z} & 0 \\\\ + 0 & \cos(x+y)\cdot e^{\mathrm{i} z}& -\mathrm{i} \sin(x+y)\cdot e^{\mathrm{i} z} & 0 \\\\ + -\sin(x-y)\cdot e^{-\mathrm{i} z} & 0 & 0 & \cos(x-y)\cdot e^{-\mathrm{i} z} + \end{pmatrix} +\\], + +where x, y, z are the prefactors of the products of Pauli matrices \\(X_c X_t\\), \\(Y_c Y_t\\), \\(Z_c Z_t\\) acting on the control (`c`) and target (`t`) qubits that are part of the spin interaction. + +## SpinInteraction + +The gate represents the generalized, anisotropic XYZ Heisenberg interaction between spins of the form: + +\\[ + e^{-\mathrm{i} (x \cdot X_c X_t + y \cdot Y_c Y_t + z \cdot Z_c Z_t)} , +\\], + +where x, y, z are the prefactors of the products of Pauli matrices \\(X_c X_t\\), \\(Y_c Y_t\\), \\(Z_c Z_t\\) acting on control (`c`) and target (`t`) qubit, +with the underlying definition \\(XX \equiv \sigma_x \sigma_x\\), \\(YY \equiv \sigma_y \sigma_y\\) and \\(ZZ \equiv \sigma_z \sigma_z\\). + +In this context, spins are meant to be localized and therefore have distinguishable degrees of freedom. + +## SqrtISwap + +The square root of the ISwap gate is represented by the matrix: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & \frac{1}{\sqrt{2}} & \frac{\mathrm{i}}{\sqrt{2}} & 0 \\\\ + 0 & \frac{\mathrm{i}}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 \\\\ + 0 & 0 & 0 & 1 + \end{pmatrix} +\\]. + +## SWAP + +The SWAP gate is used to change the positions between two qubits. For example, the SWAP gate is used by many compilation routines if the given connectivity on the quantum computing device is limited and the qubits need to be remapped in order to run a quantum program successfully on the quantum computing hardware. The full matrix form is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 \\\\ + 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & 1 + \end{pmatrix} +\\]. + +## VariablesMSXX + +The variable-angle MolmerSorensen XX gate as defined by the unitary matrix of the form: + +\\[ + U = \begin{pmatrix} + \cos(\theta/2) & 0 & 0 & -\mathrm{i} \sin(\theta/2) \\\\ + 0 & \cos(\theta/2) & -\mathrm{i} \sin(\theta/2) & 0 \\\\ + 0 & -\mathrm{i} \sin(\theta/2) & \cos(\theta/2) & 0 \\\\ + -\mathrm{i}\sin(\theta/2) & 0 & 0 & \cos(\theta/2) + \end{pmatrix} +\\]. + +In general, the MolmerSorensenXX gate can be used to represent global laser-driver entangling operations, for example in the context of quantum computing hardware based on trapped ions, as introduced in this [reference](http://arxiv.org/abs/1705.02771). + +## XY + +The definition of the XY gate in matrix form is given by: + +\\[ + U = \begin{pmatrix} + 1 & 0 & 0 & 0 \\\\ + 0 & \cos(\theta/2) & \mathrm{i} \sin(\theta/2) & 0 \\\\ + 0 & \mathrm{i} \sin(\theta/2) & \cos(\theta/2) & 0 \\\\ + 0 & 0 & 0 & 1 + \end{pmatrix} +\\]. + +It implements the same interaction as described by the `PMInteraction` gate but with a different prefactor. diff --git a/documentation/src/high-level/cheated.md b/documentation/src/high-level/cheated.md new file mode 100644 index 000000000..5b8911901 --- /dev/null +++ b/documentation/src/high-level/cheated.md @@ -0,0 +1,87 @@ +# Cheated Measurement + +A `Cheated` measurement in qoqo/roqoqo reads out the state vector or the density matrix of a quantum computer and obtains expectation values by multiplying the matrix representation of the observable with the state vector or multiplying the operator with the density matrix and taking the trace (respectively). + +`Cheated` measurements are only possible with simulator backends that can return the state vector or the density matrix of the quantum state. The expectation values are defined by a sparse matrix representation of the measured observables. Using `Cheated` measurements, expectation values can be obtained directly without decomposing operators into Pauli products and post-processing the raw output of quantum computers. + +```python +from qoqo import Circuit +from qoqo import operations as ops +from qoqo.measurements import Cheated, CheatedInput +from qoqo import QuantumProgram +from qoqo_quest import Backend +import numpy as np + +# initialize |psi> = (|0> + |1>)/ sqrt(2) +circuit = Circuit() +circuit += ops.Hadamard(0) + +# Add definition for state-vector readout +circuit += ops.DefinitionComplex("state_vec", 2, is_output=True) + +# The dictionary of the pauli matrix to measure for each qubit in the product in the form {qubit: pauli}. +# Allowed values to be provided for 'pauli' are: 1 = PauliX, 2 = PauliY, 3 = PauliZ. +x_matrix = np.array([[0, 1],[1, 0]]) +z_matrix = np.array([[1, 0],[0, -1]]) +h_matrix = 0.1 * x_matrix + 0.2 * z_matrix +operator = [(0,0, 0.2), (0,1, 0.1), (1,0, 0.1), (1,1, -0.2)] +# Directly get the state vector from the simulator backend +circuit += ops.PragmaGetStateVector(readout="state_vec", circuit=Circuit()) + +# Preparing the measurement input for CheatedPauliZProductInput +measurement_input = CheatedInput(number_qubits=1) +# Add the measured operator +measurement_input.add_operator_exp_val(name="", operator=operator, readout="state_vec") + +measurement = Cheated( + constant_circuit=None, + circuits=[circuit,], + input=measurement_input, +) +backend = Backend(1) + +result = backend.run_measurement(measurement) +print(result) + +``` + +```rust +use num_complex::Complex64; +use roqoqo::measurements::{Cheated, CheatedInput}; +use roqoqo::operations as ops; +use roqoqo::prelude::EvaluatingBackend; +use roqoqo::Circuit; +use roqoqo_quest::Backend; + +// initialize |psi> = (|0> + |1>)/ sqrt(2) +let mut circuit = Circuit::new(); +circuit += ops::Hadamard::new(0); + +// Add definition for state-vector readout +circuit += ops::DefinitionComplex::new("state_vec".to_string(), 2, true); + +// Defining the sparse operator +let operator: Vec<(usize, usize, Complex64)> = vec![ + (0, 0, 0.2.into()), + (0, 1, 0.1.into()), + (1, 0, 0.1.into()), + (1, 1, (-0.2).into()), +]; +// Directly get the state vector from the simulator backend +circuit += ops::PragmaGetStateVector::new("state_vec".to_string(), None); + +// Preparing the measurement input for CheatedPauliZProductInput +let mut measurement_input = CheatedInput::new(1); +// Add the measured operator +measurement_input.add_operator_exp_val("".to_string(), operator, "state_vec".to_string()).unwrap(); + +let measurement = Cheated { + constant_circuit: None, + circuits: vec![circuit], + input: measurement_input, +}; +let backend = Backend::new(1); + +let result = backend.run_measurement(&measurement); +println!("{:?}", result); +``` diff --git a/documentation/src/high-level/classical.md b/documentation/src/high-level/classical.md new file mode 100644 index 000000000..8753a650a --- /dev/null +++ b/documentation/src/high-level/classical.md @@ -0,0 +1,104 @@ +# ClassicalRegister Measurement + +A `ClassicalRegister` measurement returns the unprocessed register readouts of `Circuits`. +A `ClassicalRegister` measurement can be used when end-users want to perform their own post-processing, for instance when working with external tools that expect full measurement records. + +The registers are returned as a tuple of three dictionaries/HashMaps: + +* The collection of bit registers +* The collection of float registers +* The collection of complex registers + +A `ClassicalRegister` measurement does _not_ need a separate `measurement_input` since no post-processing takes place. + +To distinguish between a method returning expectation values and a method returning registers, the method `run_registers()` is used when executing a `ClassicalRegister` measurement. + +An example for running a `ClassicalRegister` measurement: + +```python +from qoqo import Circuit +from qoqo import operations as ops +from qoqo.measurements import ClassicalRegister +from qoqo import QuantumProgram +from qoqo_quest import Backend + +# initialize |psi> +init_circuit = Circuit() +init_circuit += ops.Hadamard(0) + +# Z-basis measurement circuit with 1000 shots +z_circuit = Circuit() +z_circuit += ops.DefinitionBit("ro_z", 1, is_output=True) +z_circuit += ops.PragmaRepeatedMeasurement("ro_z", 1000, None) + +# X-basis measurement circuit with 1000 shots +x_circuit = Circuit() +x_circuit += ops.DefinitionBit("ro_x", 1, is_output=True) +# Changing to the X basis with a Hadamard gate +x_circuit += ops.Hadamard(0) +x_circuit += ops.PragmaRepeatedMeasurement("ro_x", 1000, None) + +measurement = ClassicalRegister( + constant_circuit=init_circuit, + circuits=[z_circuit, x_circuit], +) + +# A quantum program is created from the measurement +program = QuantumProgram(measurement=measurement, input_parameter_names=[]) + +# Create a backend simulating one qubit. +backend = Backend(1) + +(bit_registers, float_registers, complex_registers) = program.run_registers(backend, []) +``` + +The same example in Rust: + +```Rust +use roqoqo::{Circuit, operations::*, registers::*, QuantumProgram}; +use roqoqo::measurements::ClassicalRegister; +use roqoqo::backends::{EvaluatingBackend, RegisterResult}; +use roqoqo_quest::Backend; +use std::collections::{HashMap, HashSet}; + +// initialize |psi> +let mut init_circuit = Circuit::new(); +init_circuit.add_operation(Hadamard::new(0)); + +// Z-basis measurement circuit with 1000 shots +let mut z_circuit = Circuit::new(); +z_circuit.add_operation(DefinitionBit::new("ro_z".to_string(), 1, true)); +z_circuit.add_operation( + PragmaRepeatedMeasurement::new("ro_z".to_string(), 1000, None), +); + +// X-basis measurement circuit with 1000 shots +let mut x_circuit = Circuit::new(); +x_circuit.add_operation(DefinitionBit::new("ro_x".to_string(), 1, true)); +// Changing to the X-basis with a Hadamard gate +x_circuit.add_operation(Hadamard::new(0)); +x_circuit.add_operation( + PragmaRepeatedMeasurement::new("ro_x".to_string(), 1000, None), +); + +let measurement = ClassicalRegister { + circuits: vec![z_circuit.clone(), x_circuit.clone()], + constant_circuit: Some(init_circuit.clone()), +}; + +// A quantum program is created from the measurement +let program = QuantumProgram::ClassicalRegister { + measurement, + input_parameter_names: vec![], +}; + +// Create a backend simulating one qubit +let backend = Backend::new(1); + +let result: RegisterResult = program.run_registers(backend.clone(), &[]); +let result_registers: ( + HashMap, + HashMap, + HashMap, +) = result.unwrap(); +``` diff --git a/documentation/src/high-level/intro.md b/documentation/src/high-level/intro.md new file mode 100644 index 000000000..81d4ec51c --- /dev/null +++ b/documentation/src/high-level/intro.md @@ -0,0 +1,37 @@ +# High-level interface: quantum programs + +In the definition of qoqo/roqoqo, a quantum program accepts input from a user/calling function and runs operations on a quantum computer. It then returns an output in the form of expectation values, instead of raw output from the quantum computer. +To represent quantum programs qoqo/roqoqo provides `QuantumProgram`. +It is intended as a high-level interface between a complex program and the quantum computer, which can be called (almost) as easily as a normal function and handles variable replacement and the post-processing of the raw output of the quantum computer/simulator. + +## Measurements + +Post-processing the raw output is handled by `measurements`. +For many applications, the measurement results of several circuits need to be combined to extract the required information. +`Measurement` objects group several quantum circuits and a `measurement input` that determines how the raw output is post-processed. +A qoqo `measurement` combines one optional `constant_circuit` that is always executed first and a list of `circuits` that are each executed after the constant circuit. +The type of `measurement` and `measurement input` depends on the type of readout used in the circuits. + +The following `measurements` are available in qoqo/roqoqo: + +* [PauliZProduct](pauliz.md), +* [ClassicalRegister](classical.md), +* [CheatedPauliZProduct](pauliz_cheated.md), +* [Cheated](cheated.md). + +The `PauliZProduct` measurement is based on measuring the product of PauliZ operators for given qubits. Combined with a basis rotation of the measured qubits, it can be used to measure arbitrary expectation values. It uses projective qubit readouts like `MeasureQubit` or `PragmaRepeatedMeasurement`. It can be run on real quantum computer hardware and simulators. For further details please refer to section [PauliZProduct](pauliz.md). + +The `ClassicalRegister` measurement returns the raw output of the classical registers written during circuit execution. + +The `CheatedPauliZProduct` measurement directly calculates operator expectation values from the expectation values of products of Pauli matrices. The Pauli product expectation values are read out by the `PragmaGetPauliProduct` operation. It can only be used on simulator backends. + +The `Cheated` measurement calculates expectation values by directly extracting the state vector `PragmaGetStateVector` or the density matrix `PragmaGetDensityMatrix` from a simulator and applying matrix multiplication. + +For examples how to construct measurement input and measurements see the pages for the separate measurement types. + +## Variable replacement + +qoqo/roqoqo supports symbolic parameters in Operations, for example the rotation angles \\( \theta \\) in a `RotateX` gate operation. A `Circuit` with symbolic parameters cannot be executed on real hardware or simulated. The symbolic parameters need to be replaced with real floating point numbers first. A QuantumProgram contains a list of the free parameters (`input_parameter_names`). +When calling its `run` method, it replaces the free parameters with the given input, executes the measurement on the given backend and returns the result. + +For an example how to `run` a `QuantumProgram` [see here](program.md). diff --git a/documentation/src/high-level/pauliz.md b/documentation/src/high-level/pauliz.md new file mode 100644 index 000000000..3523f0300 --- /dev/null +++ b/documentation/src/high-level/pauliz.md @@ -0,0 +1,127 @@ +# PauliZProduct Measurement + +The `PauliZProduct` measurement is based on measuring the product of PauliZ operators for given qubits. Combined with a basis rotation of the measured qubits, it can be used to measure arbitrary expectation values. It uses projective qubit readouts like `MeasureQubit` or `PragmaRepeatedMeasurement`. It can be run on real quantum computer hardware and simulators. + +As an example, let us consider the measurement of the following Hamiltonian +\\[ + \hat{H} = 0.1\cdot X + 0.2\cdot Z +\\] where `X` and `Z` are Pauli operators. The target is to measure \\(\hat{H} \\) with respect to a state +\\[ + |\psi> = (|0> + |1>)/\sqrt{2}. +\\]. + +The `constant_circuit` will be used to prepare the state \\( |\psi> \\) by applying the Hadamard gate. The given Hamiltonian includes `X` and `Z` terms that cannot be measured at the same time, since they are measured using different bases. The `circuits` list includes one quantum circuit that does not apply any additional gate and one circuit that rotates the qubit basis into the X-basis so that the expectation value `` is equivalent to the measurement of `` in the new basis. In this example, each measured Pauli product contains only one Pauli operator. For the post-processing of the measured results, the `PauliZProduct` measurement needs two more inputs provided by the object `PauliZProductInput`: + +* The definition of the measured Pauli products after basis transformations (`add_pauliz_product()`), +* The weights of the Pauli product expectation values in the final expectation values (`add_linear_exp_val()`). + +In general, one can measure the expectation values of the products of local Z operators, *e.g.* ``, ``, ``, ``, *etc.* The `PauliZProductInput` needs to define all of the products that are measured. In the given example, we will measure two products `` after a rotation in the X basis (corresponding to ``) and `` _without_ a rotation before the measurement. +The `PauliZProductInput` also defines the weights of the products in the final result. In the example below, 0.1 is the coefficient for the first product and 0.2 for the second. + +```python +from qoqo import Circuit +from qoqo import operations as ops +from qoqo.measurements import PauliZProduct, PauliZProductInput + +# initialize |psi> +init_circuit = Circuit() +init_circuit += ops.Hadamard(0) + +# Z-basis measurement circuit with 1000 shots +z_circuit = Circuit() +z_circuit += ops.DefinitionBit("ro_z", 1, is_output=True) +z_circuit += ops.PragmaRepeatedMeasurement("ro_z", 1000, None) + +# X-basis measurement circuit with 1000 shots +x_circuit = Circuit() +x_circuit += ops.DefinitionBit("ro_x", 1, is_output=True) +# Changing to the X basis with a Hadamard gate +x_circuit += ops.Hadamard(0) +x_circuit += ops.PragmaRepeatedMeasurement("ro_x", 1000, None) + +# Preparing the measurement input for one qubit +# The PauliZProductInput starts with just the number of qubits +# and if to use a flipped measurements set. +measurement_input = PauliZProductInput(1, False) +# Next, pauli products are added to the PauliZProductInput +# Read out product of Z on site 0 for register ro_z (no basis change) +z_basis_index = measurement_input.add_pauliz_product("ro_z", [0,]) +# Read out product of Z on site 0 for register ro_x +# (after basis change effectively a measurement) +x_basis_index = measurement_input.add_pauliz_product("ro_x", [0,]) + +# Last, instructions how to combine the single expectation values +# into the total result are provided. +# Add a result (the expectation value of H) that is a combination of +# the PauliProduct expectation values. +measurement_input.add_linear_exp_val( + "", {x_basis_index: 0.1, z_basis_index: 0.2}, +) + +measurement = PauliZProduct( + constant_circuit=init_circuit, + circuits=[z_circuit, x_circuit], + input=measurement_input, +) +``` + +The same example in Rust: + +```rust +use roqoqo::{Circuit, operations::*}; +use roqoqo::measurements::{PauliZProduct, PauliZProductInput}; +use std::collections::HashMap; + +// initialize |psi> +let mut init_circuit = Circuit::new(); +init_circuit.add_operation(Hadamard::new(0)); + +// Z-basis measurement circuit with 1000 shots +let mut z_circuit = Circuit::new(); +z_circuit.add_operation(DefinitionBit::new("ro_z".to_string(), 1, true)); +z_circuit.add_operation( + PragmaRepeatedMeasurement::new("ro_z".to_string(), 1000, None), +); + +// X-basis measurement circuit with 1000 shots +let mut x_circuit = Circuit::new(); +x_circuit.add_operation(DefinitionBit::new("ro_x".to_string(), 1, true)); +// Changing to the X-basis with a Hadamard gate +x_circuit.add_operation(Hadamard::new(0)); +x_circuit.add_operation( + PragmaRepeatedMeasurement::new("ro_x".to_string(), 1000, None), +); + +// Preparing the measurement input for one qubit +// The PauliZProductInput starts with just the number of qubits +// and if to use a flipped measurements set. +let mut measurement_input = PauliZProductInput::new(1, false); +// Next, pauli products are added to the PauliZProductInput +// Read out product of Z on site 0 for register ro_z (no basis change) +measurement_input + .add_pauliz_product("ro_z".to_string(), vec![0]) + .unwrap(); +// Read out product of Z on site 0 for register ro_x +// (after basis change effectively a measurement) +measurement_input + .add_pauliz_product("ro_x".to_string(), vec![0]) + .unwrap(); + +// Last, instructions how to combine the single expectation values +// into the total result are provided. +// Add a result (the expectation value of H) that is a combination +// of the PauliProduct expectation values. +measurement_input + .add_linear_exp_val( + "".to_string(), HashMap::from([(0, 0.1), (1, 0.2)]), + ) + .unwrap(); + +let measurement = PauliZProduct { + input: measurement_input, + circuits: vec![z_circuit.clone(), x_circuit.clone()], + constant_circuit: Some(init_circuit.clone()), + +println!("{:?}", measurement); +}; +``` diff --git a/documentation/src/high-level/pauliz_cheated.md b/documentation/src/high-level/pauliz_cheated.md new file mode 100644 index 000000000..eec0bbd71 --- /dev/null +++ b/documentation/src/high-level/pauliz_cheated.md @@ -0,0 +1,131 @@ +# CheatedPauliZProduct Measurement + +The `CheatedPauliZProduct` measurement in qoqo/roqoqo calculates expectation values based on the expectation values of products of Pauli operators. It uses the `PragmaGetPauliProduct` readout and can only be used on a simulator backend. + +The measurement input `CheatedPauliZProductInput` registers Pauli products and combines the expectation values of Pauli products into results just like the measurement input of a [PauliZProduct](pauliz.md) measurement. In contrast to the `PauliZProductInput`, however, the involved qubits of the Pauli product are defined in the `PragmaGetPauliProduct` and no basis rotation is necessary. + +The expectation values of Pauli products are directly derived from the state of a simulator in the backend and are exact on the level of the numerical accuracy of the simulator. The `CheatedPauliZProduct` operation can be used to benchmark an algorithm, assuming that the statistical error due to a finite amount of projective measurements vanishes. + +The `CheatedPauliZProduct` only requires running one `Circuit` compared to several for more complex `PauliZProduct` measurements and can be faster. + +## Example + +The following code measures the same observable as the [PauliZProduct](pauliz.md) example with the `CheatedPauliZProduct` measurement. + +Example in python: + +```python +from qoqo import Circuit +from qoqo import operations as ops +from qoqo.measurements import CheatedPauliZProduct, CheatedPauliZProductInput +from qoqo_quest import Backend + +# initialize |psi> = (|0> + |1>)/ sqrt(2) +circuit = Circuit() +circuit += ops.Hadamard(0) + +# Add definition for z-Basis readout +circuit += ops.DefinitionFloat("ro_z", 1, is_output=True) + +# Add definition for x-Basis readout +circuit += ops.DefinitionFloat("ro_x", 1, is_output=True) + +# The dictionary of the pauli matrix to measure for each qubit in the product in the form {qubit: pauli}. +# Allowed values to be provided for 'pauli' are: 1 = PauliX, 2 = PauliY, 3 = PauliZ. +pauliz_products = {0: 3} +paulix_products = {0: 1} +# PragmaGetPauliProduct works only on simulators and can be used several +# times since no projective measurements are applied +circuit += ops.PragmaGetPauliProduct(qubit_paulis=pauliz_products, readout="ro_z", circuit=Circuit()) +circuit += ops.PragmaGetPauliProduct(qubit_paulis=paulix_products, readout="ro_x", circuit=Circuit()) + +# Preparing the measurement input for CheatedPauliZProductInput +measurement_input = CheatedPauliZProductInput() +# Next, pauli products are added to the CheatedPauliZProductInput +z_basis_index = measurement_input.add_pauliz_product("ro_z") +x_basis_index = measurement_input.add_pauliz_product("ro_x") + +# Add a result (the expectation value of H) that is a combination of +# the PauliProduct expectation values. +measurement_input.add_linear_exp_val( + "", {z_basis_index: 0.1, x_basis_index: 0.2}, +) + +measurement = CheatedPauliZProduct( + constant_circuit=None, + circuits=[circuit,], + input=measurement_input, +) +backend = Backend(1) + +result = backend.run_measurement(measurement) +print(result) + +``` + +The same example in Rust: + +```rust + +use roqoqo::backends::{EvaluatingBackend, RegisterResult}; +use roqoqo::measurements::{CheatedPauliZProduct, CheatedPauliZProductInput}; +use roqoqo::{operations::*, Circuit, QuantumProgram}; +use std::collections::HashMap; +use roqoqo_quest::Backend; + +// initialize |psi> +let mut circuit = Circuit::new(); +circuit.add_operation(Hadamard::new(0)); + +// Add definition for z-Basis readout +circuit.add_operation(DefinitionFloat::new("ro_z".to_string(), 1, true)); +// Add definition for z-Basis readout +circuit.add_operation(DefinitionFloat::new("ro_x".to_string(), 1, true)); +// PragmaGetPauliProduct works only on simulators and can be used several +// times since no projective measurements are applied +circuit.add_operation(PragmaGetPauliProduct::new( + HashMap::from([(0, 3)]), + "ro_z".to_string(), + Circuit::new()), +); +circuit.add_operation(PragmaGetPauliProduct::new( + HashMap::from([(0, 1)]), + "ro_x".to_string(), + Circuit::new())); + +// Preparing the measurement input for CheatedPauliZProductInput + +let mut measurement_input = CheatedPauliZProductInput::new(); +// Next, pauli products are added to the PauliZProductInput +// Read out product of Z on site 0 for register ro_z (no basis change) +let index_z = measurement_input.add_pauliz_product("ro_z".to_string()); +// Read out product of X on site 0 for register ro_x +let index_x = measurement_input.add_pauliz_product("ro_x".to_string()); + +// Last, instructions how to combine the single expectation values +// into the total result are provided. +// Add a result (the expectation value of H) that is a combination +// of the PauliProduct expectation values. +measurement_input + .add_linear_exp_val("".to_string(), HashMap::from([(index_z, 0.1), (index_x, 0.2)])) + .unwrap(); + +let measurement = CheatedPauliZProduct { + input: measurement_input, + circuits: vec![circuit.clone()], + constant_circuit: None, +}; + +// Now, the PauliZProduct measurement is prepared to be used +// in a QuantumProgram just like: +let program = QuantumProgram::CheatedPauliZProduct { + measurement, + input_parameter_names: vec![], +}; + +let backend = Backend::new(3); + +let res = program.run(backend, &[]); +println!("{:?}", res); + +``` diff --git a/documentation/src/high-level/program.md b/documentation/src/high-level/program.md new file mode 100644 index 000000000..b78004e66 --- /dev/null +++ b/documentation/src/high-level/program.md @@ -0,0 +1,147 @@ +# QuantumProgram and Variable-Replacement + +A `QuantumProgram` allows the user to call it with a list of free `float` parameters. +It contains a `measurement` with quantum circuits that contain symbolic parameters. Circuits with symbolic parameters cannot be simulated or executed on real hardware. The symbolic parameters need to be replaced with real floating point numbers first. A `QuantumProgram` contains a list of the free parameters (`input_parameter_names`) and can automatically replace the parameters when it is executed. It replaces the parameters by its `run` methods and returns the result. + +As an example we will use the measurement from [PauliZProduct](pauliz.md) with a state`|psi>` parameterized by an angle between `|0>` and `|1>`. + +In python: + +```python +from qoqo import Circuit +from qoqo import operations as ops +from qoqo.measurements import PauliZProduct, PauliZProductInput +from qoqo import QuantumProgram +from qoqo_quest import Backend + +# initialize |psi> +init_circuit = Circuit() +# Apply a RotateY gate with a symbolic angle +# To execute the circuit this symbolic parameter must be replaced +# by a real number with the help of a QuantumProgram +init_circuit += ops.RotateX(0, "angle") + +# Z-basis measurement circuit with 1000 shots +z_circuit = Circuit() +z_circuit += ops.DefinitionBit("ro_z", 1, is_output=True) +z_circuit += ops.PragmaRepeatedMeasurement("ro_z", 1000, None) + +# X-basis measurement circuit with 1000 shots +x_circuit = Circuit() +x_circuit += ops.DefinitionBit("ro_x", 1, is_output=True) +# Changing to the X basis with a Hadamard gate +x_circuit += ops.Hadamard(0) +x_circuit += ops.PragmaRepeatedMeasurement("ro_x", 1000, None) + +# Preparing the measurement input for one qubit +measurement_input = PauliZProductInput(1, False) +# Read out product of Z on site 0 for register ro_z (no basis change) +z_basis_index = measurement_input.add_pauliz_product("ro_z", [0,]) +# Read out product of Z on site 0 for register ro_x +# (after basis change effectively a measurement) +x_basis_index = measurement_input.add_pauliz_product("ro_x", [0,]) + +# Add a result (the expectation value of H) that is a combination of +# the PauliProduct expectation values. +measurement_input.add_linear_exp_val( + "", {x_basis_index: 0.1, z_basis_index: 0.2}, +) + +measurement = PauliZProduct( + constant_circuit=init_circuit, + circuits=[z_circuit, x_circuit], + input=measurement_input, +) + +# A quantum program is created from the measurement +# and "angle" is registered as a free input parameter. +# The QuantumProgram now has one free parameter +# that needs to set when executing it. +# The symbolic value angle in the circuits will be replaced +# by that free parameter during execution. +program = QuantumProgram( + measurement=measurement, + input_parameter_names=["angle"], +) + +# To execute a QuantumProgram a backend needs to be defined. +# Create a backend simulating one qubit. +backend = Backend(1) + +# Run QuantumProgram on the backend by setting the parameter value. +expectation_values = program.run(backend, [0.785]) +``` + +In Rust: + +```rust +use roqoqo::{Circuit, operations::*, QuantumProgram}; +use roqoqo::measurements::{PauliZProduct, PauliZProductInput}; +use roqoqo::backends::{EvaluatingBackend, RegisterResult}; +use roqoqo_quest::Backend; +use std::collections::HashMap; + +// initialize |psi> +let mut init_circuit = Circuit::new(); +init_circuit.add_operation(RotateX::new(0, "angle".into())); + +// Z-basis measurement circuit with 1000 shots +let mut z_circuit = Circuit::new(); +z_circuit.add_operation(DefinitionBit::new("ro_z".to_string(), 1, true)); +z_circuit.add_operation( + PragmaRepeatedMeasurement::new("ro_z".to_string(), 1000, None), +); + +// X-basis measurement circuit with 1000 shots +let mut x_circuit = Circuit::new(); +x_circuit.add_operation(DefinitionBit::new("ro_x".to_string(), 1, true)); +// Changing to the X-basis with a Hadamard gate +x_circuit.add_operation(Hadamard::new(0)); +x_circuit.add_operation( + PragmaRepeatedMeasurement::new("ro_x".to_string(), 1000, None), +); + +// Preparing the measurement input for one qubit +let mut measurement_input = PauliZProductInput::new(1, false); +// Read out product of Z on site 0 for register ro_z (no basis change) +measurement_input + .add_pauliz_product("ro_z".to_string(), vec![0]) + .unwrap(); +// Read out product of Z on site 0 for register ro_x +// (after basis change effectively a measurement) +measurement_input + .add_pauliz_product("ro_x".to_string(), vec![0]) + .unwrap(); + +// Add a result (the expectation value of H) that is a combination +// of the PauliProduct expectation values. +measurement_input + .add_linear_exp_val( + "".to_string(), HashMap::from([(0, 0.1), (1, 0.2)]), + ) + .unwrap(); + +let measurement = PauliZProduct { + input: measurement_input, + circuits: vec![z_circuit.clone(), x_circuit.clone()], + constant_circuit: Some(init_circuit.clone()), +}; + +// A quantum program is created from the measurement +// and "angle" is registered as a free input parameter. +// The QuantumProgram now has one free parameter +// that needs to set when executing it. +// The symbolic value angle in the circuits will be replaced +// by that free parameter during execution. +let program = QuantumProgram::PauliZProduct { + measurement, + input_parameter_names: vec!["angle".to_string()], +}; + +// To execute a QuantumProgram a backend needs to be defined. +// Create a backend simulating one qubit. +let backend = Backend::new(1); + +// Run QuantumProgram on the backend by setting the parameter value. +let expectation_values = program.run(backend, &[0.785]).unwrap(); +``` diff --git a/documentation/src/images/qoqo_compilation_schematics.png b/documentation/src/images/qoqo_compilation_schematics.png new file mode 100644 index 000000000..d368514c2 Binary files /dev/null and b/documentation/src/images/qoqo_compilation_schematics.png differ diff --git a/documentation/src/images/qoqo_program_schematics.png b/documentation/src/images/qoqo_program_schematics.png new file mode 100644 index 000000000..5922e86a3 Binary files /dev/null and b/documentation/src/images/qoqo_program_schematics.png differ diff --git a/documentation/src/installation.md b/documentation/src/installation.md new file mode 100644 index 000000000..dca59f10c --- /dev/null +++ b/documentation/src/installation.md @@ -0,0 +1,49 @@ +# Installation + +## qoqo + +qoqo is available on PyPi, both as a pre-built Python wheel for common architectures (windows/linux/macos on x86) and as a source distribution. + +For pre-built wheels you can install qoqo with a simple pip command + +```bash +pip install qoqo +``` + +If no pre-built python wheel is available for your architecture you can install qoqo from the source distribution using a rust toolchain (for example available via rustup) and maturin (also available via pip). After installing the rust toolchain and maturing run the same pip install command as above. In some cases on macOS it can be necessary to provide specific linker arguments as shown below: + +```shell +# can be necessary on macOS +RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" pip install qoqo +``` + +When using qoqo in a rust project providing a python interface add + +```TOML +qoqo = {version="1.0", default-features=false} +``` + +to the `[dependencies]` section of the project Cargo.toml. + +Alternatively one can check out the latest tagged version from github and use the maturin tool to build a python package for qoqo locally and install it via pip. Please note that the package should be built from the top level directory of the workspace selecting the qoqo package with the -m qoqo/Cargo.toml option. + +```shell +maturin build -m qoqo/Cargo.toml --release +pip install target/wheels/ +``` + +Specifically for macOS on Apple Silicon the following build command should be used: + +```shell +RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" maturin build -m qoqo/Cargo.toml --release +pip install target/wheels/$NAME_OF_WHEEL +``` +## roqoqo + +To use roqoqo in a Rust project simply add + +```toml +roqoqo = "1.4" +``` + +to the `[dependencies]` section in your Cargo.toml. diff --git a/documentation/src/introduction.md b/documentation/src/introduction.md new file mode 100644 index 000000000..5739b2ec9 --- /dev/null +++ b/documentation/src/introduction.md @@ -0,0 +1,68 @@ +# Introduction + +**Welcome to the user documentation for the qoqo/roqoqo quantum computing toolkit.** + +This user documentation gives a general overview of the design principles and intended usage scenarios for qoqo and roqoqo. For a detailed description of all the types and functions, see the API-documentation of [roqoqo](https://docs.rs/roqoqo/) and [qoqo](https://hqsquantumsimulations.github.io/qoqo/). + +## What are qoqo and roqoqo + +The qoqo and roqoqo packages are a pair of quantum computing toolkits by [HQS Quantum Simulations](https://quantumsimulations.de). + +Like many quantum toolkits, qoqo and roqoqo are circuit-based toolkits, at the core. A sequence of operations to be run on a quantum computer is grouped into a [quantum circuit](circuits/intro.md). + +In the majority of quantum computing applications, the output of several quantum circuits needs to be collected and processed using additional classical measurement input, in order to construct a usable measurement result (e.g. when using a quantum computer to simulate physical quantum systems). + +qoqo and roqoqo also provide tools to group quantum circuits and measurement input into a [QuantumProgram](high-level/intro.md). QuantumPrograms are designed as a high-level interface to quantum computations that can be used similar to standard function calls. +QuantumPrograms accept floating point inputs, can be serialized, and only need qoqo/roqoqo and a simulator or a hardware backend to be executed. + +### What roqoqo/qoqo is + +* A toolkit to represent quantum operations and circuits +* A tool to package quantum circuits and classical information into quantum programs +* A way to serialize quantum programs +* A set of optional interfaces to devices, simulators and toolkits (e.g. [qoqo_quest](https://github.com/HQSquantumsimulations/qoqo-quest), [qoqo_mock](https://github.com/HQSquantumsimulations/qoqo_mock), [qoqo_qasm](https://github.com/HQSquantumsimulations/qoqo_qasm)) + +### What roqoqo/qoqo is **not** + +* A decomposer translating circuits to a specific set of gates +* A quantum circuit optimizer +* A collection of quantum algorithms + +### qoqo vs roqoqo + +roqoqo is the core implementation of the toolkit. It is written in Rust. +qoqo is the Python interface to roqoqo and provides operations, Circuit, measurements and QuantumProgram from roqoqo in the Python environment. + +## Architecture + +roqoqo has several components: + +* Operations and Circuit (see [Quantum Circuits](circuits/intro.md)) +* Measurements and QuantumProgram (see [High-Level Interface: Quantum Programs](high-level/intro.md)) +* Backends (see [Backends](backends.md)) +* Devices (see [Devices](devices.md)) + +Operations and Circuit can be used to represent single quantum circuits that run on quantum hardware. + +Measurements and QuantumProgram combine several circuits with classical information, to provide a high-level interface for running quantum programs that yield an immediately usable result. + +To execute quantum circuits or quantum programs, a backend connecting to quantum hardware or a simulator is required. +qoqo/roqoqo does not directly implement these backends. To minimize dependencies, backends are implemented in separate packages (e.g. `qoqo-quest`). +In the `backends` module roqoqo provides an interface description for backends with the `EvaluatingBackend` Rust trait. + +When compiling quantum circuits, it is often necessary to know the topology of a target quantum device. Device properties can also be used by backends, for example to accurately simulate a given quantum device. +qoqo/roqoqo defines an interface for obtaining the device topology and the noise properties. The interface is defined by roqoqo's `Device` trait. Additionally qoqo/roqoqo provides some simple devices that can be used to quickly define simple device topologies. + +The following schematic shows how the different components are related when running a quantum program: + +![Relation between qoqo/roqoqo components](images/qoqo_program_schematics.png) + +The circuit compilation use cases can be visualized in a similar way: + +![Compilation use case](images/qoqo_compilation_schematics.png) + +### API Documentation + +The API documentation can be found at the following link: + + - [Python API](https://hqsquantumsimulations.github.io/qoqo/python_api_docs/qoqo/index.html) diff --git a/documentation/src/noise_models.md b/documentation/src/noise_models.md new file mode 100644 index 000000000..da230ebf6 --- /dev/null +++ b/documentation/src/noise_models.md @@ -0,0 +1,144 @@ +# Noise Models + +When working with quantum computers it is often necessary to know the physical noise present of a target quantum device, particularly for NISQ devices. In roqoqo/qoqo, we have defined the three following noise models: + +* `ContinuousDecoherenceModel` +* `DecoherenceOnGateModel` +* `ImperfectReadout` + +All of the noise models use builder patterns for the setting and adding functions, in order to be easier to chain for the user. + +## ContinuousDecoherenceModel + +The `ContinuousDecoherenceModel` is the noise model representing a continuous decoherence process on qubits. This noise model assumes that all qubits are constantly experiencing decoherence over time (e.g. due to coupling to the environment). The noise for each qubit can be different but only single qubit noise is included in the model. + +Noise is given by the rates of the Lindblad equation. The Lindblad equation is a so-called master equation for the time evolution of a density matrix. For the example of a single qubit the non-coherent part of the Lindblad equation can take the following form: +\\[ + \frac{d}{dt}\rho = \sum_{i,j=0}^{2} M_{i,j} L_{i} \rho L_{j}^{\dagger} - \frac{1}{2} \{ L_{j}^{\dagger} L_i \rho \}, +\\], +where the indices i and j run from 0 to 2 and with \\( L_0 = \sigma^{+}\\), \\( L_1 = \sigma^{-}\\) and \\(L_3 = \sigma^{z}\\). + +Here the general incoherent part of the Lindblad equation is internally represented by a [struqture::spins::PlusMinusLindbladNoiseOperator]. + +To create a complex decoherence model first create the Lindblad noise and then turn it into a ContinuousDecoherenceModel. For a simple decoherence model, use new to create an empty model and use the `add_damping`, `add_excitation`, `add_depolarising` and `add_dephasing` methods. For more fine control access the internal `lindblad_noise` directly and modify it. + +```rust +use struqture::{spins::PlusMinusProduct, SpinIndex, OperateOnDensityMatrix}; +use roqoqo::noise_models::ContinuousDecoherenceModel; +// Create the noise model +let mut continuous_model = ContinuousDecoherenceModel::new(); + +continuous_model = continuous_model.add_damping_rate(vec![0, 1, 2], 0.001).unwrap(); +continuous_model = continuous_model.add_dephasing_rate(vec![0, 1, 2], 0.0005).unwrap(); +continuous_model = continuous_model.add_depolarising_rate(vec![0, 1, 2], 0.0001).unwrap(); +continuous_model = continuous_model.add_excitation_rate(vec![0, 1, 2], 0.006).unwrap(); + +// Access the underlying struqture operator +let mut lindblad_noise = continuous_model.lindblad_noise; +lindblad_noise.add_operator_product((PlusMinusProduct::new().plus(0), PlusMinusProduct::new().plus(0)), 0.1.into()).unwrap(); + +// Create a new continuous model from modified lindblad noise +let new_continuous = ContinuousDecoherenceModel::from(lindblad_noise); +``` + +```python +from qoqo import noise_models +import numpy as np + +continuous_model = noise_models.ContinuousDecoherenceModel() +continuous_model = continuous_model.add_damping_rate([0, 1, 2], 0.001) +continuous_model = continuous_model.add_dephasing_rate([0, 1, 2], 0.0005) +continuous_model = continuous_model.add_depolarising_rate([0, 1, 2], 0.0001) +continuous_model = continuous_model.add_excitation_rate([0, 1, 2], 0.0006) + +# Access the underlying struqture operator +lindblad_noise = continuous_model.get_noise_operator() +lindblad_noise.add_operator_product(("0+", "0+"), 0.1) +new_continuous_model = noise_models.ContinuousDecoherenceModel(lindblad_noise) +``` + +For further details of the `ContinuousDecoherenceModel` trait please refer to the API documentation of [roqoqo::noise_models](https://docs.rs/roqoqo/latest/roqoqo/noise_models/index.html) (Rust core) + +## DecoherenceOnGateModel + +The `DecoherenceOnGateModel` is the error model for noise that is only present on gate executions.Adds additional noise when specific gates (identified by hqslang name and qubits acted on) are executed. The noise is given in the form of a [struqture::spins::PlusMinusLindbladNoiseOperator] the same way it is for the ContinuousDecoherence model. + +To create a complex decoherence model, first create the Lindblad noise and then turn it into a DecoherenceOnGateModel. For a simple decoherence model, use new to create an empty model and use the `set_single_qubit_gate_error`, `set_two_qubit_gate_error`, `set_three_qubit_gate_error` and `set_multi_qubit_gate_error` methods. For more fine control access the internal `lindblad_noise` directly and modify it. + +```rust +use struqture::{spins::{PlusMinusProduct, PlusMinusLindbladNoiseOperator}, SpinIndex, OperateOnDensityMatrix}; +use roqoqo::noise_models::DecoherenceOnGateModel; + +let mut noise_model = DecoherenceOnGateModel::new(); +let mut lindblad_noise = PlusMinusLindbladNoiseOperator::new(); +lindblad_noise.add_operator_product( + (PlusMinusProduct::new().z(0), PlusMinusProduct::new().z(0)), + 0.9.into(),).unwrap(); +lindblad_noise.add_operator_product( + (PlusMinusProduct::new().z(1), PlusMinusProduct::new().z(1)), + 0.9.into(),).unwrap(); + +noise_model = noise_model.set_two_qubit_gate_error( + "CNOT", 0,1, + lindblad_noise +); +``` + +```python +from qoqo import noise_models +from struqture_py.spins import PlusMinusLindbladNoiseOperator, PlusMinusProduct +import numpy as np + +noise_model = noise_models.DecoherenceOnGateModel() +lindblad_noise = PlusMinusLindbladNoiseOperator() +lindblad_noise.add_operator_product( + (PlusMinusProduct().z(0), PlusMinusProduct().z(0)), + 0.9) +lindblad_noise.add_operator_product( + (PlusMinusProduct().z(1), PlusMinusProduct().z(1)), + 0.9) + +noise_model = noise_model.set_two_qubit_gate_error( + "CNOT", 0,1, + lindblad_noise +) +``` + +For further details of the `DecoherenceOnGateModel` trait please refer to the API documentation of [roqoqo::noise_models](https://docs.rs/roqoqo/latest/roqoqo/noise_models/index.html) (Rust core) + +## ImperfectReadoutModel + +The `ImperfectReadoutModel` is the noise model representing readout errors. This noise model assumes that all qubits are constantly experiencing decoherence over time (e.g. due to coupling to the environment). + +Readout errors are modeled by two probabilities in this simple model. One probability to detect a 1 instead of a 0 when the quantum measurement gives 0 and one probability to detect a 0 instead of a 1 when the quantum measurement gives 1. + +To create an ImperfectReadoutModel, use new to create an empty model and use the `set_error_probabilites` method, or use the `new_with_uniform_error` method. + +```rust +use roqoqo::noise_models::ImperfectReadoutModel; +// Create the noise model +let model = ImperfectReadoutModel::new_with_uniform_error(3, 0.5, 0.5).unwrap(); +let model = model.set_error_probabilites(2, 0.3, 0.7).unwrap(); +let uniform_prob = model.prob_detect_0_as_1(&0); +assert_eq!(uniform_prob, 0.5); +let lower_prob = model.prob_detect_0_as_1(&2); +assert_eq!(lower_prob, 0.3); +let higher_prob = model.prob_detect_1_as_0(&2); +assert_eq!(higher_prob, 0.7); +``` + +```python +from qoqo import noise_models +import numpy as np + +model = noise_models.ImperfectReadoutModel.new_with_uniform_error(3, 0.5, 0.5) +model = model.set_error_probabilites(2, 0.3, 0.7) +uniform_prob = model.prob_detect_0_as_1(0) +assert uniform_prob == 0.5 +lower_prob = model.prob_detect_0_as_1(2) +assert lower_prob == 0.3 +higher_prob = model.prob_detect_1_as_0(2) +assert higher_prob == 0.7 +``` + +For further details of the `ImperfectReadoutModel` trait please refer to the API documentation of [roqoqo::noise_models](https://docs.rs/roqoqo/latest/roqoqo/noise_models/index.html) (Rust core) diff --git a/documentation/src/python_api_docs/.placeholder b/documentation/src/python_api_docs/.placeholder new file mode 100644 index 000000000..e69de29bb diff --git a/qoqo/python/qoqo/DEPENDENCIES b/qoqo/python/qoqo/DEPENDENCIES index 0ea480e90..8887639b8 100644 --- a/qoqo/python/qoqo/DEPENDENCIES +++ b/qoqo/python/qoqo/DEPENDENCIES @@ -4,6 +4,35 @@ https://github.com/gimli-rs/addr2line by A cross-platform symbolication library written in Rust, using `gimli` License: Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2016-2018 The gimli Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -209,11 +238,32 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +adler2 2.0.0 +https://github.com/oyvindln/adler2 +by Jonas Schievink , oyvindln +A simple clean-room implementation of the Adler-32 checksum +License: 0BSD OR MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-0BSD: + +Copyright (C) Jonas Schievink + +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016-2018 The gimli Developers - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -238,13 +288,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -adler2 2.0.0 -https://github.com/oyvindln/adler2 -by Jonas Schievink , oyvindln -A simple clean-room implementation of the Adler-32 checksum -License: 0BSD OR MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -450,25 +493,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-0BSD: - -Copyright (C) Jonas Schievink - -Permission to use, copy, modify, and/or distribute this software for -any purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN -AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +==================================================== +ahash 0.8.11 +https://github.com/tkaitchuck/ahash +by Tom Kaitchuck +A non-cryptographic hash function using AES-NI for high performance +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2018 Tom Kaitchuck + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -493,13 +529,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -ahash 0.8.11 -https://github.com/tkaitchuck/ahash -by Tom Kaitchuck -A non-cryptographic hash function using AES-NI for high performance -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -705,42 +734,38 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +aho-corasick 1.1.3 +https://github.com/BurntSushi/aho-corasick +by Andrew Gallant +Fast multiple substring searching. +License: Unlicense OR MIT ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2018 Tom Kaitchuck +The MIT License (MIT) -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: +Copyright (c) 2015 Andrew Gallant -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -==================================================== -aho-corasick 1.1.3 -https://github.com/BurntSushi/aho-corasick -by Andrew Gallant -Fast multiple substring searching. -License: Unlicense OR MIT ---------------------------------------------------- UNLICENSE: @@ -769,31 +794,6 @@ OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to ----------------------------------------------------- -LICENSE-MIT: - -The MIT License (MIT) - -Copyright (c) 2015 Andrew Gallant - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ---------------------------------------------------- COPYING: @@ -808,6 +808,33 @@ https://github.com/dtolnay/anyhow by David Tolnay Flexible concrete Error type built on std::error::Error License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -988,33 +1015,6 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS ----------------------------------------------------- -LICENSE-MIT: - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== approx 0.5.1 @@ -1235,6 +1235,35 @@ https://github.com/cuviper/autocfg by Josh Stone Automatic cfg for Rust compiler features License: Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2018 Josh Stone + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -1440,10 +1469,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +backtrace 0.3.74 +https://github.com/rust-lang/backtrace-rs +by The Rust Project Developers +A library to acquire a stack trace (backtrace) at runtime in a Rust program. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2018 Josh Stone +Copyright (c) 2014 Alex Crichton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -1469,14 +1506,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -backtrace 0.3.74 -https://github.com/rust-lang/backtrace-rs -by The Rust Project Developers -A library to acquire a stack trace (backtrace) at runtime in a Rust program. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -1682,42 +1711,38 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +base64 0.22.1 +https://github.com/marshallpierce/rust-base64 +by Marshall Pierce +encodes and decodes base64 as bytes or utf8 +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2014 Alex Crichton +The MIT License (MIT) -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: +Copyright (c) 2015 Alice Maz -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -==================================================== -base64 0.22.1 -https://github.com/marshallpierce/rust-base64 -by Marshall Pierce -encodes and decodes base64 as bytes or utf8 -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -1923,31 +1948,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -The MIT License (MIT) - -Copyright (c) 2015 Alice Maz - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ==================================================== bincode 1.3.3 @@ -1987,6 +1987,35 @@ https://github.com/contain-rs/bit-set by Alexis Beingessner A set of bits License: MIT/Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -2192,10 +2221,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +bit-vec 0.6.3 +https://github.com/contain-rs/bit-vec +by Alexis Beingessner +A vector of bits +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016 The Rust Project Developers +Copyright (c) 2015 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -2221,13 +2257,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -bit-vec 0.6.3 -https://github.com/contain-rs/bit-vec -by Alexis Beingessner -A vector of bits -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -2433,10 +2462,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +bitflags 2.6.0 +https://github.com/bitflags/bitflags +by The Rust Project Developers +A macro to generate structures which behave like bitflags. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2015 The Rust Project Developers +Copyright (c) 2014 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -2462,14 +2499,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -bitflags 2.6.0 -https://github.com/bitflags/bitflags -by The Rust Project Developers -A macro to generate structures which behave like bitflags. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -2675,35 +2704,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2014 The Rust Project Developers - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== borrow-or-share 0.2.2 @@ -2739,6 +2739,35 @@ https://github.com/fitzgen/bumpalo by Nick Fitzgerald A fast bump allocation arena for Rust. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2019 Nick Fitzgerald + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -2944,35 +2973,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2019 Nick Fitzgerald - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== bytecount 0.6.8 @@ -2980,6 +2980,29 @@ https://github.com/llogiq/bytecount by Andre Bogus , Joshua Landau count occurrences of a given byte, or the number of UTF-8 code points, in a byte slice, fast License: Apache-2.0/MIT +---------------------------------------------------- +LICENSE.MIT: + +Copyright (c) 2017 The bytecount Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + ---------------------------------------------------- LICENSE.Apache2: @@ -3185,36 +3208,26 @@ LICENSE.Apache2: See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE.MIT: - -Copyright (c) 2017 The bytecount Developers - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ==================================================== -bytemuck 1.19.0 +bytemuck 1.20.0 https://github.com/Lokathor/bytemuck by Lokathor A crate for mucking around with piles of bytes. License: Zlib OR Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +MIT License + +Copyright (c) 2019 Daniel "Lokathor" Gee. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-ZLIB: @@ -3295,19 +3308,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -MIT License - -Copyright (c) 2019 Daniel "Lokathor" Gee. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ==================================================== byteorder 1.5.0 @@ -3315,6 +3315,31 @@ https://github.com/BurntSushi/byteorder by Andrew Gallant Library for reading/writing numbers in big-endian and little-endian. License: Unlicense OR MIT +---------------------------------------------------- +LICENSE-MIT: + +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + ---------------------------------------------------- UNLICENSE: @@ -3343,31 +3368,6 @@ OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to ----------------------------------------------------- -LICENSE-MIT: - -The MIT License (MIT) - -Copyright (c) 2015 Andrew Gallant - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ---------------------------------------------------- COPYING: @@ -3421,6 +3421,35 @@ parameters. Structured like an if-else chain, the first matching branch is the item that gets emitted. License: MIT/Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -3626,11 +3655,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +displaydoc 0.2.5 +https://github.com/yaahc/displaydoc +by Jane Lusby +A derive macro for implementing the display Trait via a doc comment and string interpolation + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2014 Alex Crichton - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -3655,14 +3690,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -displaydoc 0.2.5 -https://github.com/yaahc/displaydoc -by Jane Lusby -A derive macro for implementing the display Trait via a doc comment and string interpolation - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -3868,6 +3895,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +dyn-clone 1.0.17 +https://github.com/dtolnay/dyn-clone +by David Tolnay +Clone trait that is object-safe +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -3895,13 +3929,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -dyn-clone 1.0.17 -https://github.com/dtolnay/dyn-clone -by David Tolnay -Clone trait that is object-safe -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -4082,9 +4109,19 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +either 1.13.0 +https://github.com/rayon-rs/either +by bluss +The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2015 + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -4109,14 +4146,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -either 1.13.0 -https://github.com/rayon-rs/either -by bluss -The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -4322,35 +4351,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2015 - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== email_address 0.2.9 @@ -4390,6 +4390,35 @@ https://github.com/cuviper/equivalent by Traits for key comparison in maps. License: Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2016--2023 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -4595,35 +4624,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2016--2023 - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== fancy-regex 0.13.0 @@ -4663,6 +4663,35 @@ https://github.com/petgraph/fixedbitset by bluss FixedBitSet is a simple bitset collection License: MIT/Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2015-2017 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -4868,35 +4897,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2015-2017 - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== fluent-uri 0.3.2 @@ -4935,6 +4935,35 @@ https://github.com/servo/rust-fnv by Alex Crichton Fowler–Noll–Vo hash function License: Apache-2.0 / MIT +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2017 Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -5140,10 +5169,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +form_urlencoded 1.2.1 +https://github.com/servo/rust-url +by The rust-url developers +Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2017 Contributors +Copyright (c) 2013-2016 The rust-url developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -5169,13 +5205,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -form_urlencoded 1.2.1 -https://github.com/servo/rust-url -by The rust-url developers -Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -5381,10 +5410,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +fraction 0.15.3 +https://github.com/dnsl48/fraction.git +by dnsl48 +Lossless fractions and decimals; drop-in float replacement +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2013-2016 The rust-url developers +Copyright (c) 2014 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -5410,13 +5446,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -fraction 0.15.3 -https://github.com/dnsl48/fraction.git -by dnsl48 -Lossless fractions and decimals; drop-in float replacement -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -5622,10 +5651,19 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +futures-channel 0.3.31 +https://rust-lang.github.io/futures-rs +by +Channels for asynchronous communication using futures-rs. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2014 The Rust Project Developers +Copyright (c) 2016 Alex Crichton +Copyright (c) 2017 The Tokio Authors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -5651,14 +5689,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -futures-channel 0.3.31 -https://rust-lang.github.io/futures-rs -by -Channels for asynchronous communication using futures-rs. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -5865,6 +5895,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +futures-core 0.3.31 +https://rust-lang.github.io/futures-rs +by +The core traits and types in for the `futures` library. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -5895,14 +5933,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -futures-core 0.3.31 -https://rust-lang.github.io/futures-rs -by -The core traits and types in for the `futures` library. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -6109,6 +6139,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +futures-io 0.3.31 +https://rust-lang.github.io/futures-rs +by +The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -6139,14 +6177,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -futures-io 0.3.31 -https://rust-lang.github.io/futures-rs -by -The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -6353,6 +6383,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +futures-sink 0.3.31 +https://rust-lang.github.io/futures-rs +by +The asynchronous `Sink` trait for the futures-rs library. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -6383,14 +6421,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -futures-sink 0.3.31 -https://rust-lang.github.io/futures-rs -by -The asynchronous `Sink` trait for the futures-rs library. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -6597,6 +6627,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +futures-task 0.3.31 +https://rust-lang.github.io/futures-rs +by +Tools for working with tasks. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -6627,14 +6665,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -futures-task 0.3.31 -https://rust-lang.github.io/futures-rs -by -Tools for working with tasks. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -6841,6 +6871,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +futures-util 0.3.31 +https://rust-lang.github.io/futures-rs +by +Common utilities and extension traits for the futures-rs library. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -6871,14 +6909,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -futures-util 0.3.31 -https://rust-lang.github.io/futures-rs -by -Common utilities and extension traits for the futures-rs library. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -7085,11 +7115,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +getrandom 0.2.15 +https://github.com/rust-random/getrandom +by The Rand Project Developers +A small cross-platform library for retrieving random data from system source +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016 Alex Crichton -Copyright (c) 2017 The Tokio Authors +Copyright (c) 2018-2024 The rust-random Project Developers +Copyright (c) 2014 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -7115,13 +7152,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -getrandom 0.2.15 -https://github.com/rust-random/getrandom -by The Rand Project Developers -A small cross-platform library for retrieving random data from system source -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -7327,11 +7357,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +gimli 0.31.1 +https://github.com/gimli-rs/gimli +by +A library for reading and writing the DWARF debugging format. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2018-2024 The rust-random Project Developers -Copyright (c) 2014 The Rust Project Developers +Copyright (c) 2015 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -7357,13 +7393,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -gimli 0.31.1 -https://github.com/gimli-rs/gimli -by -A library for reading and writing the DWARF debugging format. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -7569,10 +7598,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +hashbrown 0.15.2 +https://github.com/rust-lang/hashbrown +by Amanieu d'Antras +A Rust port of Google's SwissTable hash map +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2015 The Rust Project Developers +Copyright (c) 2016 Amanieu d'Antras Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -7598,13 +7634,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -hashbrown 0.15.1 -https://github.com/rust-lang/hashbrown -by Amanieu d'Antras -A Rust port of Google's SwissTable hash map -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -7810,10 +7839,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +heck 0.4.1 +https://github.com/withoutboats/heck +by Without Boats +heck is a case conversion library. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016 Amanieu d'Antras +Copyright (c) 2015 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -7839,13 +7875,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -heck 0.4.1 -https://github.com/withoutboats/heck -by Without Boats -heck is a case conversion library. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -8051,11 +8080,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +hermit-abi 0.3.9 +https://github.com/hermit-os/hermit-rs +by Stefan Lankes +Hermit system calls definitions. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2015 The Rust Project Developers - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -8080,13 +8114,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -hermit-abi 0.3.9 -https://github.com/hermit-os/hermit-rs -by Stefan Lankes -Hermit system calls definitions. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -8292,9 +8319,19 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +http 1.1.0 +https://github.com/hyperium/http +by Alex Crichton , Carl Lerche , Sean McArthur +A set of types for representing HTTP requests and responses. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2017 http-rs authors + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -8319,14 +8356,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -http 1.1.0 -https://github.com/hyperium/http -by Alex Crichton , Carl Lerche , Sean McArthur -A set of types for representing HTTP requests and responses. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -8532,35 +8561,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2017 http-rs authors - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== http-body 1.0.1 @@ -8642,6 +8642,30 @@ https://github.com/seanmonstar/httparse by Sean McArthur A tiny, safe, speedy, zero-copy HTTP/1.x parser. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2015-2024 Sean McArthur + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + ---------------------------------------------------- LICENSE-APACHE: @@ -8847,36 +8871,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2015-2024 Sean McArthur - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ==================================================== -hyper 1.5.0 +hyper 1.5.1 https://hyper.rs by Sean McArthur -A fast and correct HTTP library. +A protective and efficient HTTP library for all. License: MIT ---------------------------------------------------- LICENSE: @@ -9508,6 +9508,35 @@ https://github.com/servo/rust-url/ by The rust-url developers IDNA (Internationalizing Domain Names in Applications) and Punycode. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2013-2022 The rust-url developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -9713,10 +9742,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +idna_adapter 1.2.0 +https://docs.rs/crate/idna_adapter/latest +by The rust-url developers +Back end adapter for idna +License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2013-2022 The rust-url developers +Copyright (c) The rust-url developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -9742,13 +9778,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -idna_adapter 1.2.0 -https://docs.rs/crate/idna_adapter/latest -by The rust-url developers -Back end adapter for idna -License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-APACHE: @@ -9954,10 +9983,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +indexmap 2.6.0 +https://github.com/indexmap-rs/indexmap +by +A hash table with consistent order and fast iteration. +License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-MIT: -Copyright (c) The rust-url developers +Copyright (c) 2016--2017 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -9983,13 +10019,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -indexmap 2.6.0 -https://github.com/indexmap-rs/indexmap -by -A hash table with consistent order and fast iteration. -License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-APACHE: @@ -10195,11 +10224,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +indoc 2.0.5 +https://github.com/dtolnay/indoc +by David Tolnay +Indented document literals +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016--2017 - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -10224,13 +10258,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -indoc 2.0.5 -https://github.com/dtolnay/indoc -by David Tolnay -Indented document literals -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -10411,6 +10438,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +inventory 0.3.15 +https://github.com/dtolnay/inventory +by David Tolnay +Typed distributed plugin registration +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -10438,13 +10472,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -inventory 0.3.15 -https://github.com/dtolnay/inventory -by David Tolnay -Typed distributed plugin registration -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -10625,33 +10652,6 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS ----------------------------------------------------- -LICENSE-MIT: - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== ipnet 2.10.1 @@ -10659,6 +10659,17 @@ https://github.com/krisprice/ipnet by Kris Price Provides types and useful methods for working with IPv4 and IPv6 network addresses, commonly called IP prefixes. The new `IpNet`, `Ipv4Net`, and `Ipv6Net` types build on the existing `IpAddr`, `Ipv4Addr`, and `Ipv6Addr` types already provided in Rust's standard library and align to their design to stay consistent. The module also provides useful traits that extend `Ipv4Addr` and `Ipv6Addr` with methods for `Add`, `Sub`, `BitAnd`, and `BitOr` operations. The module only uses stable feature so it is guaranteed to compile using the stable toolchain. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright 2017 Juniper Networks, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -10864,17 +10875,6 @@ LICENSE-APACHE: See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright 2017 Juniper Networks, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ==================================================== itertools 0.12.1 @@ -10882,6 +10882,35 @@ https://github.com/rust-itertools/itertools by bluss Extra iterator adaptors, iterator methods, free functions, and macros. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2015 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -11087,6 +11116,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +itertools 0.13.0 +https://github.com/rust-itertools/itertools +by bluss +Extra iterator adaptors, iterator methods, free functions, and macros. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -11116,13 +11152,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -itertools 0.13.0 -https://github.com/rust-itertools/itertools -by bluss -Extra iterator adaptors, iterator methods, free functions, and macros. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -11328,222 +11357,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2015 - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== -itoa 1.0.11 +itoa 1.0.13 https://github.com/dtolnay/itoa by David Tolnay Fast integer primitive to string conversion License: MIT OR Apache-2.0 ----------------------------------------------------- -LICENSE-APACHE: - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - ---------------------------------------------------- LICENSE-MIT: @@ -11571,15 +11391,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -js-sys 0.3.72 -https://rustwasm.github.io/wasm-bindgen/ -by The wasm-bindgen Developers -Bindings for all JS global objects and functions in all JS environments like -Node.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -11760,31 +11571,15 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +==================================================== +js-sys 0.3.72 +https://rustwasm.github.io/wasm-bindgen/ +by The wasm-bindgen Developers +Bindings for all JS global objects and functions in all JS environments like +Node.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -11814,20 +11609,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -jsonschema 0.23.0 -https://github.com/Stranger6667/jsonschema-rs -by Dmitry Dygalo -JSON schema validaton library -License: MIT - -==================================================== -lazy_static 1.5.0 -https://github.com/rust-lang-nursery/lazy-static.rs -by Marvin Löbel -A macro for declaring lazily evaluated statics in Rust. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -12033,6 +11814,20 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +jsonschema 0.23.0 +https://github.com/Stranger6667/jsonschema-rs +by Dmitry Dygalo +JSON schema validaton library +License: MIT + +==================================================== +lazy_static 1.5.0 +https://github.com/rust-lang-nursery/lazy-static.rs +by Marvin Löbel +A macro for declaring lazily evaluated statics in Rust. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -12062,14 +11857,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -libc 0.2.161 -https://github.com/rust-lang/libc -by The Rust Project Developers -Raw FFI bindings to platform libraries like libc. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -12250,6 +12037,39 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +==================================================== +libc 0.2.164 +https://github.com/rust-lang/libc +by The Rust Project Developers +Raw FFI bindings to platform libraries like libc. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -12279,6 +12099,186 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +---------------------------------------------------- +LICENSE-APACHE: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + ==================================================== libm 0.2.11 @@ -12550,7 +12550,7 @@ Copyright notices are retained in src/* files where relevant. ==================================================== -litemap 0.7.3 +litemap 0.7.4 https://github.com/unicode-org/icu4x by The ICU4X Project Developers A key-value Map implementation based on a flat, sorted Vec. @@ -12612,6 +12612,35 @@ https://github.com/Amanieu/parking_lot by Amanieu d'Antras Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -12817,10 +12846,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +log 0.4.22 +https://github.com/rust-lang/log +by The Rust Project Developers +A lightweight logging facade for Rust + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016 The Rust Project Developers +Copyright (c) 2014 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -12846,14 +12883,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -log 0.4.22 -https://github.com/rust-lang/log -by The Rust Project Developers -A lightweight logging facade for Rust - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -13059,10 +13088,21 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +matrixmultiply 0.3.9 +https://github.com/bluss/matrixmultiply/ +by bluss, R. Janis Goldschmidt +General matrix multiplication for f32 and f64 matrices. Operates on matrices with general layout (they can use arbitrary row and column stride). Detects and uses AVX or SSE2 on x86 platforms transparently for higher performance. Uses a microkernel strategy, so that the implementation is easy to parallelize and optimize. + +Supports multithreading. +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2014 The Rust Project Developers +Copyright (c) 2016 - 2023 Ulrik Sverdrup "bluss" +Copyirhgt (c) 2018 R. Janis Goldschmidt +Copyright (c) 2021 DutchGhost [constparse.rs] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -13088,15 +13128,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -matrixmultiply 0.3.9 -https://github.com/bluss/matrixmultiply/ -by bluss, R. Janis Goldschmidt -General matrix multiplication for f32 and f64 matrices. Operates on matrices with general layout (they can use arbitrary row and column stride). Detects and uses AVX or SSE2 on x86 platforms transparently for higher performance. Uses a microkernel strategy, so that the implementation is easy to parallelize and optimize. - -Supports multithreading. -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -13302,37 +13333,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2016 - 2023 Ulrik Sverdrup "bluss" -Copyirhgt (c) 2018 R. Janis Goldschmidt -Copyright (c) 2021 DutchGhost [constparse.rs] - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== memchr 2.7.4 @@ -13342,6 +13342,31 @@ Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for 1, 2 or 3 byte search and single substring search. License: Unlicense OR MIT +---------------------------------------------------- +LICENSE-MIT: + +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + ---------------------------------------------------- UNLICENSE: @@ -13370,31 +13395,6 @@ OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to ----------------------------------------------------- -LICENSE-MIT: - -The MIT License (MIT) - -Copyright (c) 2015 Andrew Gallant - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ---------------------------------------------------- COPYING: @@ -13438,6 +13438,30 @@ https://github.com/hyperium/mime by Sean McArthur Strongly Typed Mimes License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2014 Sean McArthur + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + ---------------------------------------------------- LICENSE-APACHE: @@ -13643,10 +13667,19 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +miniz_oxide 0.8.0 +https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide +by Frommi , oyvindln +DEFLATE compression and decompression library rewritten in Rust based on miniz +License: MIT OR Zlib OR Apache-2.0 ---------------------------------------------------- -LICENSE-MIT: +LICENSE-MIT.md: -Copyright (c) 2014 Sean McArthur +MIT License + +Copyright (c) 2017 Frommi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -13655,25 +13688,42 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +---------------------------------------------------- +LICENSE: +MIT License + +Copyright (c) 2017 Frommi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -==================================================== -miniz_oxide 0.8.0 -https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide -by Frommi , oyvindln -DEFLATE compression and decompression library rewritten in Rust based on miniz -License: MIT OR Zlib OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE.md: @@ -13855,31 +13905,6 @@ LICENSE-APACHE.md: END OF TERMS AND CONDITIONS ----------------------------------------------------- -LICENSE: - -MIT License - -Copyright (c) 2017 Frommi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---------------------------------------------------- LICENSE-ZLIB.md: @@ -13895,31 +13920,6 @@ Permission is granted to anyone to use this software for any purpose, including 3. This notice may not be removed or altered from any source distribution. ----------------------------------------------------- -LICENSE-MIT.md: - -MIT License - -Copyright (c) 2017 Frommi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ==================================================== mio 1.0.2 @@ -14180,6 +14180,37 @@ https://github.com/rust-ndarray/ndarray by Ulrik Sverdrup "bluss", Jim Turner An n-dimensional array for general elements and for numerics. Lightweight array views and slicing; views support chunking and splitting. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2015 - 2021 Ulrik Sverdrup "bluss", + Jim Turner, + and ndarray developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -14385,12 +14416,19 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +num 0.4.3 +https://github.com/rust-num/num +by The Rust Project Developers +A collection of numeric types and traits for Rust, including bigint, +complex, rational, range iterators, generic integers, and more! + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2015 - 2021 Ulrik Sverdrup "bluss", - Jim Turner, - and ndarray developers +Copyright (c) 2014 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -14416,15 +14454,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -num 0.4.3 -https://github.com/rust-num/num -by The Rust Project Developers -A collection of numeric types and traits for Rust, including bigint, -complex, rational, range iterators, generic integers, and more! - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -14630,6 +14659,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +num-bigint 0.4.6 +https://github.com/rust-num/num-bigint +by The Rust Project Developers +Big integer implementation for Rust +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -14659,13 +14695,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -num-bigint 0.4.6 -https://github.com/rust-num/num-bigint -by The Rust Project Developers -Big integer implementation for Rust -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -14871,35 +14900,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2014 The Rust Project Developers - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== num-cmp 0.1.0 @@ -15308,6 +15308,35 @@ https://github.com/rust-num/num-complex by The Rust Project Developers Complex numbers implementation for Rust License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -15513,6 +15542,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +num-integer 0.1.46 +https://github.com/rust-num/num-integer +by The Rust Project Developers +Integer traits and functions +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -15542,13 +15578,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -num-integer 0.1.46 -https://github.com/rust-num/num-integer -by The Rust Project Developers -Integer traits and functions -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -15754,6 +15783,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +num-iter 0.1.45 +https://github.com/rust-num/num-iter +by The Rust Project Developers +External iterators for generic mathematics +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -15783,13 +15819,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -num-iter 0.1.45 -https://github.com/rust-num/num-iter -by The Rust Project Developers -External iterators for generic mathematics -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -15995,6 +16024,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +num-rational 0.4.2 +https://github.com/rust-num/num-rational +by The Rust Project Developers +Rational numbers implementation for Rust +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -16024,13 +16060,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -num-rational 0.4.2 -https://github.com/rust-num/num-rational -by The Rust Project Developers -Rational numbers implementation for Rust -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -16236,6 +16265,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +num-traits 0.2.19 +https://github.com/rust-num/num-traits +by The Rust Project Developers +Numeric traits for generic mathematics +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -16265,13 +16301,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -num-traits 0.2.19 -https://github.com/rust-num/num-traits -by The Rust Project Developers -Numeric traits for generic mathematics -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -16477,35 +16506,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2014 The Rust Project Developers - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== numpy 0.21.0 @@ -16549,6 +16549,35 @@ https://github.com/gimli-rs/object by A unified interface for reading and writing object file formats. License: Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2015 The Gimli Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -16754,11 +16783,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +once_cell 1.20.2 +https://github.com/matklad/once_cell +by Aleksey Kladov +Single assignment cells and lazy values. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2015 The Gimli Developers - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -16783,13 +16817,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -once_cell 1.20.2 -https://github.com/matklad/once_cell -by Aleksey Kladov -Single assignment cells and lazy values. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -16995,33 +17022,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== outref 0.5.1 @@ -17060,6 +17060,35 @@ https://github.com/Amanieu/parking_lot by Amanieu d'Antras More compact and efficient implementations of the standard synchronization primitives. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -17265,6 +17294,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +parking_lot_core 0.9.10 +https://github.com/Amanieu/parking_lot +by Amanieu d'Antras +An advanced API for creating custom synchronization primitives. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -17294,13 +17330,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -parking_lot_core 0.9.10 -https://github.com/Amanieu/parking_lot -by Amanieu d'Antras -An advanced API for creating custom synchronization primitives. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -17506,11 +17535,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +paste 1.0.15 +https://github.com/dtolnay/paste +by David Tolnay +Macros for all your token pasting needs +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016 The Rust Project Developers - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -17535,13 +17569,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -paste 1.0.15 -https://github.com/dtolnay/paste -by David Tolnay -Macros for all your token pasting needs -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -17722,9 +17749,18 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +percent-encoding 2.3.1 +https://github.com/servo/rust-url/ +by The rust-url developers +Percent encoding and decoding +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2013-2022 The rust-url developers + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -17749,13 +17785,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -percent-encoding 2.3.1 -https://github.com/servo/rust-url/ -by The rust-url developers -Percent encoding and decoding -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -17961,10 +17990,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +petgraph 0.6.5 +https://github.com/petgraph/petgraph +by bluss, mitchmindtree +Graph data structure library. Provides graph types and graph algorithms. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2013-2022 The rust-url developers +Copyright (c) 2015 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -17990,13 +18026,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -petgraph 0.6.5 -https://github.com/petgraph/petgraph -by bluss, mitchmindtree -Graph data structure library. Provides graph types and graph algorithms. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -18202,11 +18231,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +pin-project-lite 0.2.15 +https://github.com/taiki-e/pin-project-lite +by +A lightweight version of pin-project written with declarative macros. + +License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2015 - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -18231,14 +18266,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -pin-project-lite 0.2.15 -https://github.com/taiki-e/pin-project-lite -by -A lightweight version of pin-project written with declarative macros. - -License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-APACHE: @@ -18420,9 +18447,19 @@ LICENSE-APACHE: END OF TERMS AND CONDITIONS + +==================================================== +pin-utils 0.1.0 +https://github.com/rust-lang-nursery/pin-utils +by Josef Brandl +Utilities for pinning + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2018 The pin-utils authors + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -18447,14 +18484,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -pin-utils 0.1.0 -https://github.com/rust-lang-nursery/pin-utils -by Josef Brandl -Utilities for pinning - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -18660,11 +18689,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +portable-atomic 1.10.0 +https://github.com/taiki-e/portable-atomic +by +Portable atomic types including support for 128-bit atomics, atomic float, etc. + +License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2018 The pin-utils authors - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -18689,14 +18724,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -portable-atomic 1.9.0 -https://github.com/taiki-e/portable-atomic -by -Portable atomic types including support for 128-bit atomics, atomic float, etc. - -License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-APACHE: @@ -18878,9 +18905,18 @@ LICENSE-APACHE: END OF TERMS AND CONDITIONS + +==================================================== +ppv-lite86 0.2.20 +https://github.com/cryptocorrosion/cryptocorrosion +by The CryptoCorrosion Contributors +Implementation of the crypto-simd API for x86 +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2019 The CryptoCorrosion Contributors + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -18905,13 +18941,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -ppv-lite86 0.2.20 -https://github.com/cryptocorrosion/cryptocorrosion -by The CryptoCorrosion Contributors -Implementation of the crypto-simd API for x86 -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -19117,11 +19146,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +proc-macro2 1.0.92 +https://github.com/dtolnay/proc-macro2 +by David Tolnay , Alex Crichton +A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2019 The CryptoCorrosion Contributors - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -19146,13 +19180,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -proc-macro2 1.0.89 -https://github.com/dtolnay/proc-macro2 -by David Tolnay , Alex Crichton -A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -19333,33 +19360,6 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS ----------------------------------------------------- -LICENSE-MIT: - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== pyo3 0.21.2 @@ -19367,199 +19367,6 @@ https://github.com/pyo3/pyo3 by PyO3 Project and Contributors Bindings to Python interpreter License: MIT OR Apache-2.0 ----------------------------------------------------- -LICENSE-APACHE: - - Copyright (c) 2017-present PyO3 Project and Contributors. https://github.com/PyO3 - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - ---------------------------------------------------- LICENSE-MIT: @@ -19589,13 +19396,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -pyo3-build-config 0.21.2 -https://github.com/pyo3/pyo3 -by PyO3 Project and Contributors -Build configuration for the PyO3 ecosystem -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -19789,6 +19589,13 @@ LICENSE-APACHE: incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +==================================================== +pyo3-build-config 0.21.2 +https://github.com/pyo3/pyo3 +by PyO3 Project and Contributors +Build configuration for the PyO3 ecosystem +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -19818,13 +19625,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -pyo3-ffi 0.21.2 -https://github.com/pyo3/pyo3 -by PyO3 Project and Contributors -Python-API bindings for the PyO3 ecosystem -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -20018,6 +19818,13 @@ LICENSE-APACHE: incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +==================================================== +pyo3-ffi 0.21.2 +https://github.com/pyo3/pyo3 +by PyO3 Project and Contributors +Python-API bindings for the PyO3 ecosystem +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -20047,6 +19854,199 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +---------------------------------------------------- +LICENSE-APACHE: + + Copyright (c) 2017-present PyO3 Project and Contributors. https://github.com/PyO3 + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + ==================================================== pyo3-macros 0.21.2 @@ -20054,6 +20054,35 @@ https://github.com/pyo3/pyo3 by PyO3 Project and Contributors Proc macros for PyO3 package License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2023-present PyO3 Project and Contributors. https://github.com/PyO3 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -20247,6 +20276,13 @@ LICENSE-APACHE: incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +==================================================== +pyo3-macros-backend 0.21.2 +https://github.com/pyo3/pyo3 +by PyO3 Project and Contributors +Code generation for PyO3 package +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -20276,13 +20312,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -pyo3-macros-backend 0.21.2 -https://github.com/pyo3/pyo3 -by PyO3 Project and Contributors -Code generation for PyO3 package -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -20476,35 +20505,6 @@ LICENSE-APACHE: incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2023-present PyO3 Project and Contributors. https://github.com/PyO3 - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== qoqo 1.16.1 @@ -21359,6 +21359,33 @@ https://github.com/dtolnay/quote by David Tolnay Quasi-quoting macro quote!(...) License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -21539,9 +21566,20 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +rand 0.8.5 +https://rust-random.github.io/book +by The Rand Project Developers, The Rust Project Developers +Random number generators and other randomness functionality. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -21566,14 +21604,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -rand 0.8.5 -https://rust-random.github.io/book -by The Rand Project Developers, The Rust Project Developers -Random number generators and other randomness functionality. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -21754,6 +21784,14 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +rand_chacha 0.3.1 +https://rust-random.github.io/book +by The Rand Project Developers, The Rust Project Developers, The CryptoCorrosion Contributors +ChaCha random number generator + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -21784,14 +21822,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -rand_chacha 0.3.1 -https://rust-random.github.io/book -by The Rand Project Developers, The Rust Project Developers, The CryptoCorrosion Contributors -ChaCha random number generator - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -21997,6 +22027,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +rand_core 0.6.4 +https://rust-random.github.io/book +by The Rand Project Developers, The Rust Project Developers +Core random number generator traits and tools for implementation. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -22027,14 +22065,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -rand_core 0.6.4 -https://rust-random.github.io/book -by The Rand Project Developers, The Rust Project Developers -Core random number generator traits and tools for implementation. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -22226,11 +22256,18 @@ APPENDIX: How to apply the Apache License to your work. same "printed page" as the copyright notice for easier identification within third-party archives. + +==================================================== +rand_distr 0.4.3 +https://rust-random.github.io/book +by The Rand Project Developers +Sampling from random number distributions + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: Copyright 2018 Developers of the Rand project -Copyright (c) 2014 The Rust Project Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -22256,14 +22293,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -rand_distr 0.4.3 -https://rust-random.github.io/book -by The Rand Project Developers -Sampling from random number distributions - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -22455,10 +22484,21 @@ APPENDIX: How to apply the Apache License to your work. same "printed page" as the copyright notice for easier identification within third-party archives. + +==================================================== +rawpointer 0.2.1 +https://github.com/bluss/rawpointer/ +by bluss +Extra methods for raw pointers and `NonNull`. + +For example `.post_inc()` and `.pre_dec()` (c.f. `ptr++` and `--ptr`), +`offset` and `add` for `NonNull`, and the function `ptrdistance`. + +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright 2018 Developers of the Rand project +Copyright (c) 2015 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -22484,17 +22524,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -rawpointer 0.2.1 -https://github.com/bluss/rawpointer/ -by bluss -Extra methods for raw pointers and `NonNull`. - -For example `.post_inc()` and `.pre_dec()` (c.f. `ptr++` and `--ptr`), -`offset` and `add` for `NonNull`, and the function `ptrdistance`. - -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -22700,35 +22729,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2015 - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== redox_syscall 0.5.7 @@ -22769,6 +22769,33 @@ https://github.com/dtolnay/ref-cast by David Tolnay Safely cast &T to &U where the struct U contains a single field of type T. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -22949,6 +22976,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +ref-cast-impl 1.0.23 +https://github.com/dtolnay/ref-cast +by David Tolnay +Derive implementation for ref_cast::RefCast. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -22976,13 +23010,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -ref-cast-impl 1.0.23 -https://github.com/dtolnay/ref-cast -by David Tolnay -Derive implementation for ref_cast::RefCast. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -23163,9 +23190,27 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +referencing 0.23.0 +https://github.com/Stranger6667/jsonschema-rs +by Dmitry Dygalo +An implementation-agnostic JSON reference resolution library for Rust. +License: MIT + +==================================================== +regex 1.11.1 +https://github.com/rust-lang/regex +by The Rust Project Developers, Andrew Gallant +An implementation of regular expressions for Rust. This implementation uses +finite automata and guarantees linear time matching on all inputs. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2014 The Rust Project Developers + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -23190,22 +23235,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -referencing 0.23.0 -https://github.com/Stranger6667/jsonschema-rs -by Dmitry Dygalo -An implementation-agnostic JSON reference resolution library for Rust. -License: MIT - -==================================================== -regex 1.11.1 -https://github.com/rust-lang/regex -by The Rust Project Developers, Andrew Gallant -An implementation of regular expressions for Rust. This implementation uses -finite automata and guarantees linear time matching on all inputs. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -23411,6 +23440,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +regex-automata 0.4.9 +https://github.com/rust-lang/regex/tree/master/regex-automata +by The Rust Project Developers, Andrew Gallant +Automata construction and matching using regular expressions. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -23440,13 +23476,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -regex-automata 0.4.8 -https://github.com/rust-lang/regex/tree/master/regex-automata -by The Rust Project Developers, Andrew Gallant -Automata construction and matching using regular expressions. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -23652,6 +23681,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +regex-syntax 0.8.5 +https://github.com/rust-lang/regex/tree/master/regex-syntax +by The Rust Project Developers, Andrew Gallant +A regular expression parser. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -23681,13 +23717,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -regex-syntax 0.8.5 -https://github.com/rust-lang/regex/tree/master/regex-syntax -by The Rust Project Developers, Andrew Gallant -A regular expression parser. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -23893,42 +23922,37 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +reqwest 0.12.9 +https://github.com/seanmonstar/reqwest +by Sean McArthur +higher level HTTP client library +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2014 The Rust Project Developers +Copyright (c) 2016 Sean McArthur -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. -==================================================== -reqwest 0.12.9 -https://github.com/seanmonstar/reqwest -by Sean McArthur -higher level HTTP client library -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -24134,30 +24158,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2016 Sean McArthur - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ==================================================== roqoqo 1.16.1 @@ -24801,6 +24801,35 @@ by Alex Crichton Rust compiler symbol demangling. License: MIT/Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -25006,11 +25035,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +rustc-hash 1.1.0 +https://github.com/rust-lang-nursery/rustc-hash +by The Rust Project Developers +speed, non-cryptographic hash used in rustc +License: Apache-2.0/MIT ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2014 Alex Crichton - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -25035,13 +25069,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -rustc-hash 1.1.0 -https://github.com/rust-lang-nursery/rustc-hash -by The Rust Project Developers -speed, non-cryptographic hash used in rustc -License: Apache-2.0/MIT ---------------------------------------------------- LICENSE-APACHE: @@ -25247,33 +25274,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== ryu 1.0.18 @@ -25495,6 +25495,19 @@ https://github.com/Lokathor/safe_arch by Lokathor Crate that exposes `core::arch` safely via `#[cfg()]`. License: Zlib OR Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT.md: + +MIT License + +Copyright (c) 2023 Daniel "Lokathor" Gee. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE.md: @@ -25575,19 +25588,6 @@ Permission is granted to anyone to use this software for any purpose, including 3. This notice may not be removed or altered from any source distribution. ----------------------------------------------------- -LICENSE-MIT.md: - -MIT License - -Copyright (c) 2023 Daniel "Lokathor" Gee. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ==================================================== schemars 0.8.21 @@ -25664,6 +25664,35 @@ Defines the macros `defer!`, `defer_on_unwind!`, `defer_on_success!` as shorthands for guards with one of the implemented strategies. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2016-2019 Ulrik Sverdrup "bluss" and scopeguard developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -25869,11 +25898,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +serde 1.0.215 +https://serde.rs +by Erick Tryzelaar , David Tolnay +A generic serialization/deserialization framework +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2016-2019 Ulrik Sverdrup "bluss" and scopeguard developers - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -25898,13 +25932,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -serde 1.0.214 -https://serde.rs -by Erick Tryzelaar , David Tolnay -A generic serialization/deserialization framework -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -26085,6 +26112,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +serde_derive 1.0.215 +https://serde.rs +by Erick Tryzelaar , David Tolnay +Macros 1.1 implementation of #[derive(Serialize, Deserialize)] +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -26112,13 +26146,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -serde_derive 1.0.214 -https://serde.rs -by Erick Tryzelaar , David Tolnay -Macros 1.1 implementation of #[derive(Serialize, Deserialize)] -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -26299,6 +26326,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +serde_derive_internals 0.29.1 +https://serde.rs +by Erick Tryzelaar , David Tolnay +AST representation used by Serde derive macros. Unstable. +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -26326,13 +26360,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -serde_derive_internals 0.29.1 -https://serde.rs -by Erick Tryzelaar , David Tolnay -AST representation used by Serde derive macros. Unstable. -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -26513,6 +26540,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +serde_json 1.0.133 +https://github.com/serde-rs/json +by Erick Tryzelaar , David Tolnay +A JSON serialization file format +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -26540,13 +26574,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -serde_json 1.0.132 -https://github.com/serde-rs/json -by Erick Tryzelaar , David Tolnay -A JSON serialization file format -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -26727,6 +26754,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +serde_test 1.0.177 +https://github.com/serde-rs/test +by Erick Tryzelaar , David Tolnay +Token De/Serializer for testing De/Serialize implementations +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -26754,13 +26788,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -serde_test 1.0.177 -https://github.com/serde-rs/test -by Erick Tryzelaar , David Tolnay -Token De/Serializer for testing De/Serialize implementations -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -26941,9 +26968,18 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +serde_urlencoded 0.7.1 +https://github.com/nox/serde_urlencoded +by Anthony Ramine +`x-www-form-urlencoded` meets Serde +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2016 Anthony Ramine + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -26968,13 +27004,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -serde_urlencoded 0.7.1 -https://github.com/nox/serde_urlencoded -by Anthony Ramine -`x-www-form-urlencoded` meets Serde -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -27155,35 +27184,6 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2016 Anthony Ramine - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== simba 0.9.0 @@ -27439,6 +27439,35 @@ https://github.com/servo/rust-smallvec by The Servo Project Developers 'Small vector' optimization: store up to a small number of items on the stack License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Copyright (c) 2018 The Servo Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -27644,10 +27673,19 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +socket2 0.5.7 +https://github.com/rust-lang/socket2 +by Alex Crichton , Thomas de Zeeuw +Utilities for handling networking sockets with a maximal amount of configuration +possible intended. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2018 The Servo Project Developers +Copyright (c) 2014 Alex Crichton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -27673,15 +27711,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -socket2 0.5.7 -https://github.com/rust-lang/socket2 -by Alex Crichton , Thomas de Zeeuw -Utilities for handling networking sockets with a maximal amount of configuration -possible intended. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -27887,10 +27916,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +stable_deref_trait 1.2.0 +https://github.com/storyyeller/stable_deref_trait +by Robert Grosse +An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental. + +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2014 Alex Crichton +Copyright (c) 2017 Robert Grosse Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -27915,15 +27952,6 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -==================================================== -stable_deref_trait 1.2.0 -https://github.com/storyyeller/stable_deref_trait -by Robert Grosse -An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental. - -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -28129,34 +28157,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2017 Robert Grosse - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. ==================================================== struqture 1.9.2 @@ -28370,7 +28370,7 @@ LICENSE: ==================================================== -struqture 2.0.0-alpha.3 +struqture 2.0.0-alpha.4 by HQS Quantum Simulations HQS tool for representing operators, Hamiltonians and open systems. License: Apache-2.0 @@ -28798,11 +28798,38 @@ LICENSE: ==================================================== -syn 2.0.87 +syn 2.0.89 https://github.com/dtolnay/syn by David Tolnay Parser for Rust source code License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -28983,36 +29010,9 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS ----------------------------------------------------- -LICENSE-MIT: - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== -sync_wrapper 1.0.1 +sync_wrapper 1.0.2 https://docs.rs/sync_wrapper by Actyx AG A tool for enlisting the compiler's help in proving the absence of concurrency @@ -29545,11 +29545,38 @@ SOFTWARE. ==================================================== -thiserror 1.0.68 +thiserror 1.0.69 https://github.com/dtolnay/thiserror by David Tolnay derive(Error) License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -29730,6 +29757,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +thiserror-impl 1.0.69 +https://github.com/dtolnay/thiserror +by David Tolnay +Implementation detail of the `thiserror` crate +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -29757,13 +29791,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -thiserror-impl 1.0.68 -https://github.com/dtolnay/thiserror -by David Tolnay -Implementation detail of the `thiserror` crate -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -29944,33 +29971,6 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS ----------------------------------------------------- -LICENSE-MIT: - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== tinystr 0.7.6 @@ -30035,6 +30035,15 @@ https://github.com/Lokathor/tinyvec by Lokathor `tinyvec` provides 100% safe vec-like data structures. License: Zlib OR Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT.md: + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE.md: @@ -30256,15 +30265,6 @@ Permission is granted to anyone to use this software for any purpose, including 3. This notice may not be removed or altered from any source distribution. ----------------------------------------------------- -LICENSE-MIT.md: - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - ==================================================== tinyvec_macros 0.1.1 @@ -30272,6 +30272,31 @@ https://github.com/Soveu/tinyvec_macros by Soveu Some macros for tiny containers License: MIT OR Apache-2.0 OR Zlib +---------------------------------------------------- +LICENSE-MIT.md: + +MIT License + +Copyright (c) 2020 Soveu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE.md: @@ -30502,34 +30527,9 @@ freely, subject to the following restrictions: 3. This notice may not be removed or altered from any source distribution. ----------------------------------------------------- -LICENSE-MIT.md: - -MIT License - -Copyright (c) 2020 Soveu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ==================================================== -tokio 1.41.0 +tokio 1.41.1 https://tokio.rs by Tokio Contributors An event-driven, non-blocking I/O platform for writing asynchronous I/O @@ -30714,6 +30714,35 @@ Typenum is a Rust library for type-level numbers evaluated at integers. It also provides a type-level array of type-level numbers, but its implementation is incomplete. License: MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE: + +MIT OR Apache-2.0 +---------------------------------------------------- +LICENSE-MIT: + +The MIT License (MIT) + +Copyright (c) 2014 Paho Lurie-Gregg + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -30918,42 +30947,83 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +unicode-ident 1.0.14 +https://github.com/dtolnay/unicode-ident +by David Tolnay +Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31 +License: (MIT OR Apache-2.0) AND Unicode-3.0 ---------------------------------------------------- LICENSE-MIT: -The MIT License (MIT) +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: -Copyright (c) 2014 Paho Lurie-Gregg +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +---------------------------------------------------- +LICENSE-UNICODE: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +UNICODE LICENSE V3 ----------------------------------------------------- -LICENSE: +COPYRIGHT AND PERMISSION NOTICE -MIT OR Apache-2.0 +Copyright © 1991-2023 Unicode, Inc. + +NOTICE TO USER: Carefully read the following legal agreement. BY +DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR +SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT +DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of data files and any associated documentation (the "Data Files") or +software and any associated documentation (the "Software") to deal in the +Data Files or Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, and/or sell +copies of the Data Files or Software, and to permit persons to whom the +Data Files or Software are furnished to do so, provided that either (a) +this copyright and permission notice appear with all copies of the Data +Files or Software, or (b) this copyright and permission notice appear in +associated Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +THIRD PARTY RIGHTS. + +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE +BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA +FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in these Data Files or Software without prior written +authorization of the copyright holder. -==================================================== -unicode-ident 1.0.13 -https://github.com/dtolnay/unicode-ident -by David Tolnay -Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31 -License: (MIT OR Apache-2.0) AND Unicode-DFS-2016 ---------------------------------------------------- LICENSE-APACHE: @@ -31134,6 +31204,13 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +unindent 0.2.3 +https://github.com/dtolnay/indoc +by David Tolnay +Remove a column of leading whitespace from a string +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -31161,63 +31238,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------- -LICENSE-UNICODE: - -UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE - -See Terms of Use -for definitions of Unicode Inc.’s Data Files and Software. - -NOTICE TO USER: Carefully read the following legal agreement. -BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S -DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), -YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE -TERMS AND CONDITIONS OF THIS AGREEMENT. -IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE -THE DATA FILES OR SOFTWARE. - -COPYRIGHT AND PERMISSION NOTICE - -Copyright © 1991-2022 Unicode, Inc. All rights reserved. -Distributed under the Terms of Use in https://www.unicode.org/copyright.html. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Unicode data files and any associated documentation -(the "Data Files") or Unicode software and any associated documentation -(the "Software") to deal in the Data Files or Software -without restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, and/or sell copies of -the Data Files or Software, and to permit persons to whom the Data Files -or Software are furnished to do so, provided that either -(a) this copyright and permission notice appear with all copies -of the Data Files or Software, or -(b) this copyright and permission notice appear in associated -Documentation. - -THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT OF THIRD PARTY RIGHTS. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS -NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL -DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THE DATA FILES OR SOFTWARE. - -Except as contained in this notice, the name of a copyright holder -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in these Data Files or Software without prior -written authorization of the copyright holder. - - -==================================================== -unindent 0.2.3 -https://github.com/dtolnay/indoc -by David Tolnay -Remove a column of leading whitespace from a string -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -31398,9 +31418,18 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS + +==================================================== +url 2.5.4 +https://github.com/servo/rust-url +by The rust-url developers +URL library for Rust, based on the WHATWG URL Standard +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2013-2022 The rust-url developers + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -31425,13 +31454,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -url 2.5.3 -https://github.com/servo/rust-url -by The rust-url developers -URL library for Rust, based on the WHATWG URL Standard -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -31637,10 +31659,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +utf16_iter 1.0.5 +https://docs.rs/utf16_iter/ +by Henri Sivonen +Iterator by char over potentially-invalid UTF-16 in &[u16] +License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-MIT: -Copyright (c) 2013-2022 The rust-url developers +Copyright Mozilla Foundation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -31666,13 +31695,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -utf16_iter 1.0.5 -https://docs.rs/utf16_iter/ -by Henri Sivonen -Iterator by char over potentially-invalid UTF-16 in &[u16] -License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-APACHE: @@ -31879,6 +31901,13 @@ LICENSE-APACHE: See the License for the specific language governing permissions and limitations under the License. + +==================================================== +utf8_iter 1.0.4 +https://docs.rs/utf8_iter/ +by Henri Sivonen +Iterator by char over potentially-invalid UTF-8 in &[u8] +License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-MIT: @@ -31908,13 +31937,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -utf8_iter 1.0.4 -https://docs.rs/utf8_iter/ -by Henri Sivonen -Iterator by char over potentially-invalid UTF-8 in &[u8] -License: Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-APACHE: @@ -32121,35 +32143,6 @@ LICENSE-APACHE: See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright Mozilla Foundation - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== uuid 1.11.0 @@ -32157,211 +32150,6 @@ https://github.com/uuid-rs/uuid by Ashley Mannix, Dylan DPC, Hunar Roop Kahlon A library to generate and parse UUIDs. License: Apache-2.0 OR MIT ----------------------------------------------------- -LICENSE-APACHE: - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - ---------------------------------------------------- LICENSE-MIT: @@ -32392,20 +32180,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -uuid-simd 0.8.0 -https://github.com/Nugine/simd -by -SIMD-accelerated UUID operations -License: MIT - -==================================================== -version_check 0.9.5 -https://github.com/SergioBenitez/version_check -by Sergio Benitez -Tiny crate to check the version of the installed/running rustc. -License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -32611,6 +32385,20 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +uuid-simd 0.8.0 +https://github.com/Nugine/simd +by +SIMD-accelerated UUID operations +License: MIT + +==================================================== +version_check 0.9.5 +https://github.com/SergioBenitez/version_check +by Sergio Benitez +Tiny crate to check the version of the installed/running rustc. +License: MIT/Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -32634,6 +32422,211 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +---------------------------------------------------- +LICENSE-APACHE: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + ==================================================== vsimd 0.8.0 @@ -32679,6 +32672,33 @@ https://github.com/bytecodealliance/wasi by The Cranelift Project Developers Experimental WASI API bindings for Rust License: Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -33108,9 +33128,19 @@ the License, but only in their entirety and only with respect to the Combined Software. + +==================================================== +wasm-bindgen 0.2.95 +https://rustwasm.github.io/ +by The wasm-bindgen Developers +Easy support for interacting between JS and Rust. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: +Copyright (c) 2014 Alex Crichton + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -33135,14 +33165,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -wasm-bindgen 0.2.95 -https://rustwasm.github.io/ -by The wasm-bindgen Developers -Easy support for interacting between JS and Rust. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -33348,6 +33370,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +wasm-bindgen-backend 0.2.95 +https://rustwasm.github.io/wasm-bindgen/ +by The wasm-bindgen Developers +Backend code generation of the wasm-bindgen tool + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -33377,14 +33407,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -wasm-bindgen-backend 0.2.95 -https://rustwasm.github.io/wasm-bindgen/ -by The wasm-bindgen Developers -Backend code generation of the wasm-bindgen tool - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -33590,6 +33612,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +wasm-bindgen-futures 0.4.45 +https://rustwasm.github.io/wasm-bindgen/ +by The wasm-bindgen Developers +Bridging the gap between Rust Futures and JavaScript Promises +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -33619,13 +33648,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -wasm-bindgen-futures 0.4.45 -https://rustwasm.github.io/wasm-bindgen/ -by The wasm-bindgen Developers -Bridging the gap between Rust Futures and JavaScript Promises -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -33831,6 +33853,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +wasm-bindgen-macro 0.2.95 +https://rustwasm.github.io/wasm-bindgen/ +by The wasm-bindgen Developers +Definition of the `#[wasm_bindgen]` attribute, an internal dependency + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -33860,14 +33890,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -wasm-bindgen-macro 0.2.95 -https://rustwasm.github.io/wasm-bindgen/ -by The wasm-bindgen Developers -Definition of the `#[wasm_bindgen]` attribute, an internal dependency - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -34073,6 +34095,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +wasm-bindgen-macro-support 0.2.95 +https://rustwasm.github.io/wasm-bindgen/ +by The wasm-bindgen Developers +The part of the implementation of the `#[wasm_bindgen]` attribute that is not in the shared backend crate + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -34102,14 +34132,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -wasm-bindgen-macro-support 0.2.95 -https://rustwasm.github.io/wasm-bindgen/ -by The wasm-bindgen Developers -The part of the implementation of the `#[wasm_bindgen]` attribute that is not in the shared backend crate - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -34315,6 +34337,15 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +wasm-bindgen-shared 0.2.95 +https://rustwasm.github.io/wasm-bindgen/ +by The wasm-bindgen Developers +Shared support between wasm-bindgen and wasm-bindgen cli, an internal +dependency. + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -34344,15 +34375,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -wasm-bindgen-shared 0.2.95 -https://rustwasm.github.io/wasm-bindgen/ -by The wasm-bindgen Developers -Shared support between wasm-bindgen and wasm-bindgen cli, an internal -dependency. - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -34558,6 +34580,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +==================================================== +web-sys 0.3.72 +https://rustwasm.github.io/wasm-bindgen/web-sys/index.html +by The wasm-bindgen Developers +Bindings for all Web APIs, a procedurally generated crate from WebIDL + +License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-MIT: @@ -34587,14 +34617,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -web-sys 0.3.72 -https://rustwasm.github.io/wasm-bindgen/web-sys/index.html -by The wasm-bindgen Developers -Bindings for all Web APIs, a procedurally generated crate from WebIDL - -License: MIT OR Apache-2.0 ---------------------------------------------------- LICENSE-APACHE: @@ -34800,38 +34822,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright (c) 2014 Alex Crichton - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== -wide 0.7.28 +wide 0.7.30 https://github.com/Lokathor/wide by Lokathor A crate to help you go wide. @@ -37939,6 +37932,35 @@ https://docs.rs/write16/ by A UTF-16 analog of the Write trait License: Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +Copyright Mozilla Foundation + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + ---------------------------------------------------- LICENSE-APACHE: @@ -38145,35 +38167,6 @@ LICENSE-APACHE: See the License for the specific language governing permissions and limitations under the License. ----------------------------------------------------- -LICENSE-MIT: - -Copyright Mozilla Foundation - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - ==================================================== writeable 0.5.5 @@ -38233,7 +38226,7 @@ ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation a ==================================================== -yoke 0.7.4 +yoke 0.7.5 https://github.com/unicode-org/icu4x by Manish Goregaokar Abstraction allowing borrowed data to be carried along with the backing data it borrows from @@ -38290,7 +38283,7 @@ ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation a ==================================================== -yoke-derive 0.7.4 +yoke-derive 0.7.5 https://github.com/unicode-org/icu4x by Manish Goregaokar Custom derive for the yoke crate @@ -38352,6 +38345,36 @@ https://github.com/google/zerocopy by Joshua Liebow-Feeser Utilities for zero-copy parsing and serialization License: BSD-2-Clause OR Apache-2.0 OR MIT +---------------------------------------------------- +LICENSE-MIT: + +Copyright 2023 The Fuchsia Authors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + ---------------------------------------------------- LICENSE-APACHE: @@ -38586,6 +38609,13 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +==================================================== +zerocopy-derive 0.7.35 +https://github.com/google/zerocopy +by Joshua Liebow-Feeser +Custom derive for traits from the zerocopy crate +License: BSD-2-Clause OR Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-MIT: @@ -38616,13 +38646,6 @@ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==================================================== -zerocopy-derive 0.7.35 -https://github.com/google/zerocopy -by Joshua Liebow-Feeser -Custom derive for traits from the zerocopy crate -License: BSD-2-Clause OR Apache-2.0 OR MIT ---------------------------------------------------- LICENSE-APACHE: @@ -38857,39 +38880,9 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------- -LICENSE-MIT: - -Copyright 2023 The Fuchsia Authors - -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - - ==================================================== -zerofrom 0.1.4 +zerofrom 0.1.5 https://github.com/unicode-org/icu4x by Manish Goregaokar ZeroFrom trait for constructing @@ -38946,7 +38939,7 @@ ICU 1.8.1 to ICU 57.1 © 1995-2016 International Business Machines Corporation a ==================================================== -zerofrom-derive 0.1.4 +zerofrom-derive 0.1.5 https://github.com/unicode-org/icu4x by Manish Goregaokar Custom derive for the zerofrom crate diff --git a/qoqo/python/qoqo/operations.pyi b/qoqo/python/qoqo/operations.pyi index 21b76cc76..18b7beb0d 100644 --- a/qoqo/python/qoqo/operations.pyi +++ b/qoqo/python/qoqo/operations.pyi @@ -15154,3 +15154,1828 @@ Returns: Returns: str: The json schema serialized to json """ + +class InvSGate(Operation): + """ +The InvS gate. + +.. math:: + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & 0 \\\\ + 0 & -i + \end{pmatrix} + +Args: + qubit (int): The qubit the unitary gate is applied to. + +""" + + def __init__(self, qubit: int): + return + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def qubit(self): + """ + Return the qubit the operation acts on + + Returns: + int + """ + + def global_phase(self): + """ +Return the global phase :math:`g` of a unitary gate acting on one qubit + +Here global_phase is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_r(self): + """ +Return the property alpha_r :math:`\alpha_r` of a unitary gate acting on one qubit + +Here alpha_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_i(self): + """ +Return the property alpha_i :math:`\alpha_i` of a unitary gate acting on one qubit + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_r(self): + """ +Return the property beta_r :math:`\beta_r` of a unitary gate acting on one qubit + +Here beta_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_i(self): + """ +Returns the property beta_i :math:`\beta_i` of a unitary gate acting on one qubit + +Here beta_i is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + + +Returns: + CalculatorFloat +""" + + def mul(self) -> Operation: + """ + Multiplies two compatible operations implementing OperateSingleQubitGate. + + Does not consume the two operations being multiplied. + Only Operations + + Args: + `other` - An Operation implementing [OperateSingleQubitGate]. + + Returns: + Operation: Result of the multiplication, i.e. the multiplied single qubit gate. + + Example: + ``` + from qoqo.operations import RotateZ, RotateX + + gate1 = RotateZ(qubit=0, theta=1) + gate2 = RotateX(qubit=0, theta=1) + multiplied = gate1.mul(gate2) + print("Multiplied gate: ", multiplied) + ``` + + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class InvTGate(Operation): + """ +The InvT gate. + +.. math:: + U = \frac{1}{\sqrt{2}} \begin{pmatrix} + 1 & 0 \\\\ + 0 & e^{-i \frac{\pi}{4}} + \end{pmatrix} + +Args: + qubit (int): The qubit the unitary gate is applied to. + +""" + + def __init__(self, qubit: int): + return + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def qubit(self): + """ + Return the qubit the operation acts on + + Returns: + int + """ + + def global_phase(self): + """ +Return the global phase :math:`g` of a unitary gate acting on one qubit + +Here global_phase is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_r(self): + """ +Return the property alpha_r :math:`\alpha_r` of a unitary gate acting on one qubit + +Here alpha_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_i(self): + """ +Return the property alpha_i :math:`\alpha_i` of a unitary gate acting on one qubit + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_r(self): + """ +Return the property beta_r :math:`\beta_r` of a unitary gate acting on one qubit + +Here beta_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_i(self): + """ +Returns the property beta_i :math:`\beta_i` of a unitary gate acting on one qubit + +Here beta_i is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + + +Returns: + CalculatorFloat +""" + + def mul(self) -> Operation: + """ + Multiplies two compatible operations implementing OperateSingleQubitGate. + + Does not consume the two operations being multiplied. + Only Operations + + Args: + `other` - An Operation implementing [OperateSingleQubitGate]. + + Returns: + Operation: Result of the multiplication, i.e. the multiplied single qubit gate. + + Example: + ``` + from qoqo.operations import RotateZ, RotateX + + gate1 = RotateZ(qubit=0, theta=1) + gate2 = RotateX(qubit=0, theta=1) + multiplied = gate1.mul(gate2) + print("Multiplied gate: ", multiplied) + ``` + + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class SXGate(Operation): + """ +The SX gate. + +.. math:: + U = \frac{1}{\sqrt(2)} \begin{pmatrix} + 1+i & 1-i \\\\ + 1-i & 1+i + \end{pmatrix} + +Args: + qubit (int): The qubit the unitary gate is applied to. + +""" + + def __init__(self, qubit: int): + return + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def qubit(self): + """ + Return the qubit the operation acts on + + Returns: + int + """ + + def global_phase(self): + """ +Return the global phase :math:`g` of a unitary gate acting on one qubit + +Here global_phase is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_r(self): + """ +Return the property alpha_r :math:`\alpha_r` of a unitary gate acting on one qubit + +Here alpha_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_i(self): + """ +Return the property alpha_i :math:`\alpha_i` of a unitary gate acting on one qubit + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_r(self): + """ +Return the property beta_r :math:`\beta_r` of a unitary gate acting on one qubit + +Here beta_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_i(self): + """ +Returns the property beta_i :math:`\beta_i` of a unitary gate acting on one qubit + +Here beta_i is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + + +Returns: + CalculatorFloat +""" + + def mul(self) -> Operation: + """ + Multiplies two compatible operations implementing OperateSingleQubitGate. + + Does not consume the two operations being multiplied. + Only Operations + + Args: + `other` - An Operation implementing [OperateSingleQubitGate]. + + Returns: + Operation: Result of the multiplication, i.e. the multiplied single qubit gate. + + Example: + ``` + from qoqo.operations import RotateZ, RotateX + + gate1 = RotateZ(qubit=0, theta=1) + gate2 = RotateX(qubit=0, theta=1) + multiplied = gate1.mul(gate2) + print("Multiplied gate: ", multiplied) + ``` + + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class InvSXGate(Operation): + """ +The InvSX gate. + +.. math:: + U = \frac{1}{\sqrt(2)} \begin{pmatrix} + 1-i & 1+i \\\\ + 1+i & 1-i + \end{pmatrix} + +Args: + qubit (int): The qubit the unitary gate is applied to. + +""" + + def __init__(self, qubit: int): + return + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def qubit(self): + """ + Return the qubit the operation acts on + + Returns: + int + """ + + def global_phase(self): + """ +Return the global phase :math:`g` of a unitary gate acting on one qubit + +Here global_phase is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_r(self): + """ +Return the property alpha_r :math:`\alpha_r` of a unitary gate acting on one qubit + +Here alpha_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def alpha_i(self): + """ +Return the property alpha_i :math:`\alpha_i` of a unitary gate acting on one qubit + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_r(self): + """ +Return the property beta_r :math:`\beta_r` of a unitary gate acting on one qubit + +Here beta_r is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + +Returns: + CalculatorFloat +""" + + def beta_i(self): + """ +Returns the property beta_i :math:`\beta_i` of a unitary gate acting on one qubit + +Here beta_i is defined by + +.. math:: + U =e^{i \cdot g}\begin{pmatrix} + \alpha_r+i \alpha_i & -\beta_r+i \beta_i \\\\ + \beta_r+i \beta_i & \alpha_r-i\alpha_i + \end{pmatrix} + + +Returns: + CalculatorFloat +""" + + def mul(self) -> Operation: + """ + Multiplies two compatible operations implementing OperateSingleQubitGate. + + Does not consume the two operations being multiplied. + Only Operations + + Args: + `other` - An Operation implementing [OperateSingleQubitGate]. + + Returns: + Operation: Result of the multiplication, i.e. the multiplied single qubit gate. + + Example: + ``` + from qoqo.operations import RotateZ, RotateX + + gate1 = RotateZ(qubit=0, theta=1) + gate2 = RotateX(qubit=0, theta=1) + multiplied = gate1.mul(gate2) + print("Multiplied gate: ", multiplied) + ``` + + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class TripleControlledPauliX(Operation): + """ + The triple-controlled PauliX gate. + + """ + + def __init__(self): + return + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def control_0(self): + """ + Returns control_0 qubit of the four-qubit operation + """ + + def control_1(self): + """ + Returns control_1 qubit of the four-qubit operation + """ + + def control_2(self): + """ + Returns control_2 qubit of the four-qubit operation + """ + + def target(self): + """ + Returns target qubit of the four-qubit operation + """ + + def circuit(self): + """ + Returns circuit implementing the FourQubitGateOperation + + Returns: + Circuit + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class TripleControlledPauliZ(Operation): + """ + The triple-controlled PauliZ gate. + + """ + + def __init__(self): + return + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def control_0(self): + """ + Returns control_0 qubit of the four-qubit operation + """ + + def control_1(self): + """ + Returns control_1 qubit of the four-qubit operation + """ + + def control_2(self): + """ + Returns control_2 qubit of the four-qubit operation + """ + + def target(self): + """ + Returns target qubit of the four-qubit operation + """ + + def circuit(self): + """ + Returns circuit implementing the FourQubitGateOperation + + Returns: + Circuit + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class TripleControlledPhaseShift(Operation): + """ + The triple-controlled PhaseShift gate. + + """ + + def __init__(self): + return + + def theta(self): + """ + Returns value of attribute theta + """ + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def control_0(self): + """ + Returns control_0 qubit of the four-qubit operation + """ + + def control_1(self): + """ + Returns control_1 qubit of the four-qubit operation + """ + + def control_2(self): + """ + Returns control_2 qubit of the four-qubit operation + """ + + def target(self): + """ + Returns target qubit of the four-qubit operation + """ + + def circuit(self): + """ + Returns circuit implementing the FourQubitGateOperation + + Returns: + Circuit + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class ControlledSWAP(Operation): + """ +Implements ControlledSWAP gate. + +.. math:: + U = \begin{pmatrix} + 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 + \end{pmatrix} + +Args: + control (int): The index of the most significant qubit in the unitary representation. Here, the controlling qubit of the operation. + target_0 (int): The index of the second most significant qubit in the unitary representation. Here, the first targeting qubit of the operation. + target_1 (int): The index of the least significant qubit in the unitary representation. Here, the second targeting qubit of the operation. +""" + + def __init__(self, control: int, target_0: int, target_1: int): + return + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits in the ControlledSWAP operation + + Args: + mapping (Dict[int, int]): The mapping to be used in the remapping. + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved qubits in the ControlledSWAP operation. + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def control(self): + """ + Returns control qubit of the three-qubit operation + """ + + def target_0(self): + """ + Returns target_0 qubit of the three-qubit operation + """ + + def target_1(self): + """ + Returns target_1 qubit of the three-qubit operation + """ + + def circuit(self): + """ + Returns circuit implementing the ThreeQubitGateOperation + + Returns: + Circuit + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class PhaseShiftedControlledControlledZ(Operation): + """ +The phased-shifted double-controlled-Z gate. + +The unitary matrix representation is: + +.. math:: + U = \begin{pmatrix} + 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & e^{i \phi} & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & e^{i \phi} & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & e^{i (2\cdot\phi)} & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & e^{i \phi} & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & e^{i (2\cdot\phi)} & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & e^{i (2\cdot\phi)} & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & e^{i (3\cdot\phi + \pi)} + \end{pmatrix} + +Args: + control_0 (int): The index of the most significant qubit in the unitary representation. Here, the first qubit that controls the application of the phase-shift on the target qubit. + control_1 (int): The index of the second most significant qubit in the unitary representation. Here, the second qubit that controls the application of the phase-shift on the target qubit. + target (int):: The index of the least significant qubit in the unitary representation. Here, the qubit phase-shift is applied to. + phi (CalculatorFloat): The single qubit phase $\phi$. + +""" + + def __init__( + self, control_0: int, control_1: int, target: int, phi: Union[float, str] + ): + return + + def phi(self): + """ + Returns value of attribute phi + """ + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def control_0(self): + """ + Returns control_0 qubit of the three-qubit operation + """ + + def control_1(self): + """ + Returns control_1 qubit of the three-qubit operation + """ + + def target(self): + """ + Returns target qubit of the three-qubit operation + """ + + def circuit(self): + """ + Returns circuit implementing the ThreeQubitGateOperation + + Returns: + Circuit + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ + +class PhaseShiftedControlledControlledPhase(Operation): + """ +The phased-shifted double-controlled-Z gate. + +The unitary matrix representation is: + +.. math:: + U = \begin{pmatrix} + 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & e^{i \phi} & 0 & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & e^{i \phi} & 0 & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & e^{i (2\cdot\phi)} & 0 & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & e^{i \phi} & 0 & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & e^{i (2\cdot\phi)} & 0 & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & e^{i (2\cdot\phi)} & 0 \\\\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & e^{i (3\cdot\phi + \theta)} + \end{pmatrix} + +Args: + control_0 (int): The index of the most significant qubit in the unitary representation. Here, the first qubit that controls the application of the phase-shift on the target qubit. + control_1 (int): The index of the second most significant qubit in the unitary representation. Here, the second qubit that controls the application of the phase-shift on the target qubit. + target (int):: The index of the least significant qubit in the unitary representation. Here, the qubit phase-shift is applied to. + phi (CalculatorFloat): The single qubit phase $\phi$. + theta (CalculatorFloat): The phase rotation $\theta$. + +""" + + def __init__( + self, + control_0: int, + control_1: int, + target: int, + phi: Union[float, str], + theta: Union[float, str], + ): + return + + def theta(self): + """ + Returns value of attribute theta + """ + + def phi(self): + """ + Returns value of attribute phi + """ + + def is_parametrized(self) -> bool: + """ + Returns true if operation contains symbolic parameters + + Returns: + bool: Whether or not the operation contains symbolic parameters. + """ + + def tags(self) -> List[str]: + """ + Returns tags identifying the Operation + + Returns: + List[str]: The tags identifying the operation + """ + + def hqslang(self) -> str: + """ + Returns hqslang name of Operation + + Returns: + str: The name + """ + + def substitute_parameters( + self, substitution_parameters: Dict[str, float] + ) -> Operation: + """ + Substitutes internal symbolic parameters with float values + + Only available when all symbolic expressions can be evaluated to float with the + provided parameters. + + Args: + substitution_parameters (Dict[str, float]): The substituted free parameters + + Returns: + Operation: The operation with the parameters substituted + + Raises: + RuntimeError: Parameter Substitution failed + """ + + def remap_qubits(self, mapping: Dict[int, int]) -> Operation: + """ + Remap qubits + + Args: + mapping (Dict[int, int]): The mapping + + Returns: + Operation: The operation with the remapped qubits + + Raises: + RuntimeError: Qubit remapping failed + """ + + def involved_qubits(self) -> Union[Set[int], str]: + """ + List all involved Qubits + + Returns: + Union[Set[int], str]: The involved qubits as a set or 'ALL' if all qubits are involved + """ + + def control_0(self): + """ + Returns control_0 qubit of the three-qubit operation + """ + + def control_1(self): + """ + Returns control_1 qubit of the three-qubit operation + """ + + def target(self): + """ + Returns target qubit of the three-qubit operation + """ + + def circuit(self): + """ + Returns circuit implementing the ThreeQubitGateOperation + + Returns: + Circuit + """ + + def unitary_matrix(self) -> numpy.ndarray: + """ + Return unitary matrix of gate. + + Returns: + np.ndarray: matrix of gate. + + Raises: + ValueError: Error symbolic operation cannot return float unitary matrix + """ + + def powercf(self) -> PhaseShiftedControlledControlledPhase: + """ + Returns Rotated gate raised to power + + Args: + `power`(CalculatorFloat): exponent of the power operation. + + Returns: + Self: gate raised to the power of `power` + + """ + + def current_version(self) -> str: + """ + Returns the current version of the qoqo library . + + Returns: + str: The current version of the library. + """ + + def min_supported_version(self) -> str: + """ + Return the minimum version of qoqo that supports this object. + + Returns: + str: The minimum version of the qoqo library to deserialize this object. + """ + + def json_schema(self) -> str: + """ + Return the JsonSchema for the json serialisation of the class. + + Returns: + str: The json schema serialized to json + """ diff --git a/qoqo/python/qoqo/qoqo.pyi b/qoqo/python/qoqo/qoqo.pyi index 6da02a39f..99e723b83 100644 --- a/qoqo/python/qoqo/qoqo.pyi +++ b/qoqo/python/qoqo/qoqo.pyi @@ -14,10 +14,12 @@ qoqo is the HQS python package to represent quantum circuits. :toctree: generated/ Circuit + CircuitDag operations - registers - measurements QuantumProgram + measurements + devices + noise_models """ diff --git a/roqoqo-test/Cargo.toml b/roqoqo-test/Cargo.toml index d12c55a9d..5ec184582 100644 --- a/roqoqo-test/Cargo.toml +++ b/roqoqo-test/Cargo.toml @@ -18,9 +18,7 @@ doctest = false crate-type = ["rlib"] [dependencies] -roqoqo = { version = "~1.16", path = "../roqoqo", features = [ - "serialize", -] } +roqoqo = { version = "~1.16", path = "../roqoqo", features = ["serialize"] } rand = "~0.8" nalgebra = "0.33.1" ndarray = { version = "0.15" }