From dbba687b9b02e635fafb576f9049af1669613c80 Mon Sep 17 00:00:00 2001 From: Dominik Maier Date: Thu, 3 Aug 2023 02:59:30 +0200 Subject: [PATCH] Add proper REAME.md to `libafl_bolts` (#1396) * Add proper readme to libafl_bolts * more 0.11 doc --- docs/src/design/migration-0.11.md | 1 + libafl_bolts/Cargo.toml | 2 +- libafl_bolts/README.md | 58 +++++++++++++++++++++++++++++++ libafl_bolts/src/lib.rs | 2 +- 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 libafl_bolts/README.md diff --git a/docs/src/design/migration-0.11.md b/docs/src/design/migration-0.11.md index 9156f8cb85..8a2bdab0cf 100644 --- a/docs/src/design/migration-0.11.md +++ b/docs/src/design/migration-0.11.md @@ -13,6 +13,7 @@ Some cross-platform things in bolts include * LLMP: A fast, lock-free IPC mechanism via SharedMap * Core_affinity: A maintained version of `core_affinity` that can be used to get core information and bind processes to cores * Rands: Fast random number generators for fuzzing (like [RomuRand](http://www.romu-random.org/)) +* MiniBSOD: get and print information about the current process state including important registers. * Tuples: Haskel-like compile-time tuple lists * Os: OS specific stuff like signal handling, windows exception handling, pipes, and helpers for `fork` diff --git a/libafl_bolts/Cargo.toml b/libafl_bolts/Cargo.toml index 7701a9f9cf..8fb3b73100 100644 --- a/libafl_bolts/Cargo.toml +++ b/libafl_bolts/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Andrea Fioraldi ", "Dominik Maier + +The `libafl_bolts` crate exposes a lot of low-level features of LibAFL for projects that are unrelated to fuzzing, or just fuzzers completely different to LibAFL. +Some cross-platform things in bolts include (but are not limited to): + +* SerdeAnyMap: a map that stores and retrieves elements by type and is serializable and deserializable +* ShMem: A cross-platform (Windows, Linux, Android, MacOS) shared memory implementation +* LLMP: A fast, lock-free IPC mechanism via SharedMap +* Core_affinity: A maintained version of `core_affinity` that can be used to get core information and bind processes to cores +* Rands: Fast random number generators for fuzzing (like [RomuRand](http://www.romu-random.org/)) +* MiniBSOD: get and print information about the current process state including important registers. +* Tuples: Haskel-like compile-time tuple lists +* Os: OS specific stuff like signal handling, windows exception handling, pipes, and helpers for `fork` + +LibAFL_bolts is written and maintained by + +* [Andrea Fioraldi](https://twitter.com/andreafioraldi) +* [Dominik Maier](https://twitter.com/domenuk) +* [s1341](https://twitter.com/srubenst1341) +* [Dongjia Zhang](https://github.com/tokatoka) +* [Addison Crump](https://github.com/addisoncrump) + +## Contributing + +For bugs, feel free to open issues or contact us directly. Thank you for your support. <3 + +Even though we will gladly assist you in finishing up your PR, try to +- keep all the crates compiling with *stable* rust (hide the eventual non-stable code under [`cfg`s](https://github.com/AFLplusplus/LibAFL/blob/main/libafl/build.rs#L26)) +- run `cargo fmt` on your code before pushing +- check the output of `cargo clippy --all` or `./clippy.sh` +- run `cargo build --no-default-features` to check for `no_std` compatibility (and possibly add `#[cfg(feature = "std")]`) to hide parts of your code. + +Some of the parts in this list may be hard, don't be afraid to open a PR if you cannot fix them by yourself, so we can help. + +#### License + + +Licensed under either of Apache License, Version +2.0 or MIT license at your option. + + +
+ + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in this crate by you, as defined in the Apache-2.0 license, shall +be dual licensed as above, without any additional terms or conditions. + + +
+ + +Dependencies under more restrictive licenses, such as GPL or AGPL, can be enabled +using the respective feature in each crate when it is present, such as the +'agpl' feature of the libafl crate. + diff --git a/libafl_bolts/src/lib.rs b/libafl_bolts/src/lib.rs index f33ffbf393..8fc7e114d1 100644 --- a/libafl_bolts/src/lib.rs +++ b/libafl_bolts/src/lib.rs @@ -1,4 +1,4 @@ -//! Bolts are no conceptual fuzzing elements, but they keep libafl-based fuzzers together. +#![doc = include_str!("../README.md")] /*! Welcome to `LibAFL`