Skip to content

Latest commit

 

History

History
290 lines (273 loc) · 18.3 KB

DEPENDENCIES.md

File metadata and controls

290 lines (273 loc) · 18.3 KB

NOTE: this information is out-of-date!

See #649.

Depencencies

or: "Know Your Dependencies"

One of Abscissa's primary goals is to maximize functionality while minimizing the number of dependencies. Abscissa is used in a number of high-security contexts, and as such we view each additional dependency as additional attack surface and therefore a potential liability. We have therefore been very conscientious about the dependencies we use and will not add additional dependencies without due consideration.

Here are all of Abscissa's transitive dependencies when configured with the default set of features in the application:

# Crate Name Origin License Description
1 abscissa_core iqlusion Apache-2.0 Abscissa framework
2 aho-corasick @BurntSushi MIT/Unlicense Pattern-matching alg
3 ansi_term @ogham MIT Terminal color libray
4 arc-swap @vorner Apache-2.0/MIT Atomic swap for Arc
5 atty @softprops MIT Detect TTY presence
6 autocfg @cuviper Apache-2.0/MIT Rust compiler configs
7 backtrace @alexcrichton Apache-2.0/MIT Capture stack traces
8 backtrace-sys @alexcrichton Apache-2.0/MIT Capture stack traces
9 byteorder @BurntSushi MIT/Unlicense Byte order conversions
10 canonical-path iqlusion Apache-2.0 Get canonical fs paths
11 chrono chronotope Apache-2.0/MIT Time/date library
12 clap @Kevin K Apache-2.0/MIT Command-line interface
13 color-backtrace @athre0z Apache-2.0/MIT Rich colored backtraces
14 fs-err @andrewhickman Apache-2.0/MIT Better filesystem errors
15 generational-arena @fitzgen MPL-2.0 Component allocator
16 lazy_static rust-lang Apache-2.0/MIT Heap-allocated statics
17 libc rust-lang Apache-2.0/MIT C library wrapper
18 log rust-lang Apache-2.0/MIT Logging facade library
19 matchers @hawkw MIT Stream regex matching
20 maybe-uninit @est31 Apache-2.0/MIT MaybeUninit compat
21 memchr @BurntSushi MIT/Unlicense Optimized byte search
22 num-integer rust-num Apache-2.0/MIT Integer trait
23 num-traits rust-num Apache-2.0/MIT Numeric traits
24 once_cell @matklad Apache-2.0/MIT Single assignment cells
25 redox_syscall redox-os MIT Redox OS syscall API
26 regex rust-lang Apache-2.0/MIT Regular expressions
27 regex-automata @BurntSushi MIT/Unlicense Low-level regex DFAs
28 regex-syntax rust-lang Apache-2.0/MIT Regex syntax impl
29 rustc-demangle @alexcrichton Apache-2.0/MIT Symbol demangling
30 secrecy iqlusion Apache-2.0 Secret-keeping types
31 semver @steveklabnik Apache-2.0/MIT Semantic versioning
32 semver-parser @steveklabnik Apache-2.0/MIT Parser for semver spec
33 serde serde-rs Apache-2.0/MIT Serialization framework
34 sharded-slab @hawkw MIT Concurrent slab allocator
35 signal-hook @vorner Apache-2.0/MIT Unix signal handling
36 signal-hook-registry @vorner Apache-2.0/MIT Unix signal registry
37 smallvec servo Apache-2.0/MIT Optimized small vectors
38 termcolor @BurntSushi MIT/Unlicense Terminal color support
39 thread_local @Amanieu Apache-2.0/MIT Per-object thread local
40 time rust-lang Apache-2.0/MIT Time/date library
41 toml @alexcrichton Apache-2.0/MIT TOML parser library
42 tracing tokio-rs MIT App tracing / logging
43 tracing-core tokio-rs MIT App tracing / logging
44 tracing-log tokio-rs MIT log compatibility
45 tracing-subscriber tokio-rs MIT Tracing subscribers
46 utf8-ranges @BurntSushi MIT/Unlicense UTF-8 codepoint ranges
47 winapi§ @retep998 Apache-2.0/MIT Windows FFI bindings
48 winapi-util @BurntSushi MIT/Unlicense Safe winapi wrappers
49 wincolor @BurntSushi MIT/Unlicense Windows console color
50 zeroize iqlusion Apache-2.0/MIT Zero out sensitive data

Build / Development / Testing Dependencies

# Crate Name Origin License Description
1 abscissa_derive iqlusion Apache-2.0 Abscissa custom derive
2 cc @alexcrichton Apache-2.0/MIT C/C++ compiler wrapper
3 cfg-if @alexcrichton Apache-2.0/MIT If-like #[cfg] macros
4 clap_derive @Kevin K Apache-2.0/MIT Command-line interface
5 darling @TedDriggs MIT Nifty attribute parser
6 darling_core @TedDriggs MIT Attribute parser core
7 darling_macro @TedDriggs MIT Attribute parser macros
8 fnv @alexcrichton Apache-2.0/MIT Fast hash function
9 ident_case @TedDriggs Apache-2.0/MIT Case conversion utils
10 proc-macro2 @alexcrichton Apache-2.0/MIT Shim for Macros 2.0 API
11 quote @dtolnay Apache-2.0/MIT Rust AST to token macro
12 serde_derive serde-rs Apache-2.0/MIT serde custom derive
13 strsim @dguo MIT String similarity utils
14 syn @dtolnay Apache-2.0/MIT Rust source code parser
15 synstructure @mystor Apache-2.0/MIT syn structure macros
16 thiserror @dtolnay Apache-2.0/MIT Error custom derive
17 tracing-attributes tokio-rs MIT App tracing / logging
18 unicode-xid unicode-rs Apache-2.0/MIT Identify valid Unicode
19 wait-timeout @alexcrichton Apache-2.0/MIT Timeouts for waitpid

Dependency Relationships

The table below should help answer questions as to why a particular crate is an Abscissa dependency and whether or not it is optional. Abscissa uses [cargo features] to allow parts of it you aren't using to be easily disabled, so you only compile the parts you need.

Crate Name [Cargo Features] Required By
abscissa_core -
abscissa_derive - abscissa_core
aho-corasick trace, testing regex
ansi_term trace tracing-subscriber
arc-swap signals signal-hook-registry
atty terminal color-backtrace
autocfg time num-integer
backtrace - abscissa_core
backtrace-sys - backtrace
byteorder trace regex-automata
canonical-path - abscissa_core
cc - backtrace-sys
cfg-if - backtrace, log
color-backtrace terminal abscissa_core
chrono time abscissa_core
clap option abscissa_core
clap_derive option clap
darling - abscissa_derive
darling_core - darling, darling_macro
darling_macro - darling
fs-err - abscissa_core
fnv - darling_core
generational-arena application abscissa_core
ident_case - abscissa_derive, darling_core
lazy_static testing, trace thread_local, tracing-core, tracing-log, tracing-subscriber
libc signals abscissa_core
log logging abscissa_core
matchers trace tracing-subscriber
memchr trace, testing aho-corasick
maybe-uninit trace smallvec
num-integer time chrono
num-traits time chrono, num-integer
once_cell - abscissa_core
proc-macro2 - abscissa_derive, darling, quote, serde_derive, syn
quote - abscissa_derive, darling, serde_derive
redox_syscall time time
regex trace, testing abscissa_core
regex-automata trace matchers
regex-syntax trace, testing abscissa_core
rustc-demangle - backtrace
secrecy secrets abscissa_core
semver application abscissa_core
semver-parser application abscissa_core
serde config abscissa_core
serde_derive config serde
signal-hook signals abscissa_core
sharded-slab trace tracing-subscriber
signal-hook-registry signals signal-hook
smallvec trace tracing-subscriber
strsim - darling_core
syn - abscissa_derive, darling, serde_derive
termcolor terminal abscissa_core
thiserror - Abscissa boilerplate
thread_local trace, testing regex
time logging chrono
tracing trace abscissa_core
tracing-attributes trace tracing
tracing-core trace tracing
tracing-log trace abscissa_core
tracing-subscriber trace abscissa_core
unicode-xid - proc-macro2, syn
utf8-ranges trace, testing regex
wait-timeout testing abscissa_core
winapi§ - termcolor, time, winapi-util
winapi-util - termcolor
wincolor terminal termcolor
zeroize - abscissa_core