[package] name = "pai" version = "0.1.11" edition = "2021" license-file = "LICENSE" description = "Process Analyzer and Instrumenter" readme = "README.md" homepage = "https://github.com/rstenvi/pai" repository = "https://github.com/rstenvi/pai" keywords = ["instrumentation", "debugging", "strace", "trace", "syscall"] exclude = [ "scripts/*", ] [dependencies] # We disable all logging below info on release version log = {version = "0.4", features = ["release_max_level_info"]} # log = {version = "0.4" } thiserror = "1.0" # Data serialization is based on serde serde_json = "1.0" serde = { version = "1.0", features = ["derive"]} pai-macros = { version = "0.1", git = "https://github.com/rstenvi/pai-macros" } # pai-macros = { version = "0.1", path = "../pai-macros" } # We have added some constants to libc which have yet to be merged libc = { git = "https://github.com/rstenvi/libc", branch = "libc-0.2", version = "0.2" } # libc = { path = "../libc" } # We use an older one, because we match the one used in pete # nix = {version = "0.27.1", features = ["process", "ptrace"]} nix = "0.26.2" # Might want to specify unstable-ness # #[stability::unstable(reason = "some reason")] #stability = "0.1.1" # Collection of OS info from dependency sys-info in bugreport is not compiling # for Android. For now, only enable the markdown feature and don't collect any # OS info. bugreport = { version = "0.5.0", default-features = false, features = ["format_markdown"]} # Used to read data from /proc// procfs = {version = "0.16.0", features = ["serde1"]} # Used as a more convenient wrapper around ptrace # It currently has some changes to support extra targets pete = { version = "0.12.0", git = "https://github.com/rstenvi/pete" } # pete = { version = "0.12.0", path = "../pete" } # Used to create a bitmap bit-vec = "0.6" # Access extended attributes on files, like SELinux label xattr = "1.2.0" # All communication between threads uses crossbeam crossbeam-channel = "0.5.8" # Syscall specification for all the supported system calls syzlang-data = { version = "0.1", optional = true } # syzlang-data = { path = "../syzlang-data" } # syzlang-data = { git = "https://github.com/rstenvi/syzlang-data" } syzlang-parser = { version = "0.1", optional = true } # syzlang-parser = { path = "../syzlang-parser" } # syzlang-parser = { git = "https://github.com/rstenvi/syzlang-parser" } # Used to parse symbols out of ELF files elf = "0.7.4" # To generate names in macros consisting of multipl ident's paste = "1.0.14" # Global data lazy_static = "1.4" # Decompress data stored in build.rs flate2 = "1.0.28" tar = "0.4.40" anyhow = "1" # Spawn child from in-memory ELF-file # Used for testing, but also a feature for users memfd-exec = "0.2.1" # Generics for numbers num-traits = "0.2.18" [build-dependencies] # Used to create files in target directory which contains the data scratch = "1" anyhow = "1" syzlang-data = { version = "0.1", optional = true } # syzlang-data = { path = "../syzlang-data" } # syzlang-data = { git = "https://github.com/rstenvi/syzlang-data" } syzlang-parser = { version = "0.1", optional = true } # syzlang-parser = { path = "../syzlang-parser" } # syzlang-parser = { git = "https://github.com/rstenvi/syzlang-parser" } serde_json = "1.0" serde = { version = "1.0", features = ["derive"]} uneval = "0.2.4" flate2 = "1.0.28" paste = "1.0.14" tar = "0.4.40" nix = { version = "0.28", features = ["fs"] } [dev-dependencies] ctor = "0.2.6" env_logger = "0.11.1" # Some ptrace(2) tests don't play nice with eachother serial_test = "3.0.0" [features] std = [] syscalls = [ "syzlang-data/linux", "syzlang-parser" ] plugins = []