-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
Background
The compilation time and security are affected by the number of dependencies in the tree, and currently we have 195 dependencies for this fairly small crate. A debug build with a single near-sandbox crate dependency (taken from main branch) takes 10 seconds to build.
This is a follow up story to the discussion we had #7 (comment)
User Story
As a developer, I want to have a secure crates that compile as fast as possible.
Acceptance Criteria
- Reduce the scope of the required crates, e.g. we don't really need async, json, etc.
- Try to use
default-features = falsewherever possible - Identify some other low-hanging fruit that would improve the compilation time
- Do not compromise the developer experience, maintainability, and security
Resources & Additional Notes
$ cargo new test-sandbox
$ cd test-sandbox
$ cargo add near-sandbox --git https://github.com/near/near-sandbox-rs
$ cargo build
Compiling cfg-if v1.0.1
Compiling stable_deref_trait v1.2.0
Compiling itoa v1.0.15
Compiling libc v0.2.174
Compiling subtle v2.6.1
Compiling writeable v0.6.1
Compiling litemap v0.8.0
Compiling typenum v1.18.0
Compiling smallvec v1.15.1
Compiling zerofrom v0.1.6
Compiling bytes v1.10.1
Compiling futures-core v0.3.31
Compiling pin-project-lite v0.2.16
Compiling yoke v0.8.0
Compiling once_cell v1.21.3
Compiling icu_normalizer_data v2.0.0
Compiling serde v1.0.219
Compiling icu_properties_data v2.0.1
Compiling zeroize v1.8.1
Compiling percent-encoding v2.3.1
Compiling zerovec v0.11.2
Compiling zerotrie v0.2.2
Compiling fnv v1.0.7
Compiling bitflags v2.9.1
Compiling rustls-pki-types v1.12.0
Compiling jobserver v0.1.33
Compiling mio v1.0.4
Compiling socket2 v0.5.10
Compiling generic-array v0.14.7
Compiling http v1.3.1
Compiling cpufeatures v0.2.17
Compiling cc v1.2.30
Compiling signal-hook-registry v1.4.5
Compiling futures-task v0.3.31
Compiling pin-utils v0.1.0
Compiling tokio v1.46.1
Compiling getrandom v0.2.16
Compiling futures-util v0.3.31
Compiling errno v0.3.13
Compiling form_urlencoded v1.2.1
Compiling crypto-common v0.1.6
Compiling tinystr v0.8.1
Compiling potential_utf v0.1.2
Compiling block-buffer v0.10.4
Compiling ryu v1.0.20
Compiling icu_collections v2.0.0
Compiling http-body v1.0.1
Compiling icu_locale_core v2.0.0
Compiling digest v0.10.7
Compiling utf8_iter v1.0.4
Compiling untrusted v0.9.0
Compiling adler2 v2.0.1
Compiling rustix v1.0.8
Compiling inout v0.1.4
Compiling miniz_oxide v0.8.9
Compiling crc32fast v1.5.0
Compiling try-lock v0.2.5
Compiling base64ct v1.8.0
Compiling rand_core v0.6.4
Compiling base64 v0.22.1
Compiling icu_provider v2.0.0
Compiling tower-service v0.3.3
Compiling powerfmt v0.2.0
Compiling log v0.4.27
Compiling icu_normalizer v2.0.0
Compiling icu_properties v2.0.1
Compiling zstd-sys v2.0.15+zstd.1.5.7
Compiling ring v0.17.14
Compiling bzip2-sys v0.1.13+1.0.8
Compiling deranged v0.4.0
Compiling password-hash v0.4.2
Compiling flate2 v1.1.2
Compiling want v0.3.1
Compiling cipher v0.4.4
Compiling sha2 v0.10.9
Compiling hmac v0.12.1
Compiling httparse v1.10.1
Compiling webpki-roots v1.0.1
Compiling tracing-core v0.1.34
Compiling futures-channel v0.3.31
Compiling sync_wrapper v1.0.2
Compiling idna_adapter v1.2.1
Compiling num-conv v0.1.0
Compiling idna v1.0.3
Compiling tower-layer v0.3.3
Compiling memchr v2.7.5
Compiling time-core v0.1.4
Compiling time v0.3.41
Compiling tracing v0.1.41
Compiling tower v0.5.2
Compiling url v2.5.4
Compiling serde_json v1.0.140
Compiling hyper v1.6.0
Compiling webpki-roots v0.26.11
Compiling pbkdf2 v0.11.0
Compiling aes v0.8.4
Compiling bzip2 v0.4.4
Compiling xattr v1.5.1
Compiling sha1 v0.10.6
Compiling filetime v0.2.25
Compiling dirs-sys-next v0.1.2
Compiling constant_time_eq v0.1.5
Compiling ipnet v2.11.0
Compiling byteorder v1.5.0
Compiling iri-string v0.7.8
Compiling tar v0.4.44
Compiling dirs-next v2.0.0
Compiling thiserror v1.0.69
Compiling hyper-util v0.1.15
Compiling jsonptr v0.7.1
Compiling anyhow v1.0.98
Compiling getrandom v0.3.3
Compiling serde_urlencoded v0.7.1
Compiling http-body-util v0.1.3
Compiling fs2 v0.4.3
Compiling hex v0.4.3
Compiling fastrand v2.3.0
Compiling is_executable v0.1.2
Compiling siphasher v0.3.11
Compiling thiserror v2.0.12
Compiling json-patch v4.0.0
Compiling tempfile v3.20.0
Compiling near-account-id v1.1.3
Compiling near-token v0.3.0
Compiling home v0.5.11
Compiling tower-http v0.6.6
Compiling reqwest v0.12.22
Compiling rustls v0.23.29
Compiling rustls-webpki v0.103.4
Compiling zstd-safe v5.0.2+zstd.1.5.2
Compiling zstd v0.11.2+zstd.1.5.2
Compiling zip v0.6.6
Compiling ureq v2.12.1
Compiling binary-install v0.2.0
Compiling near-sandbox v0.1.0 (https://github.com/near/near-sandbox-rs#71bd2689)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.60s
Metadata
Metadata
Assignees
Labels
No labels