MCPcopy Index your code
hub / github.com/Devolutions/siquery-rs

github.com/Devolutions/siquery-rs @v1.2.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.5 ↗ · + Follow
562 symbols 789 edges 98 files 12 documented · 2% updated 8mo agov1.1.0 · 2019-03-28★ 601 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Siquery

Introduction

A rust library for system information analytics and monitoring.

Siquery provides utilities to explore low level operating system data on mac, windows and linux in an efficient and intuitive way by integrating an SQLite powered interface. SQLite read-only statements can be used to create custom queries to be outputted into a formatted table, JSON or CSV.

Usage

USAGE: 
       siquery.exe [FLAGS] [OPTIONS] [input]

FLAGS:
             --csv        Sets 'csv' output mode
         -h, --help       Prints help information
             --json       Sets 'json' output mode
         -l, --list       Lists all table names
             --pretty     Sets 'print_pretty' output mode
         -V, --version    Prints version information
         -v               Sets the level of verbosity

OPTIONS:
             --schema <schema>     Prints schema of the given table name
         -q, --query <siquery>     Sqlite command
         -a, --A <table>           Selects all from table

ARGS:
         <input>     Sqlite query command

Examples

cargo run -- -q "SELECT DISTINCT process.name, env.key, process.pid FROM processes AS process JOIN process_envs AS env ON process.pid = env.pid where process.name = 'siquery' AND process.pid > 38000 LIMIT 3" 

+---------+----------------+-------+
| name    | key            | pid   |
+=========+================+=======+
| siquery | CARGO_PKG_NAME | 38798 |
+---------+----------------+-------+
| siquery | SHLVL          | 38798 |
+---------+----------------+-------+
| siquery | PATH.          | 38798 |
+---------+----------------+-------+
cargo run -- -q "SELECT DISTINCT process.name, process.pid FROM process_memory_map AS memory JOIN processes as process ON process.path = memory.path where process.pid < 7900 limit 1"

+-----------------+------+
| name            | pid  |
+=================+======+
| dptf_helper.exe | 7800 |
+-----------------+------+
cargo run -- -q "PRAGMA table_info(process_memory_map)"

+-----+-------------+---------+---------+------------+
| cid | name        | type    | notnull | dflt_value |
+=====+=============+=========+=========+============+
| 0   | pid         | INTEGER | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 1   | start       | TEXT    | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 2   | end         | TEXT    | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 3   | permissions | TEXT    | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 4   | offset      | INTEGER | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 5   | device      | TEXT    | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 6   | inode       | INTEGER | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 7   | path        | TEXT    | 0       | 0          |
+-----+-------------+---------+---------+------------+
| 8   | pseudo      | INTEGER | 0       | 0          |
+-----+-------------+---------+---------+------------+
cargo run -- --pretty -q "SELECT * FROM etc_hosts LIMIT 1"

+-----------+-----------+
| address   | hostnames |
+===========+===========+
| 127.0.0.1 | localhost |
+-----------+-----------+
cargo run -- --json -q "SELECT * FROM etc_hosts"

[
  {"address":"127.0.0.1","hostnames":"localhost"},
  {"address":"255.255.255.255","hostnames":"broadcasthost"},
  {"address":"::1","hostnames":"localhost"}
]
cargo run -- --csv -q "SELECT * FROM etc_hosts LIMIT 1"

address|hostnames
127.0.0.1|localhost
255.255.255.255|broadcasthost
::1|localhost

Implemented tables

Table name | Windows | Linux | MacOS --- | :---: | :---: | :---: | etc_hosts | ✔ | ✔ | ✔ etc_protocols | ✔ | ✔ | ✔ etc_services | ✔ | ✔ | ✔ interface_address | ✔ | ✔ | interface_details | ✔ | ✔ | system_info | ✔ | ✔ | ✔ os_version | ✔ | ✔ | ✔ logical_drives | ✔ | | uptime | ✔ | ✔ | ✔ processes | ✔ | ✔ | ✔ process_open_sockets | ✔ | ✔ | process_memory_map | ✔ | ✔ | products | ✔ | | proxies | ✔ | ✔ | ✔ users | ✔ | ✔ | ✔ launchd | | | ✔ launchd_overrides | | | ✔ logged_in_users | ✔ | ✔ | ✔ logon_sessions | ✔ | | groups | ✔ | ✔ | ✔ process_envs | | ✔ | ✔ mounts | | ✔ | ✔ wmi_computer_info | ✔ | | wmi_os_version | ✔ | | wmi_printers | ✔ | | wmi_services | ✔ | | wmi_hotfixes | ✔ | | wmi_shares | ✔ | | wmi_network_adapters | ✔ | | wmi_local_accounts | ✔ | | wmi_bios | ✔ | | wmi_motherboard | ✔ | | wmi_processor | ✔ | | wmi_physical_memory | ✔ | | wmi_sound | ✔ | | wmi_video | ✔ | | wmi_monitors | ✔ | | wmi_keyboard | ✔ | | wmi_pointing_device | ✔ | |

Extension points exported contracts — how you extend this code

Table (Interface)
(no doc) [44 implementers]
siquery/src/tables.rs
SystemInfoDataIface (Interface)
(no doc) [6 implementers]
siquery/src/tables.rs
EtcHostsIface (Interface)
(no doc) [4 implementers]
siquery/src/tables.rs
EtcProtocolsIface (Interface)
(no doc) [4 implementers]
siquery/src/tables.rs
EtcServicesIface (Interface)
(no doc) [4 implementers]
siquery/src/tables.rs

Core symbols most depended-on inside this repo

trim_string
called by 56
siquery/src/utils.rs
create_schema
called by 44
siquery/src/query.rs
select
called by 43
siquery/src/query.rs
pwstr_to_string
called by 10
siquery/src/windows/logon_sessions.rs
next
called by 9
siquery/src/vtab.rs
get_proc_list
called by 6
siquery/src/linux/processes.rs
get_table_list
called by 5
siquery/src/tables.rs
execute_query
called by 5
siquery/src/query.rs

Shape

Method 289
Class 123
Function 115
Interface 31
Enum 4

Languages

Rust100%

Modules by API surface

siquery/src/tables.rs40 symbols
siquery/src/macos/processes.rs26 symbols
siquery/src/linux/processes.rs16 symbols
siquery/src/linux/system_info.rs14 symbols
siquery/src/linux/interface_details.rs14 symbols
siquery/src/vtab.rs13 symbols
siquery/src/macos/groups.rs13 symbols
siquery/src/inventory.rs13 symbols
siquery/src/windows/system_info.rs12 symbols
siquery/src/macos/users.rs12 symbols
siquery/src/macos/system_info.rs12 symbols
siquery/src/windows/users.rs11 symbols

For agents

$ claude mcp add siquery-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page