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
//! # A scriptable file/process/network scanner
//!
//! **sscan** is a scriptable file, process, and network scanner.
//! Its high level of configurability is powered by userscripts which run in
//! an embeded [Lua](https://www.lua.org/) virtual machine.
//!
//! Currently, scanning is provided by the
//! [YARA-X](https://virustotal.github.io/yara-x/) scan engine. YARA-X is a
//! Rust implementation of the original YARA scan engine. Additional scan
//! engines may be implemented or integrated in the future.
//!
//! The embedded Lua virtual machine is made possible by the
//! [mlua](https://crates.io/crates/mlua) crate.
//!
// Enable pedantic linting
/// # The distributed actors that make up sscan.
///
/// sscan makes use of an actor framework, [`kameo`], to allow many
/// of its components to run concurrently on their own threads, all the
/// while reducing complexity since each actor has ownership of its own
/// mutable state (no locks!)
///
/// The most fundamental actor is [`LuaVM`], which is the bread and
/// butter of sscan. It provides a Lua 5.4 virtual machine and
/// userscript environment, complete with APIs to customize, configure,
/// and control sscan's scan engines and services. Userscripts can also
/// define their own custom scan engines, extending sscan's baked-in
/// capabilities.
///
/// See each of the modules below to learn more about the actors that
/// power sscan.
///
/// [`LuaVM`]: crate::actors::lua_vm::LuaVM