Skip to content

Commit

Permalink
Merge pull request #2086 from AleoHQ/feat/wasm-optimizations
Browse files Browse the repository at this point in the history
Wasm Binary Size Optimizations + Expansion of Wasm Exports
  • Loading branch information
howardwu authored Dec 17, 2023
2 parents 140cd7c + 8358c00 commit 2857b2e
Show file tree
Hide file tree
Showing 9 changed files with 67 additions and 21 deletions.
9 changes: 4 additions & 5 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions circuit/network/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ path = "../../console/types"
[features]
default = [ "enable_console" ]
enable_console = [ "console" ]
wasm = [ "console/wasm"]
2 changes: 1 addition & 1 deletion ledger/query/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ serial = [
"ledger-store/serial",
"synthesizer-program/serial"
]
wasm = [ "console/wasm", "synthesizer-program/wasm" ]
wasm = [ "console/wasm", "ledger-store/wasm", "synthesizer-program/wasm" ]
query = [ "ledger-store", "synthesizer-program", "ureq" ]

[dependencies.console]
Expand Down
10 changes: 10 additions & 0 deletions ledger/store/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,16 @@ serial = [
"synthesizer-program/serial",
"synthesizer-snark/serial"
]
wasm = [
"console/wasm",
"ledger-authority/wasm",
"ledger-block/wasm",
"ledger-coinbase/wasm",
"ledger-committee/wasm",
"ledger-narwhal-batch-certificate/wasm",
"synthesizer-program/wasm",
"synthesizer-snark/wasm"
]
test = [ ]

[dependencies.console]
Expand Down
12 changes: 12 additions & 0 deletions parameters/src/testnet3/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,14 @@ pub use powers::*;
const REMOTE_URL: &str = "https://s3-us-west-1.amazonaws.com/testnet3.parameters";

// Degrees
#[cfg(not(feature = "wasm"))]
impl_local!(Degree15, "resources/", "powers-of-beta-15", "usrs");
#[cfg(feature = "wasm")]
impl_remote!(Degree15, REMOTE_URL, "resources/", "powers-of-beta-15", "usrs");
#[cfg(not(feature = "wasm"))]
impl_local!(Degree16, "resources/", "powers-of-beta-16", "usrs");
#[cfg(feature = "wasm")]
impl_remote!(Degree16, REMOTE_URL, "resources/", "powers-of-beta-16", "usrs");
impl_remote!(Degree17, REMOTE_URL, "resources/", "powers-of-beta-17", "usrs");
impl_remote!(Degree18, REMOTE_URL, "resources/", "powers-of-beta-18", "usrs");
impl_remote!(Degree19, REMOTE_URL, "resources/", "powers-of-beta-19", "usrs");
Expand All @@ -37,7 +43,13 @@ impl_remote!(Degree27, REMOTE_URL, "resources/", "powers-of-beta-27", "usrs");
impl_remote!(Degree28, REMOTE_URL, "resources/", "powers-of-beta-28", "usrs");

// Shifted Degrees
#[cfg(not(feature = "wasm"))]
impl_local!(ShiftedDegree15, "resources/", "shifted-powers-of-beta-15", "usrs");
#[cfg(feature = "wasm")]
impl_remote!(ShiftedDegree15, REMOTE_URL, "resources/", "shifted-powers-of-beta-15", "usrs");
#[cfg(not(feature = "wasm"))]
impl_local!(ShiftedDegree16, "resources/", "shifted-powers-of-beta-16", "usrs");
#[cfg(feature = "wasm")]
impl_remote!(ShiftedDegree16, REMOTE_URL, "resources/", "shifted-powers-of-beta-16", "usrs");
impl_remote!(ShiftedDegree17, REMOTE_URL, "resources/", "shifted-powers-of-beta-17", "usrs");
impl_remote!(ShiftedDegree18, REMOTE_URL, "resources/", "shifted-powers-of-beta-18", "usrs");
Expand Down
Binary file not shown.
1 change: 1 addition & 0 deletions synthesizer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ wasm = [
"ledger-coinbase/wasm",
"ledger-committee/wasm",
"ledger-query/wasm",
"ledger-store/wasm",
"synthesizer-process/wasm",
"synthesizer-program/wasm",
"synthesizer-snark/wasm"
Expand Down
43 changes: 28 additions & 15 deletions wasm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,21 @@ crate-type = [ "cdylib", "rlib" ]

[features]
default = [ "full" ]
full = [ "console", "curves", "fields", "synthesizer", "utilities" ]
full = [ "circuit", "console", "curves", "fields", "ledger", "synthesizer", "utilities" ]
circuit = [ "snarkvm-circuit-network" ]
console = [ "snarkvm-console" ]
curves = [ "snarkvm-curves" ]
fields = [ "snarkvm-fields" ]
ledger = [ "snarkvm-ledger-block", "snarkvm-ledger-query", "snarkvm-ledger-store" ]
synthesizer = [ "snarkvm-synthesizer" ]
utilities = [ "snarkvm-utilities" ]

[dependencies.snarkvm-circuit-network]
path = "../circuit/network"
version = "=0.16.12"
features = [ "wasm" ]
optional = true

[dependencies.snarkvm-console]
path = "../console"
version = "=0.16.12"
Expand All @@ -51,11 +59,29 @@ path = "../fields"
version = "=0.16.12"
optional = true

[dependencies.snarkvm-ledger-block]
path = "../ledger/block"
version = "=0.16.12"
features = [ "wasm" ]
optional = true

[dependencies.snarkvm-ledger-query]
path = "../ledger/query"
version = "=0.16.12"
features = [ "async", "wasm" ]
optional = true

[dependencies.snarkvm-ledger-store]
path = "../ledger/store"
version = "=0.16.12"
features = [ "wasm" ]
optional = true

[dependencies.snarkvm-synthesizer]
path = "../synthesizer"
version = "=0.16.12"
default-features = false
features = [ "wasm" ]
features = [ "async", "wasm" ]
optional = true

[dependencies.snarkvm-utilities]
Expand All @@ -64,19 +90,6 @@ version = "=0.16.12"
features = [ "wasm" ]
optional = true

[dependencies.rand]
version = "0.8"
default-features = false

[dependencies.serde]
version = "1.0.188"
default-features = false
features = [ "derive" ]

[dependencies.wasm-bindgen]
version = "0.2"
features = [ "serde-serialize" ]

[dependencies.getrandom]
version = "0.2"
features = [ "js" ]
Expand Down
10 changes: 10 additions & 0 deletions wasm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,22 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#[cfg(feature = "network")]
pub use snarkvm_circuit_network as circuit_network;
#[cfg(feature = "console")]
pub use snarkvm_console as console;
#[cfg(feature = "network")]
pub use snarkvm_console::network as console_network;
#[cfg(feature = "curves")]
pub use snarkvm_curves as curves;
#[cfg(feature = "fields")]
pub use snarkvm_fields as fields;
#[cfg(feature = "ledger")]
pub use snarkvm_ledger_block as ledger_block;
#[cfg(feature = "ledger")]
pub use snarkvm_ledger_query as ledger_query;
#[cfg(feature = "ledger")]
pub use snarkvm_ledger_store as ledger_store;
#[cfg(feature = "synthesizer")]
pub use snarkvm_synthesizer as synthesizer;
#[cfg(feature = "utilities")]
Expand Down

0 comments on commit 2857b2e

Please sign in to comment.