Skip to content

Commit b0f109f

Browse files
author
Autumn
committed
Release v1.1.2: Initial public release with Pro UI, MDNS, and Icons
0 parents  commit b0f109f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+30150
-0
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
assets/GeoIP-City.mmdb filter=lfs diff=lfs merge=lfs -text

.github/workflows/ci.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
test:
14+
name: Test on ${{ matrix.os }}
15+
runs-on: ${{ matrix.os }}
16+
strategy:
17+
matrix:
18+
os: [ubuntu-latest, windows-latest, macos-latest]
19+
20+
steps:
21+
- uses: actions/checkout@v4
22+
with:
23+
lfs: true
24+
25+
- name: Install Rust
26+
uses: dtolnay/rust-toolchain@stable
27+
with:
28+
components: clippy, rustfmt
29+
30+
- name: Rust Cache
31+
uses: Swatinem/rust-cache@v2
32+
33+
- name: Check formatting
34+
run: cargo fmt --all -- --check
35+
36+
- name: Run clippy
37+
run: cargo clippy -- -D warnings
38+
39+
- name: Run tests
40+
run: cargo test --verbose

.github/workflows/release.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build:
10+
name: Build for ${{ matrix.target }}
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
include:
16+
- target: x86_64-unknown-linux-musl
17+
os: ubuntu-latest
18+
artifact_name: linux-x64
19+
asset_name: linux-x64
20+
- target: x86_64-pc-windows-msvc
21+
os: windows-latest
22+
artifact_name: windows-x64
23+
asset_name: windows-x64
24+
- target: x86_64-apple-darwin
25+
os: macos-latest
26+
artifact_name: macos-x64
27+
asset_name: macos-x64
28+
- target: aarch64-apple-darwin
29+
os: macos-latest
30+
artifact_name: macos-arm64
31+
asset_name: macos-arm64
32+
33+
steps:
34+
- uses: actions/checkout@v4
35+
with:
36+
lfs: true
37+
38+
- name: Install Rust
39+
uses: dtolnay/rust-toolchain@stable
40+
with:
41+
targets: ${{ matrix.target }}
42+
43+
- name: Rust Cache
44+
uses: Swatinem/rust-cache@v2
45+
46+
- name: Install musl tools
47+
if: matrix.target == 'x86_64-unknown-linux-musl'
48+
run: sudo apt-get install -y musl-tools
49+
50+
- name: Build CLI
51+
run: cargo build --release --target ${{ matrix.target }} --bin scannr-cli
52+
53+
- name: Build GUI
54+
run: cargo build --release --target ${{ matrix.target }} --bin scannr-gui
55+
56+
- name: Prepare Artifacts
57+
shell: bash
58+
run: |
59+
mkdir -p artifacts
60+
if [ "${{ matrix.os }}" == "windows-latest" ]; then
61+
cp target/${{ matrix.target }}/release/scannr-cli.exe artifacts/scannr-cli-${{ matrix.asset_name }}.exe
62+
cp target/${{ matrix.target }}/release/scannr-gui.exe artifacts/scannr-gui-${{ matrix.asset_name }}.exe
63+
else
64+
cp target/${{ matrix.target }}/release/scannr-cli artifacts/scannr-cli-${{ matrix.asset_name }}
65+
cp target/${{ matrix.target }}/release/scannr-gui artifacts/scannr-gui-${{ matrix.asset_name }}
66+
fi
67+
68+
- name: Upload Artifacts
69+
uses: actions/upload-artifact@v4
70+
with:
71+
name: ${{ matrix.artifact_name }}
72+
path: artifacts/*
73+
74+
release:
75+
name: Create Release
76+
needs: build
77+
runs-on: ubuntu-latest
78+
permissions:
79+
contents: write
80+
steps:
81+
- uses: actions/checkout@v4
82+
with:
83+
lfs: true
84+
85+
- name: Download Artifacts
86+
uses: actions/download-artifact@v4
87+
with:
88+
path: artifacts
89+
merge-multiple: true
90+
91+
- name: Create Release
92+
uses: softprops/action-gh-release@v2
93+
with:
94+
files: artifacts/*
95+
generate_release_notes: true
96+
env:
97+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Rust/SCANNR build artifacts
2+
/target/
3+
**/*.rs.bk
4+
*.pdb
5+
Cargo.lock
6+
7+
# Logs
8+
*.log
9+
10+
# IDE and editor files
11+
.idea/
12+
.vscode/
13+
*.swp
14+
*.swo
15+
*~
16+
.DS_Store
17+
18+
# OS files
19+
Thumbs.db
20+
.DS_Store
21+
22+
# Build directories
23+
target/
24+
debug/
25+
release/
26+
27+
# Export files
28+
scannr_export_*

Cargo.toml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
[package]
2+
name = "SCANNR"
3+
version = "1.1.2"
4+
authors = ["Autumn <autumn@skerritt.blog>"]
5+
edition = "2021"
6+
description = "Faster Nmap Scanning with Rust"
7+
homepage = "https://github.com/rustscan/rustscan"
8+
repository = "https://github.com/rustscan/rustscan"
9+
license = "GPL-3.0-only"
10+
keywords = ["port", "scanning", "nmap"]
11+
categories = ["command-line-utilities"]
12+
readme = "README.md"
13+
exclude = [
14+
".github/*",
15+
"pictures/*",
16+
"rustscan-debbuilder/*",
17+
]
18+
19+
[dependencies]
20+
petgraph = "0.6"
21+
rand = "0.8"
22+
regex = "1"
23+
serde = { version = "1", features = ["derive"] }
24+
serde_derive = "1"
25+
serde_json = "1.0"
26+
pnet_packet = "0.35"
27+
pnet_datalink = "0.35"
28+
clap = { version = "4.5", features = ["derive", "wrap_help"] }
29+
colored = "2.1"
30+
async-std = "1.13"
31+
futures = "0.3"
32+
rlimit = "0.10"
33+
log = "0.4"
34+
env_logger = "0.11"
35+
anstream = "0.6"
36+
dirs = "5.0"
37+
gcd = "2.1"
38+
colorful = "0.3"
39+
ansi_term = "0.12"
40+
toml = "0.8"
41+
cidr-utils = "0.6"
42+
itertools = "0.13"
43+
hickory-resolver = { version = "0.24", features = ["dns-over-rustls"] }
44+
anyhow = "1.0"
45+
text_placeholder = { version = "0.5", features = ["struct_context"] }
46+
once_cell = "1.20"
47+
eframe = { version = "0.27", default-features = false, features = ["default_fonts", "glow"] }
48+
egui = "0.27"
49+
chrono = { version = "0.4", features = ["serde"] }
50+
if-addrs = "0.14"
51+
ipnetwork = "0.21"
52+
tokio = { version = "1", features = ["full"] }
53+
async-compat = "0.2"
54+
whoami = "1.5"
55+
glam = "0.29"
56+
maxminddb = "0.27"
57+
egui_graphs = "0.16.0-beta.0"
58+
async-channel = "2.3"
59+
egui_extras = { version = "0.27", features = ["all_loaders"] }
60+
image = { version = "0.24", features = ["png", "jpeg"] }
61+
ico = "0.3"
62+
mdns-sd = "0.10"
63+
64+
[dev-dependencies]
65+
parameterized = "2.0"
66+
wait-timeout = "0.2"
67+
criterion = { version = "0.5", features = ["html_reports"] }
68+
69+
[build-dependencies]
70+
winres = "0.1"
71+
72+
[package.metadata.deb]
73+
depends = "$auto, nmap"
74+
section = "rust"
75+
76+
[profile.release]
77+
lto = true
78+
panic = 'abort'
79+
strip = true
80+
81+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
82+
[[bin]]
83+
name = "scannr-cli"
84+
path = "src/main.rs"
85+
86+
[[bin]]
87+
name = "scannr-gui"
88+
path = "src/gui_main.rs"
89+
90+
[lints.rust]
91+
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(tarpaulin_include)"] }
92+
93+
[[bench]]
94+
name = "benchmark_portscan"
95+
harness = false

0 commit comments

Comments
 (0)