-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
99 lines (87 loc) · 5.47 KB
/
Copy pathCargo.toml
File metadata and controls
99 lines (87 loc) · 5.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
[package]
name = "starfix"
version = "0.4.0"
edition = "2021"
description = "Package for hashing Arrow's data structures uniquely for identifying and comparing data efficiently."
authors = ["synicix <synicix@gmail.com>"]
readme = "README.md"
repository = "https://github.com/nauticalab/starfix"
license = "MIT OR Apache-2.0"
keywords = ["arrow", "hashing"]
categories = ["algorithms"]
[dependencies]
arrow = { version = "57.0.0", features = ["ffi"] }
arrow-buffer = { version = "57.0.0" }
arrow-ipc = { version = "57.0.0" }
arrow-schema = { version = "57.0.0", features = ["serde"] }
base64 = "0.22"
bitvec = "1.0.1"
digest = "0.10.7"
half = "2.7.1"
hex = "0.4.3"
indoc = "2.0.7"
postcard = "1.1.3"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
sha2 = "0.10.9"
# automated CFFI + bindings in other languages
uniffi = { version = "0.30.0", features = ["cli", "tokio"] }
[dev-dependencies]
pretty_assertions = "1.4.1"
[[bin]]
name = "uniffi-bindgen"
[[bin]]
name = "emit_golden_metadata"
[build-dependencies]
uniffi = { version = "0.29.4", features = ["build"] }
[lib]
crate-type = ["rlib", "cdylib"]
[lints.clippy]
cargo = "deny"
complexity = "deny"
correctness = "deny"
nursery = "deny"
pedantic = "deny"
perf = "deny"
restriction = "deny"
style = "deny"
suspicious = "deny"
min_ident_chars = { level = "allow", priority = 127 } # allow for variables that is one char
arbitrary_source_item_ordering = { level = "allow", priority = 127 } # allow arbitrary ordering to keep relevant code nearby
as_conversions = { level = "allow", priority = 127 } # allow casting
blanket_clippy_restriction_lints = { level = "allow", priority = 127 } # allow setting all restrictions so we can omit specific ones
default_numeric_fallback = { level = "allow", priority = 127 } # allow type inferred by numeric literal, detection is buggy
disallowed_script_idents = { level = "allow", priority = 127 } # skip since we use only ascii
exhaustive_enums = { level = "allow", priority = 127 } # remove requirement to label enum as exhaustive
exhaustive_structs = { level = "allow", priority = 127 } # revisit once lib is ready to be used externally
field_scoped_visibility_modifiers = { level = "allow", priority = 127 } # allow field-level visibility modifiers
float_arithmetic = { level = "allow", priority = 127 } # allow float arithmetic
impl_trait_in_params = { level = "allow", priority = 127 } # impl in params ok
implicit_return = { level = "allow", priority = 127 } # missing return ok
iter_over_hash_type = { level = "allow", priority = 127 } # allow iterating over unordered iterables like `HashMap`
little_endian_bytes = { level = "allow", priority = 127 } # allow to_le_bytes / from_le_bytes
missing_docs_in_private_items = { level = "allow", priority = 127 } # missing docs on private ok
missing_inline_in_public_items = { level = "allow", priority = 127 } # let rust compiler determine best inline logic
missing_trait_methods = { level = "allow", priority = 127 } # allow in favor of rustc `implement the missing item`
module_name_repetitions = { level = "allow", priority = 127 } # allow use of module name in type names
multiple_crate_versions = { level = "allow", priority = 127 } # allow since list of exceptions changes frequently from external
multiple_inherent_impl = { level = "allow", priority = 127 } # required in best practice to limit exposure over UniFFI
must_use_candidate = { level = "allow", priority = 127 } # omitting #[must_use] ok
mod_module_files = { level = "allow", priority = 127 } # mod directories ok
non_ascii_literal = { level = "allow", priority = 127 } # non-ascii char in string literal ok
partial_pub_fields = { level = "allow", priority = 127 } # partial struct pub fields ok
pattern_type_mismatch = { level = "allow", priority = 127 } # allow in favor of clippy::ref_patterns
print_stderr = { level = "allow", priority = 127 } # stderr prints ok
print_stdout = { level = "allow", priority = 127 } # stdout prints ok
pub_use = { level = "allow", priority = 127 } # ok to structure source into many files but clean up import
pub_with_shorthand = { level = "allow", priority = 127 } # allow use of pub(super)
question_mark_used = { level = "allow", priority = 127 } # allow question operator
self_named_module_files = { level = "allow", priority = 127 } # mod files ok
separated_literal_suffix = { level = "allow", priority = 127 } # literal suffixes should be separated by underscore
single_call_fn = { level = "allow", priority = 127 } # allow functions called only once, which allows better code organization
single_char_lifetime_names = { level = "allow", priority = 127 } # single char lifetimes ok
std_instead_of_alloc = { level = "allow", priority = 127 } # we should use std when possible
std_instead_of_core = { level = "allow", priority = 127 } # we should use std when possible
string_add = { level = "allow", priority = 127 } # simple concat ok
use_debug = { level = "warn", priority = 127 } # debug print
wildcard_enum_match_arm = { level = "allow", priority = 127 } # allow wildcard match arm in enums