[package]
edition = "2021"
name = "tool-parser"
version = "1.1.2"
authors = [
"Simo Lin <linsimo.mark@gmail.com>",
"Chang Su <mckvtl@gmail.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Tool/function call parser for LLM model outputs"
readme = "README.md"
keywords = [
"llm",
"tool-calling",
"function-calling",
"parser",
]
categories = [
"parsing",
"api-bindings",
]
license = "Apache-2.0"
repository = "https://github.com/lightseekorg/smg"
[lib]
name = "tool_parser"
path = "src/lib.rs"
[[test]]
name = "tool_parser_cohere"
path = "tests/tool_parser_cohere.rs"
[[test]]
name = "tool_parser_deepseek"
path = "tests/tool_parser_deepseek.rs"
[[test]]
name = "tool_parser_edge_cases"
path = "tests/tool_parser_edge_cases.rs"
[[test]]
name = "tool_parser_fallback"
path = "tests/tool_parser_fallback.rs"
[[test]]
name = "tool_parser_glm47_moe"
path = "tests/tool_parser_glm47_moe.rs"
[[test]]
name = "tool_parser_glm4_moe"
path = "tests/tool_parser_glm4_moe.rs"
[[test]]
name = "tool_parser_json"
path = "tests/tool_parser_json.rs"
[[test]]
name = "tool_parser_kimik2"
path = "tests/tool_parser_kimik2.rs"
[[test]]
name = "tool_parser_llama"
path = "tests/tool_parser_llama.rs"
[[test]]
name = "tool_parser_minimax_m2"
path = "tests/tool_parser_minimax_m2.rs"
[[test]]
name = "tool_parser_mistral"
path = "tests/tool_parser_mistral.rs"
[[test]]
name = "tool_parser_mixed_edge_cases"
path = "tests/tool_parser_mixed_edge_cases.rs"
[[test]]
name = "tool_parser_partial_json"
path = "tests/tool_parser_partial_json.rs"
[[test]]
name = "tool_parser_pythonic"
path = "tests/tool_parser_pythonic.rs"
[[test]]
name = "tool_parser_qwen"
path = "tests/tool_parser_qwen.rs"
[[test]]
name = "tool_parser_qwen_coder"
path = "tests/tool_parser_qwen_coder.rs"
[[test]]
name = "tool_parser_step3"
path = "tests/tool_parser_step3.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.num-traits]
version = "0.2"
[dependencies.openai-protocol]
version = "1.3.0"
[dependencies.parking_lot]
version = "0.12.4"
[dependencies.regex]
version = "1.10"
[dependencies.rustpython-parser]
version = "0.4.0"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
features = ["preserve_order"]
[dependencies.thiserror]
version = "2.0.12"
[dependencies.tokio]
version = "1.42.0"
features = [
"sync",
"rt-multi-thread",
"macros",
]
[dependencies.tracing]
version = "0.1"
[lints.clippy]
absolute_paths = "warn"
allow_attributes = "warn"
assigning_clones = "warn"
cloned_instead_of_copied = "warn"
dbg_macro = "deny"
default_trait_access = "allow"
disallowed_methods = "warn"
doc_lazy_continuation = "allow"
expect_used = "warn"
explicit_into_iter_loop = "warn"
explicit_iter_loop = "warn"
if_not_else = "warn"
ignored_unit_patterns = "warn"
inconsistent_struct_constructor = "warn"
inefficient_to_string = "warn"
large_futures = "warn"
manual_assert = "warn"
manual_string_new = "warn"
match_bool = "warn"
match_same_arms = "allow"
match_wildcard_for_single_variants = "warn"
must_use_candidate = "allow"
needless_raw_string_hashes = "warn"
or_fun_call = "warn"
panic = "warn"
print_stderr = "warn"
print_stdout = "warn"
ref_option = "warn"
semicolon_if_nothing_returned = "warn"
single_component_path_imports = "warn"
single_match_else = "allow"
stable_sort_primitive = "warn"
todo = "deny"
trivially_copy_pass_by_ref = "warn"
unimplemented = "deny"
uninlined_format_args = "warn"
unnecessary_wraps = "warn"
unreachable = "deny"
unused_async = "warn"
unused_self = "warn"
unwrap_used = "deny"
[lints.rust]
unsafe_code = "deny"
unused_qualifications = "warn"