[package]
edition = "2024"
name = "protify"
version = "0.1.0"
authors = ["Rick-Phoenix <https://github.com/Rick-Phoenix>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Rust-first protobuf framework to generate packages from rust code, with validation included"
readme = "README.md"
keywords = [
"protobuf",
"validation",
"schema",
"generation",
"no_std",
]
license = "MPL-2.0"
repository = "https://github.com/Rick-Phoenix/protify"
[package.metadata.release]
tag = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
cel = [
"std",
"dep:cel",
"proto-types/cel",
"protify-proc-macro/cel",
]
chrono = [
"proto-types/chrono",
"dep:chrono",
]
chrono-wasm = [
"chrono",
"chrono/wasmbind",
"proto-types/chrono-wasm",
]
common-types = ["proto-types/all_common"]
default = [
"std",
"regex",
"cel",
"chrono",
"inventory",
]
document-features = ["dep:document-features"]
inventory = [
"std",
"dep:inventory",
]
reflection = ["protify-proc-macro/reflection"]
regex = ["dep:regex"]
rpc-types = ["proto-types/rpc"]
serde = [
"dep:serde",
"dep:serde_json",
"bytes/serde",
"proto-types/serde",
"ordered-float/serde",
"hashbrown/serde",
]
std = [
"dep:askama",
"bon/std",
"prost/std",
"ordermap/std",
"ordered-float/std",
"regex?/std",
"proto-types/std",
"bytes/std",
"askama/std",
"thiserror/std",
"float_eq/std",
"fluent-uri/std",
"ipnet/std",
"chrono?/std",
"chrono?/now",
"serde?/std",
"serde_json?/std",
]
tonic = ["dep:tonic"]
[lib]
name = "protify"
path = "src/lib.rs"
[[test]]
name = "code_elimination"
path = "tests/code_elimination.rs"
[dependencies.askama]
version = "0.15"
features = [
"derive",
"config",
]
optional = true
default-features = false
[dependencies.bon]
version = "3.8"
features = ["alloc"]
default-features = false
[dependencies.bool-enum]
version = "0.1.1"
[dependencies.bytes]
version = "1"
default-features = false
[dependencies.cel]
version = "0.12"
features = ["bytes"]
optional = true
[dependencies.chrono]
version = "0.4"
features = ["alloc"]
optional = true
default-features = false
[dependencies.document-features]
version = "0.2"
optional = true
[dependencies.float_eq]
version = "1"
default-features = false
[dependencies.fluent-uri]
version = "0.4"
default-features = false
[dependencies.hashbrown]
version = "0.16"
[dependencies.inventory]
version = "0.3"
optional = true
[dependencies.ipnet]
version = "2"
default-features = false
[dependencies.log]
version = "0.4"
[dependencies.once_cell]
version = "1.21"
features = [
"alloc",
"race",
]
default-features = false
[dependencies.ordered-float]
version = "5"
default-features = false
[dependencies.ordermap]
version = "1"
default-features = false
[dependencies.owo-colors]
version = "4"
[dependencies.paste]
version = "1"
[dependencies.prost]
version = "0.14"
features = ["derive"]
default-features = false
[dependencies.protify-proc-macro]
version = "0.1.0"
default-features = false
[dependencies.proto-types]
version = "0.2.1"
features = ["protovalidate"]
default-features = false
[dependencies.regex]
version = "1"
features = [
"perf",
"unicode",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
optional = true
default-features = false
[dependencies.serde_json]
version = "1"
optional = true
default-features = false
[dependencies.similar-asserts]
version = "1"
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.tonic]
version = "0.14"
optional = true
default-features = false
[dev-dependencies.diesel]
version = "2"
features = [
"sqlite",
"returning_clauses_for_sqlite_3_35",
]
[dev-dependencies.indoc]
version = "2"
[dev-dependencies.maplit]
version = "1"
[dev-dependencies.proto-types]
version = "0.2.1"
features = [
"protovalidate",
"diesel-sqlite",
]
default-features = false
[dev-dependencies.tonic-prost-build]
version = "0.14"
[lints.clippy]
branches_sharing_code = "warn"
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_sign_loss = "warn"
checked_conversions = "warn"
clear_with_drain = "warn"
cloned_instead_of_copied = "warn"
collapsible_else_if = "warn"
collection_is_never_read = "warn"
comparison_chain = "warn"
copy_iterator = "warn"
derive_partial_eq_without_eq = "warn"
elidable_lifetime_names = "warn"
equatable_if_let = "allow"
explicit_into_iter_loop = "warn"
flat_map_option = "warn"
float_cmp = "warn"
format_push_string = "warn"
future_not_send = "warn"
if_not_else = "warn"
ignored_unit_patterns = "warn"
implicit_clone = "warn"
imprecise_flops = "warn"
inconsistent_struct_constructor = "warn"
into_iter_without_iter = "warn"
invalid_upcast_comparisons = "warn"
ip_constant = "warn"
iter_filter_is_ok = "warn"
iter_filter_is_some = "warn"
iter_not_returning_iterator = "warn"
iter_on_empty_collections = "warn"
iter_on_single_items = "warn"
iter_without_into_iter = "warn"
large_digit_groups = "warn"
large_stack_arrays = "warn"
literal_string_with_formatting_args = "warn"
manual_ilog2 = "warn"
manual_instant_elapsed = "warn"
manual_is_power_of_two = "warn"
manual_let_else = "allow"
manual_midpoint = "warn"
manual_string_new = "warn"
match_same_arms = "warn"
maybe_infinite_iter = "warn"
mismatching_type_param_order = "warn"
missing_const_for_fn = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
must_use_candidate = "warn"
mut_mut = "warn"
naive_bytecount = "warn"
needless_collect = "warn"
needless_pass_by_ref_mut = "warn"
needless_pass_by_value = "warn"
needless_raw_string_hashes = "warn"
needless_type_cast = "warn"
no_effect_underscore_binding = "warn"
non_send_fields_in_send_ty = "warn"
option_as_ref_cloned = "warn"
option_option = "warn"
redundant_clone = "warn"
redundant_closure = "allow"
ref_option = "warn"
ref_option_ref = "warn"
return_self_not_must_use = "warn"
same_functions_in_if_condition = "warn"
stable_sort_primitive = "warn"
string_add_assign = "warn"
struct_excessive_bools = "warn"
struct_field_names = "warn"
suboptimal_flops = "warn"
suspicious_operation_groupings = "warn"
too_long_first_doc_paragraph = "warn"
trait_duplication_in_bounds = "warn"
trivially_copy_pass_by_ref = "warn"
tuple_array_conversions = "warn"
type_repetition_in_bounds = "warn"
unchecked_time_subtraction = "warn"
uninlined_format_args = "warn"
unnecessary_box_returns = "warn"
unnecessary_debug_formatting = "warn"
unnecessary_join = "warn"
unnecessary_literal_bound = "warn"
unnested_or_patterns = "warn"
unreadable_literal = "warn"
unused_async = "warn"
unused_peekable = "warn"
unused_rounding = "warn"
unused_self = "warn"
use_self = "warn"
useless_let_if_seq = "warn"
vec_init_then_push = "allow"