From d50684e31b2d480000f1ac7a70bbe084cefb86df Mon Sep 17 00:00:00 2001 From: Eli Peter <54954007+ecpeter23@users.noreply.github.com> Date: Wed, 25 Jun 2025 01:42:10 +0200 Subject: [PATCH] docs: Add section on advantages of using Nyx in README (#10) * docs: Add section on advantages of using Nyx in README * ci: Update branch references from 'main' to 'master' in CI configuration * docs: Add third-party licenses documentation and update build process * Update .github/workflows/release-build.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * docs: Add third-party licenses documentation and update build process --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/ci.yml | 4 +- .github/workflows/release-build.yml | 12 +- README.md | 26 +- THIRDPARTY-LICENSES.html | 6146 +++++++++++++++++++++++++++ about.hbs | 70 + about.toml | 11 + deny.toml | 12 + 7 files changed, 6270 insertions(+), 11 deletions(-) create mode 100644 THIRDPARTY-LICENSES.html create mode 100644 about.hbs create mode 100644 about.toml create mode 100644 deny.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d20b9cbd..536b0e15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: CI on: push: - branches: [main] + branches: ["master"] pull_request: - branches: [main] + branches: ["master"] jobs: test: diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index b7d41360..71c92b81 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -20,7 +20,7 @@ jobs: - target: x86_64-pc-windows-msvc os: windows-latest - target: x86_64-apple-darwin - os: macos-14 + os: macos-14 - target: aarch64-apple-darwin os: macos-14 runs-on: ${{ matrix.os }} @@ -35,13 +35,19 @@ jobs: toolchain: stable target: ${{ matrix.target }} cache: true - + - name: Install target run: rustup target add ${{ matrix.target }} - name: Build run: cargo build --release --bin ${{ env.BIN_NAME }} --target ${{ matrix.target }} + - name: Install cargo-about + run: cargo install cargo-about --locked + + - name: Generate license bundle + run: cargo about generate --format html > THIRDPARTY-LICENSES.html + - name: Package shell: bash run: | @@ -57,7 +63,7 @@ jobs: fi mkdir -p dist ARCHIVE=$BIN-$TARGET.zip - zip -9 "dist/$ARCHIVE" "$BIN_PATH" + zip -9 "dist/$ARCHIVE" "$BIN_PATH" THIRDPARTY-LICENSES.html LICENSE* COPYING* || true echo "ASSET=$ARCHIVE" >> "$GITHUB_ENV" - name: Upload to the release diff --git a/README.md b/README.md index 1c5c0726..b2f7484c 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,19 @@ --- +## Why choose Nyx? + +| Advantage | What it means for you | +|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Pure-Rust, single binary** | No JVM, Python, or server to install; drop the `nyx` executable into your `$PATH` and go. | +| **Massively parallel** | Uses Rayon and a thread-pool walker; scales to all CPU cores. Example: scanning the entire **rust-lang/rust** codebase (~53,000 files) on an M2 MacBook Pro takes **≈ 1 s**. | +| **Index-aware** | An optional SQLite index stores file hashes and findings, subsequent scans touch *only* changed files, slashing CI times. | +| **Offline & privacy-friendly** | Requires no login, cloud account, or telemetry. Perfect for air-gapped environments and strict compliance policies. | +| **Tree-sitter precision** | Parses real language grammars, not regexes, giving far fewer false positives than line-based scanners. | +| **Extensible** | Add new patterns with concise `tree-sitter` queries; no SaaS lock-in. | + +--- + ## Installation ### Build from source @@ -114,12 +127,13 @@ A fully documented `nyx.conf` is generated automatically on first run. ## Roadmap -| Area | Planned Improvements | -|------------------------|---------------------------------------------------------------------------| -| Control‑flow analysis | Generation of CFGs for deeper reasoning about execution paths | -| Taint tracking | Intra‑ / inter‑procedural tracing of untrusted data from sources to sinks | -| Output formats | Full SARIF 2.1.0, JUnit XML, HTML report generator | -| Rule updates | Remote rule feed with signature verification | +| Area | Planned Improvements | +|-----------------------|---------------------------------------------------------------------------| +| More language support | Plans to create rule sets for over 100 languages for maximum coverage | +| Control‑flow analysis | Generation of CFGs for deeper reasoning about execution paths | +| Taint tracking | Intra‑ / inter‑procedural tracing of untrusted data from sources to sinks | +| Output formats | Full SARIF 2.1.0, JUnit XML, HTML report generator | +| Rule updates | Remote rule feed with signature verification | Community feedback will help shape priorities; please open an issue to discuss proposed changes. diff --git a/THIRDPARTY-LICENSES.html b/THIRDPARTY-LICENSES.html new file mode 100644 index 00000000..c4209da3 --- /dev/null +++ b/THIRDPARTY-LICENSES.html @@ -0,0 +1,6146 @@ + + + + + + + +
+
+

Third Party Licenses

+

This page lists the licenses of the projects used in cargo-about.

+
+ +

Overview of licenses:

+ + +

All license text:

+ +
+ + + + diff --git a/about.hbs b/about.hbs new file mode 100644 index 00000000..699b3b04 --- /dev/null +++ b/about.hbs @@ -0,0 +1,70 @@ + + + + + + + +
+
+

Third Party Licenses

+

This page lists the licenses of the projects used in cargo-about.

+
+ +

Overview of licenses:

+ + +

All license text:

+ +
+ + + diff --git a/about.toml b/about.toml new file mode 100644 index 00000000..0f45be72 --- /dev/null +++ b/about.toml @@ -0,0 +1,11 @@ +accepted = [ + "Apache-2.0", + "MIT", + "MIT-0", + "Unicode-3.0", + "BSD-2-Clause", + "Unlicense", + "Zlib", + "CC0-1.0", + "MPL-2.0" +] diff --git a/deny.toml b/deny.toml new file mode 100644 index 00000000..7948fbdb --- /dev/null +++ b/deny.toml @@ -0,0 +1,12 @@ +[licenses] +allow = [ + "Apache-2.0", + "MIT", + "MIT-0", + "Unicode-3.0", + "BSD-2-Clause", + "Unlicense", + "Zlib", + "CC0-1.0", + "MPL-2.0" +] \ No newline at end of file