Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Run tests
run: cargo test --verbose
run: cargo test --workspace --verbose
- name: Verify working directory is clean
run: git diff --exit-code

Expand All @@ -32,7 +32,7 @@ jobs:
- name: Remove lockfile to build with latest dependencies
run: rm Cargo.lock
- name: Build crate
run: cargo build --all-features --verbose
run: cargo build --workspace --all-features --verbose
- name: Verify working directory is clean (excluding lockfile)
run: git diff --exit-code ':!Cargo.lock'

Expand Down Expand Up @@ -67,9 +67,9 @@ jobs:
- name: Add lazy_static with the spin_no_std feature
working-directory: ./ci-build
run: cargo add lazy_static --no-default-features --features "spin_no_std"
- name: Add typenum with the no_std feature
- name: Add typenum with no default features
working-directory: ./ci-build
run: cargo add typenum --no-default-features --features "no_std"
run: cargo add typenum --no-default-features
- name: Show Cargo.toml for the synthetic crate
working-directory: ./ci-build
run: cat Cargo.toml
Expand All @@ -89,7 +89,7 @@ jobs:
- uses: actions/checkout@v4
# Build benchmarks to prevent bitrot
- name: Build benchmarks
run: cargo build --benches
run: cargo build --workspace --benches

book:
name: Book tests
Expand All @@ -113,7 +113,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Generate coverage report
run: cargo tarpaulin --engine llvm --all-features --release --timeout 600 --out xml
run: cargo tarpaulin --workspace --engine llvm --all-features --release --timeout 600 --out xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3.1.4

Expand All @@ -126,7 +126,7 @@ jobs:
# Requires #![deny(rustdoc::broken_intra_doc_links)] in crates.
- run: sudo apt-get -y install libfontconfig1-dev
- name: Check intra-doc links
run: cargo doc --all-features --document-private-items
run: cargo doc --workspace --all-features --document-private-items

fmt:
name: Rustfmt
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/lints-stable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ jobs:
- name: Add lazy_static with the spin_no_std feature
working-directory: ./ci-build
run: cargo add lazy_static --no-default-features --features "spin_no_std"
- name: Add typenum with the no_std feature
- name: Add typenum with no default features
working-directory: ./ci-build
run: cargo add typenum --no-default-features --features "no_std"
run: cargo add typenum --no-default-features
- name: Show Cargo.toml for the synthetic crate
working-directory: ./ci-build
run: cat Cargo.toml
Expand Down
11 changes: 11 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 11 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
[workspace]
members = [".", "public"]

[workspace.dependencies]
__impl = { version = "=0.12.0", path = ".", package = "orchard_internal", default-features = false }

[package]
name = "orchard"
name = "orchard_internal"
version = "0.12.0"
authors = [
"Sean Bowe",
"Jack Grigg <jack@electriccoin.co>",
"Sean Bowe <ewillbefull@gmail.com>",
"Jack Grigg <thestr4d@gmail.com>",
"Daira-Emma Hopwood <daira@jacaranda.org>",
"Ying Tong Lai",
"Kris Nuttycombe <kris@electriccoin.co>",
"Kris Nuttycombe <kris@nutty.land>",
]
edition = "2021"
rust-version = "1.85.1"
description = "The Orchard shielded transaction protocol"
license = "MIT OR Apache-2.0"
repository = "https://github.com/zcash/orchard"
documentation = "https://docs.rs/orchard"
readme = "README.md"
readme = "INTERNAL-README.md"
Comment thread
ebfull marked this conversation as resolved.
categories = ["cryptography::cryptocurrencies"]
keywords = ["zcash"]

Expand Down
3 changes: 3 additions & 0 deletions INTERNAL-README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# orchard_internal

This is the implementation crate for the Orchard shielded transaction protocol. It is not intended to be used directly. Depend on the [`orchard`](https://crates.io/crates/orchard) crate instead, which re-exports the public API from this crate.
3 changes: 2 additions & 1 deletion LICENSE-MIT
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
The MIT License (MIT)

Copyright (c) 2020-2023 The Electric Coin Company
Copyright (c) 2020-2025 The Electric Coin Company
Copyright (c) 2026 Zcash Open Development Lab

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
12 changes: 4 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# orchard [![Crates.io](https://img.shields.io/crates/v/orchard.svg)](https://crates.io/crates/orchard) #

Requires Rust 1.66+.
Requires Rust 1.85.1+.

## Documentation

Expand All @@ -10,13 +10,9 @@ Requires Rust 1.66+.
## `no_std` compatibility

In order to take advantage of `no_std` builds, downstream users of this crate
must enable:

* the `spin_no_std` feature of the `lazy_static` crate; and
* the `no_std` feature of the `typenum` crate.

This is needed because the `--no-default-features` builds of these crates still
rely on `std`.
must enable the `spin_no_std` feature of the `lazy_static` crate. This is
needed because the `--no-default-features` build of `lazy_static` still relies
on `std`.

## License

Expand Down
2 changes: 1 addition & 1 deletion benches/circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use criterion::{BenchmarkId, Criterion};
#[cfg(unix)]
use pprof::criterion::{Output, PProfProfiler};

use orchard::{
use orchard_internal::{
builder::{Builder, BundleType},
circuit::{ProvingKey, VerifyingKey},
keys::{FullViewingKey, Scope, SpendingKey},
Expand Down
2 changes: 1 addition & 1 deletion benches/note_decryption.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput};
use orchard::{
use orchard_internal::{
builder::{Builder, BundleType},
circuit::ProvingKey,
keys::{FullViewingKey, PreparedIncomingViewingKey, Scope, SpendingKey},
Expand Down
2 changes: 1 addition & 1 deletion benches/small.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use criterion::{criterion_group, criterion_main, Criterion};
use orchard::keys::{FullViewingKey, Scope, SpendingKey};
use orchard_internal::keys::{FullViewingKey, Scope, SpendingKey};

fn key_derivation(c: &mut Criterion) {
// Meaningless random spending key.
Expand Down
41 changes: 41 additions & 0 deletions public/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
[package]
name = "orchard"
version = "0.12.0"
authors = [
"Sean Bowe <ewillbefull@gmail.com>",
"Jack Grigg <thestr4d@gmail.com>",
"Daira-Emma Hopwood <daira@jacaranda.org>",
"Ying Tong Lai",
"Kris Nuttycombe <kris@nutty.land>",
]
edition = "2021"
rust-version = "1.70"
description = "The Orchard shielded transaction protocol"
license = "MIT OR Apache-2.0"
repository = "https://github.com/zcash/orchard"
documentation = "https://docs.rs/orchard"
readme = "README.md"
categories = ["cryptography::cryptocurrencies"]
keywords = ["zcash"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs", "--html-in-header", "katex-header.html"]

[dependencies]
__impl = { workspace = true }

[features]
default = ["circuit", "multicore", "std"]
std = ["__impl/std"]
circuit = ["__impl/circuit"]
multicore = ["__impl/multicore"]
unstable-frost = ["__impl/unstable-frost"]
dev-graph = ["__impl/dev-graph"]
test-dependencies = ["__impl/test-dependencies"]

[dev-dependencies]
incrementalmerkletree = "0.8.1"
rand = "0.8"
shardtree = "0.6"
zcash_note_encryption = "0.4"
1 change: 1 addition & 0 deletions public/LICENSE-APACHE
1 change: 1 addition & 0 deletions public/LICENSE-MIT
1 change: 1 addition & 0 deletions public/README.md
1 change: 1 addition & 0 deletions public/katex-header.html
Comment thread
ebfull marked this conversation as resolved.
Loading
Loading