initial commit
This commit is contained in:
commit
81b7c68bb3
9 changed files with 135 additions and 0 deletions
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
*.rs diff=rust
|
||||
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# Created by https://www.toptal.com/developers/gitignore/api/rust
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=rust
|
||||
|
||||
### Rust ###
|
||||
# Generated by Cargo
|
||||
# will have compiled files and executables
|
||||
debug/
|
||||
target/
|
||||
|
||||
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
|
||||
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
|
||||
Cargo.lock
|
||||
|
||||
# These are backup files generated by rustfmt
|
||||
**/*.rs.bk
|
||||
|
||||
# MSVC Windows builds of rustc generate these, which store debugging information
|
||||
*.pdb
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/rust
|
||||
11
Cargo.toml
Normal file
11
Cargo.toml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
[package]
|
||||
name = "argus"
|
||||
version = "0.1.0"
|
||||
|
||||
authors = ["Anand Balakrishnan"]
|
||||
license = "BSD-3-Clause"
|
||||
|
||||
edition = "2021"
|
||||
rust-version = "1.66"
|
||||
|
||||
[dependencies]
|
||||
29
LICENSE
Normal file
29
LICENSE
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2022, Anand Balakrishnan
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
31
README.md
Normal file
31
README.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
Argus: Temporal Logic Monitoring Tool
|
||||
=====================================
|
||||
|
||||
Argus aims to be a tool to generate monitors for Signal Temporal Logic (STL), and its
|
||||
different semantics.
|
||||
|
||||
This library is a direct successor of my
|
||||
[`signal-temporal-logic`](https://github.com/anand-bala/signal-temporal-logic/) tool,
|
||||
and is inspired by the following projects:
|
||||
|
||||
- [py-metric-temporal-logic] is a tool written in pure Python, and provides an elegant
|
||||
interface for evaluating discrete time signals using Metric Temporal Logic (MTL).
|
||||
- [RTAMT] is a Python library for offline and online
|
||||
monitoring of STL specifications.
|
||||
- [Breach] and [S-TaLiRo] are [Matlab] toolboxes designed for falsification and
|
||||
simulation-based testing of cyber-physical systems with STL and MTL specifications,
|
||||
respectively. One of their various features includes the ability to evaluate the
|
||||
robustness of signals against STL/MTL specifications.
|
||||
|
||||
The goal of this tool is to provide offline and online monitors for Signal Temporal
|
||||
Logic (STL) and its semantics, focussing on performance and ease of use in controllers
|
||||
(for training and monitoring them).
|
||||
|
||||
The project name is inspired from [Argus Panoptes].
|
||||
|
||||
[Argus Panoptes]: https://www.britannica.com/topic/Argus-Greek-mythology
|
||||
[py-metric-temporal-logic]: https://github.com/mvcisback/py-metric-temporal-logic/
|
||||
[Matlab]: https://www.mathworks.com/products/matlab.html
|
||||
[Breach]: https://github.com/decyphir/breach
|
||||
[S-TaLiRo]: https://sites.google.com/a/asu.edu/s-taliro/s-taliro
|
||||
[RTAMT]: https://github.com/nickovic/rtamt
|
||||
1
clippy.toml
Normal file
1
clippy.toml
Normal file
|
|
@ -0,0 +1 @@
|
|||
msrv = "1.66"
|
||||
16
justfile
Normal file
16
justfile
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
build *ARGS:
|
||||
cargo build {{ARGS}}
|
||||
|
||||
test *ARGS:
|
||||
cargo test {{ARGS}}
|
||||
|
||||
fmt:
|
||||
fd -e rs -x rustfmt +nightly {}
|
||||
|
||||
doc:
|
||||
cargo doc
|
||||
fd -e md . doc/ -x rustdoc {}
|
||||
fd -e html . doc/ -x mv {} target/doc/argus/
|
||||
|
||||
serve-doc: doc
|
||||
python3 -m http.server -d target/doc/
|
||||
11
rustfmt.toml
Normal file
11
rustfmt.toml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
edition = "2021"
|
||||
max_width = 120
|
||||
comment_width = 88
|
||||
wrap_comments = true
|
||||
format_strings = true
|
||||
group_imports = "StdExternalCrate"
|
||||
imports_granularity = "Module"
|
||||
condense_wildcard_suffixes = true
|
||||
use_field_init_shorthand = true
|
||||
|
||||
unstable_features = true
|
||||
14
src/lib.rs
Normal file
14
src/lib.rs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
pub fn add(left: usize, right: usize) -> usize {
|
||||
left + right
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn it_works() {
|
||||
let result = add(2, 2);
|
||||
assert_eq!(result, 4);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue