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