Compare commits

...
Author SHA1 Message Date
Brandon 6a281bf34e 1.5 release 2020-08-04 15:21:30 +01:00
Brandon 5f95b34250 deb builder works 2020-08-04 13:01:49 +01:00
Brandon 4bca6ce337 Merge pull request #108 from RustScan/bee-fix-mac-os-ulimit
Bee fix mac os ulimit
2020-08-04 12:57:24 +01:00
Brandon 9caed66265 accidentally included Vim keybindings lol 2020-08-03 23:09:24 +01:00
Brandon eae6342255 adjusted test names 2020-08-03 22:56:30 +01:00
Brandon 328156c613 changed mac osx tests to fail 2020-08-03 21:36:27 +01:00
Brandon f53f6123bf Merge branch 'bee-fix-mac-os-ulimit' of github.com:brandonskerritt/RustScan into bee-fix-mac-os-ulimit 2020-08-03 21:35:40 +01:00
Brandon 7044174933 fixed code review issues 2020-08-03 21:33:18 +01:00
Brandon 1ede04d539 Merge branch 'master' into bee-fix-mac-os-ulimit 2020-08-03 20:10:19 +01:00
Brandon e56456e779 rustfmt 2020-08-03 20:09:11 +01:00
Brandon 484cf023d7 Merge pull request #113 from RustScan/all-contributors/add-royharoush
docs: add royharoush as a contributor
2020-08-03 20:08:27 +01:00
Brandon 98763d43e0 added more tests to reach 90% code cov 2020-08-03 20:05:59 +01:00
allcontributors[bot] a81c409ed4 docs: update .all-contributorsrc [skip ci] 2020-08-03 17:56:06 +00:00
allcontributors[bot] c0f63e0534 docs: update README.md [skip ci] 2020-08-03 17:56:05 +00:00
Brandon 1d68c842d9 removed cargo upload 2020-08-03 12:44:07 +01:00
Brandon 6568203f46 Merge pull request #109 from RustScan/bee-auto-deployment
added crates.io publishing
2020-08-03 12:29:43 +01:00
Brandon 0cfe82eb5d remvoed codecov 2020-08-03 12:18:56 +01:00
Brandon 53512039d1 Merge branch 'bee-auto-deployment' of github.com:brandonskerritt/RustScan into bee-auto-deployment 2020-08-03 11:30:51 +01:00
Brandon 7b392f0d6d added codecoverage 2020-08-03 11:30:29 +01:00
Brandon bf67019079 Merge branch 'master' into bee-auto-deployment 2020-08-03 11:26:02 +01:00
Brandon da27b17485 only deploy on master branch 2020-08-03 01:36:36 +01:00
Brandon a528d41ac6 Update .travis.yml 2020-08-03 01:19:05 +01:00
Brandon 7686c25d0d osx now no longer fails ci 2020-08-03 01:18:29 +01:00
Brandon 9cf4177faa mac os doesnt fail ci now 2020-08-03 01:17:45 +01:00
Brandon 647b97b52c added crates.io publishing 2020-08-03 01:14:48 +01:00
Brandon 1b8b0b4478 Cannot fix until opts can be made without arguments 2020-08-03 01:10:03 +01:00
Brandon c6dedc317a maybe ci will show this working? 2020-08-03 00:45:36 +01:00
Brandon 654488cbbc Added ulimit warning, info log, and test 2020-08-03 00:33:49 +01:00
Brandon 81701d4243 automatic ulimit halving 2020-08-03 00:29:42 +01:00
Brandon 97eac2aa33 Merge pull request #106 from bernardoamc/ba-tackle-config
Move config path disclaimer to opening function
2020-08-03 00:19:11 +01:00
Bernardo de Araujo 76ee4666b8 Move config path disclaimer to opening function
This will always be displayed unless the `quiet` flag is specified and
has the added benefit of allowing us to enforce the IP address.
2020-08-02 18:41:08 -04:00
Brandon 7e48f125dc why wont you work :( 2020-08-02 23:00:23 +01:00
Brandon 56482fd8ff increased timeout 2020-08-02 22:53:21 +01:00
Brandon 5e41472814 reducing batch sizes 2020-08-02 22:47:54 +01:00
Brandon d99c811e93 amending for mac os 2020-08-02 22:39:26 +01:00
Brandon ec003e4557 amending for mac os 2020-08-02 22:33:26 +01:00
Brandon 50ca069f20 added many more tests 2020-08-02 22:25:48 +01:00
Brandon 9d2318ab9c trying cmnatic test server 2020-08-02 22:10:08 +01:00
Brandon 9c7916f92a Merge pull request #104 from SanjoAndPanjo/master
Added gh releases, windows support, added up docker service, re-enabled discord webhooks
2020-08-02 21:42:06 +01:00
Brandon 6d053ad199 Update .travis.yml 2020-08-02 21:33:35 +01:00
Brandon 7dedfb5fed fixed travis to not include windows 2020-08-02 21:08:29 +01:00
Sanjo and Panjo 748ad43db0 fixed spacing... damn it 2020-08-02 18:26:26 +02:00
Sanjo and Panjo 75523d03cb added github releases, re-enabled messages to discord on successfull deployment 2020-08-02 18:18:14 +02:00
Brandon 328226838e Merge pull request #103 from RustScan/bee-add-travis-ci
Bee add travis ci
2020-08-02 16:11:10 +01:00
Brandon f78b114486 Merge branch 'master' into bee-add-travis-ci 2020-08-02 16:00:56 +01:00
Brandon 7bb1f7860b dont post to discord on ok build 2020-08-02 15:43:40 +01:00
Brandon 2fd63fa1f3 changing batch size to 100 for testing 2020-08-02 15:13:02 +01:00
Brandon 89047f4b26 added discord webhook 2020-08-02 15:04:25 +01:00
Brandon f659b8dd3d fixing MacOS builds 2020-08-02 15:01:41 +01:00
Brandon 6ab1c526cc added matrix 2020-08-02 14:51:10 +01:00
Brandon b2eac63130 added rustfmt 2020-08-02 14:45:46 +01:00
Brandon cdb55261b2 added cargo test to travisci 2020-08-02 14:31:34 +01:00
Brandon fb666f46bb changed language to rust 2020-08-02 13:53:10 +01:00
Brandon 96659dcd89 added travisci file 2020-08-02 13:52:41 +01:00
Brandon b4f9d9d228 added travisci file 2020-08-02 13:51:05 +01:00
Brandon 30ab9523a2 Merge pull request #97 from RustScan/bee-update-cargo
updated cargo.toml file
2020-08-02 02:20:32 +01:00
Brandon ff2eea2015 Merge branch 'master' into bee-update-cargo 2020-08-02 01:26:10 +01:00
Brandon aef842c2e3 Merge pull request #93 from RustScan/bee-add-app-dirs
Added AppDirs
2020-08-02 01:24:51 +01:00
Brandon 2f9a54e2ba fixed discord link 2020-08-02 01:21:46 +01:00
Brandon dfb451aacc fixed path bug. .config/config.toml -> .config/rustscan/config.toml 2020-08-02 00:16:13 +01:00
Brandon 0cd37b4ffe updated cargo.toml file 2020-08-01 23:12:47 +01:00
Brandon 0c01dc0f17 fixing merge 2020-08-01 22:55:50 +01:00
Brandon 1c88f98132 fixing rust fmt 2020-08-01 22:45:52 +01:00
Brandon 6617b2178b added very important emoji to readme 2020-08-01 22:44:06 +01:00
Brandon e2395f8ddc Added distributions to readme, fixed required ip address 2020-08-01 22:43:17 +01:00
Brandon b850868265 added appdirs 2020-08-01 13:54:58 +01:00
Brandon c77e45d478 added new github action to check readme for 404s 2020-08-01 13:23:43 +01:00
8 changed files with 409 additions and 85 deletions

No files matched your search

+11 -1
View File
@@ -66,11 +66,21 @@
"bug",
"maintenance"
]
},
{
"login": "royharoush",
"name": "royharoush",
"avatar_url": "https://avatars3.githubusercontent.com/u/8113056?v=4",
"profile": "https://github.com/royharoush",
"contributions": [
"ideas",
"design"
]
}
],
"contributorsPerLine": 7,
"projectName": "RustScan",
"projectOwner": "brandonskerritt",
"projectOwner": "RustScan",
"repoType": "github",
"repoHost": "https://github.com",
"skipCi": true
+10
View File
@@ -0,0 +1,10 @@
name: Check Markdown links
on: push
jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: gaurav-nelson/github-action-markdown-link-check@v1
+56
View File
@@ -0,0 +1,56 @@
language: rust
os:
- linux
- osx
# - windows
arch:
- amd64
- arm64
services:
- docker
before_install:
- rustup component add rustfmt
# cargo test
rust:
- stable
- beta
jobs:
fast_finish: true
# Cargo fmt
script:
- cargo build
- cargo test
- cargo fmt -- --check
# automatic deployment to cargo on release
# deploy:
# provider: releases
# api_key: "GITHUB OAUTH TOKEN"
# file: "FILE TO UPLOAD"
# skip_cleanup: true
# on:
# tags: true
# after_success:
# - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
# - chmod +x send.sh
# - ./send.sh success $WEBHOOK_URL
# only deploy on master branch
# on:
# branch: master
# provider: cargo
# token: $crates
after_failure:
- wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh
- chmod +x send.sh
- ./send.sh failure $WEBHOOK_URL
Generated
+137 -54
View File
@@ -19,10 +19,22 @@ dependencies = [
]
[[package]]
name = "async-channel"
version = "1.1.1"
name = "arrayref"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee81ba99bee79f3c8ae114ae4baa7eaa326f63447cf2ec65e4393618b63f8770"
checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
[[package]]
name = "arrayvec"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
[[package]]
name = "async-channel"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43de69555a39d52918e2bc33a408d3c0a86c829b212d898f4ca25d21a6387478"
dependencies = [
"concurrent-queue",
"event-listener",
@@ -81,12 +93,29 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
[[package]]
name = "base64"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
name = "blake2b_simd"
version = "0.5.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
dependencies = [
"arrayref",
"arrayvec",
"constant_time_eq",
]
[[package]]
name = "blocking"
version = "0.4.7"
@@ -153,13 +182,19 @@ dependencies = [
[[package]]
name = "concurrent-queue"
version = "1.1.2"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1582139bb74d97ef232c30bc236646017db06f13ee7cc01fa24c9e55640f86d4"
checksum = "e296417c8154304ac70aceda41f05318f986f7c0c767bcb0a2366fbb890e78e1"
dependencies = [
"cache-padded",
]
[[package]]
name = "constant_time_eq"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]]
name = "crossbeam-utils"
version = "0.7.2"
@@ -171,6 +206,26 @@ dependencies = [
"lazy_static",
]
[[package]]
name = "dirs"
version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "142995ed02755914747cc6ca76fc7e4583cd18578746716d0508ea6ed558b9ff"
dependencies = [
"dirs-sys",
]
[[package]]
name = "dirs-sys"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
dependencies = [
"libc",
"redox_users",
"winapi",
]
[[package]]
name = "env_logger"
version = "0.7.1"
@@ -186,9 +241,9 @@ dependencies = [
[[package]]
name = "event-listener"
version = "2.2.1"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "829694371bd7bbc6aee17c4ff624aad8bf9f4dc06c6f9f6071eaa08c89530d10"
checksum = "298f00c3b04c1d9b4cb86aefaaa35348af0957d98b30a5306fc635f8e718923d"
[[package]]
name = "fastrand"
@@ -246,9 +301,9 @@ checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
[[package]]
name = "futures-lite"
version = "0.1.9"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cc8771bd1bb4c7be3c5f072a1d5e18086ef220f100a0a4efece41076e87b9f2"
checksum = "bbe71459749b2e8e66fb95df721b22fa08661ad384a0c5b519e11d3893b4692a"
dependencies = [
"fastrand",
"futures-core",
@@ -306,6 +361,17 @@ dependencies = [
"slab",
]
[[package]]
name = "getrandom"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
dependencies = [
"cfg-if",
"libc",
"wasi",
]
[[package]]
name = "heck"
version = "0.3.1"
@@ -335,9 +401,9 @@ dependencies = [
[[package]]
name = "js-sys"
version = "0.3.42"
version = "0.3.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2"
checksum = "85a7e2c92a4804dd459b86c339278d0fe87cf93757fae222c3fa3ae75458bc73"
dependencies = [
"wasm-bindgen",
]
@@ -359,9 +425,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.73"
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
[[package]]
name = "log"
@@ -402,18 +468,18 @@ checksum = "6cb300f271742d4a2a66c01b6b2fa0c83dfebd2e0bf11addb879a3547b4ed87c"
[[package]]
name = "pin-project"
version = "0.4.22"
version = "0.4.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "0.4.22"
version = "0.4.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
dependencies = [
"proc-macro2",
"quote",
@@ -434,9 +500,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "proc-macro-error"
version = "1.0.3"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
@@ -447,22 +513,20 @@ dependencies = [
[[package]]
name = "proc-macro-error-attr"
version = "1.0.3"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn-mid",
"version_check",
]
[[package]]
name = "proc-macro-hack"
version = "0.5.16"
version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
[[package]]
name = "proc-macro-nested"
@@ -500,6 +564,17 @@ version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_users"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
dependencies = [
"getrandom",
"redox_syscall",
"rust-argon2",
]
[[package]]
name = "regex"
version = "1.3.9"
@@ -528,12 +603,25 @@ dependencies = [
"libc",
]
[[package]]
name = "rust-argon2"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
dependencies = [
"base64",
"blake2b_simd",
"constant_time_eq",
"crossbeam-utils",
]
[[package]]
name = "rustscan"
version = "1.4.1"
version = "1.5.0"
dependencies = [
"async-std",
"colored",
"dirs",
"env_logger",
"futures",
"log",
@@ -625,26 +713,15 @@ dependencies = [
[[package]]
name = "syn"
version = "1.0.35"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0"
checksum = "239f255b9e3429350f188c27b807fc9920a15eb9145230ff1a7d054c08fec319"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
]
[[package]]
name = "syn-mid"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "termcolor"
version = "1.1.0"
@@ -709,10 +786,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9571542c2ce85ce642e6b58b3364da2fb53526360dfb7c211add4f5c23105ff7"
[[package]]
name = "wasm-bindgen"
version = "0.2.65"
name = "wasi"
version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3edbcc9536ab7eababcc6d2374a0b7bfe13a2b6d562c5e07f370456b1a8f33d"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
name = "wasm-bindgen"
version = "0.2.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@@ -720,9 +803,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.65"
version = "0.2.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89ed2fb8c84bfad20ea66b26a3743f3e7ba8735a69fe7d95118c33ec8fc1244d"
checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0"
dependencies = [
"bumpalo",
"lazy_static",
@@ -735,9 +818,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
version = "0.4.15"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41ad6e4e8b2b7f8c90b6e09a9b590ea15cb0d1dbe28502b5a405cd95d1981671"
checksum = "95f8d235a77f880bcef268d379810ea6c0af2eacfa90b1ad5af731776e0c4699"
dependencies = [
"cfg-if",
"js-sys",
@@ -747,9 +830,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.65"
version = "0.2.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb071268b031a64d92fc6cf691715ca5a40950694d8f683c5bb43db7c730929e"
checksum = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -757,9 +840,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.65"
version = "0.2.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf592c807080719d1ff2f245a687cbadb3ed28b2077ed7084b47aba8b691f2c6"
checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556"
dependencies = [
"proc-macro2",
"quote",
@@ -770,15 +853,15 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.65"
version = "0.2.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b6c0220ded549d63860c78c38f3bcc558d1ca3f4efa74942c536ddbbb55e87"
checksum = "93b162580e34310e5931c4b792560108b10fd14d64915d7fff8ff00180e70092"
[[package]]
name = "web-sys"
version = "0.3.42"
version = "0.3.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8be2398f326b7ba09815d0b403095f34dd708579220d099caae89be0b32137b2"
checksum = "dda38f4e5ca63eda02c059d243aa25b5f35ab98451e518c51612cd0f1bd19a47"
dependencies = [
"js-sys",
"wasm-bindgen",
+6 -4
View File
@@ -1,11 +1,11 @@
[package]
name = "rustscan"
version = "1.4.1"
version = "1.5.0"
authors = ["Bee <[email protected]>"]
edition = "2018"
description = "Faster Nmap Scanning with Rust"
homepage = "https://github.com/brandonskerritt/rustscan"
repository = "https://github.com/brandonskerritt/rustscan"
homepage = "https://github.com/rustscan/rustscan"
repository = "https://github.com/rustscan/rustscan"
license = "MIT"
keywords = ["port", "scanning", "nmap"]
categories = ["command-line-utilities"]
@@ -22,7 +22,9 @@ rlimit = "0.3.0"
shell-words = "1.0.0"
log = "0.4.0"
env_logger = "0.7.1"
dirs = "3.0.1"
[package.metadata.deb]
depends = "$auto, nmap"
authors = ["Bee <[email protected]>"]
section = "rust"
+14 -6
View File
@@ -146,6 +146,13 @@ brew install rustscan
4. The binary is located at `target/release/rustscan`
5. Symlink to the binary or something. Whatever you want!
## 🦊 Community Distributions
Here are all of RustScan's distributions, along with some community ones.
* [OpenSuse](https://software.opensuse.org/package/rustscan?search_term=rustscan)
[![Packaging status](https://repology.org/badge/vertical-allrepos/rustscan.svg)](https://repology.org/project/rustscan/versions)
# 🤸 Usage
```
@@ -316,7 +323,7 @@ Please read the [contributing.md file](contributing.md)
## Contributors ✨
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors-)
[![All Contributors](https://img.shields.io/badge/all_contributors-7-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
@@ -326,12 +333,13 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://skerritt.blog"><img src="https://avatars3.githubusercontent.com/u/10378052?v=4" width="100px;" alt=""/><br /><sub><b>Brandon</b></sub></a><br /><a href="#infra-brandonskerritt" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/brandonskerritt/RustScan/commits?author=brandonskerritt" title="Tests">⚠️</a> <a href="https://github.com/brandonskerritt/RustScan/commits?author=brandonskerritt" title="Code">💻</a> <a href="#design-brandonskerritt" title="Design">🎨</a></td>
<td align="center"><a href="https://sakiir.ovh"><img src="https://avatars1.githubusercontent.com/u/9950578?v=4" width="100px;" alt=""/><br /><sub><b>SakiiR</b></sub></a><br /><a href="https://github.com/brandonskerritt/RustScan/commits?author=SakiiR" title="Code">💻</a> <a href="https://github.com/brandonskerritt/RustScan/issues?q=author%3ASakiiR" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://skerritt.blog"><img src="https://avatars3.githubusercontent.com/u/10378052?v=4" width="100px;" alt=""/><br /><sub><b>Brandon</b></sub></a><br /><a href="#infra-brandonskerritt" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/RustScan/RustScan/commits?author=brandonskerritt" title="Tests">⚠️</a> <a href="https://github.com/RustScan/RustScan/commits?author=brandonskerritt" title="Code">💻</a> <a href="#design-brandonskerritt" title="Design">🎨</a></td>
<td align="center"><a href="https://sakiir.ovh"><img src="https://avatars1.githubusercontent.com/u/9950578?v=4" width="100px;" alt=""/><br /><sub><b>SakiiR</b></sub></a><br /><a href="https://github.com/RustScan/RustScan/commits?author=SakiiR" title="Code">💻</a> <a href="https://github.com/RustScan/RustScan/issues?q=author%3ASakiiR" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://github.com/smackhack"><img src="https://avatars2.githubusercontent.com/u/48143394?v=4" width="100px;" alt=""/><br /><sub><b>smackhack</b></sub></a><br /><a href="#ideas-smackhack" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-smackhack" title="Examples">💡</a></td>
<td align="center"><a href="http://bernardoamc.github.io/"><img src="https://avatars0.githubusercontent.com/u/428984?v=4" width="100px;" alt=""/><br /><sub><b>Bernardo Araujo</b></sub></a><br /><a href="https://github.com/brandonskerritt/RustScan/commits?author=bernardoamc" title="Code">💻</a> <a href="https://github.com/brandonskerritt/RustScan/issues?q=author%3Abernardoamc" title="Bug reports">🐛</a> <a href="#design-bernardoamc" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/Isona"><img src="https://avatars2.githubusercontent.com/u/11759523?v=4" width="100px;" alt=""/><br /><sub><b>Izzy Whistlecroft</b></sub></a><br /><a href="https://github.com/brandonskerritt/RustScan/issues?q=author%3AIsona" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://imlonghao.com"><img src="https://avatars1.githubusercontent.com/u/4951333?v=4" width="100px;" alt=""/><br /><sub><b>imlonghao</b></sub></a><br /><a href="https://github.com/brandonskerritt/RustScan/issues?q=author%3Aimlonghao" title="Bug reports">🐛</a> <a href="#maintenance-imlonghao" title="Maintenance">🚧</a></td>
<td align="center"><a href="http://bernardoamc.github.io/"><img src="https://avatars0.githubusercontent.com/u/428984?v=4" width="100px;" alt=""/><br /><sub><b>Bernardo Araujo</b></sub></a><br /><a href="https://github.com/RustScan/RustScan/commits?author=bernardoamc" title="Code">💻</a> <a href="https://github.com/RustScan/RustScan/issues?q=author%3Abernardoamc" title="Bug reports">🐛</a> <a href="#design-bernardoamc" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/Isona"><img src="https://avatars2.githubusercontent.com/u/11759523?v=4" width="100px;" alt=""/><br /><sub><b>Izzy Whistlecroft</b></sub></a><br /><a href="https://github.com/RustScan/RustScan/issues?q=author%3AIsona" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://imlonghao.com"><img src="https://avatars1.githubusercontent.com/u/4951333?v=4" width="100px;" alt=""/><br /><sub><b>imlonghao</b></sub></a><br /><a href="https://github.com/RustScan/RustScan/issues?q=author%3Aimlonghao" title="Bug reports">🐛</a> <a href="#maintenance-imlonghao" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://github.com/royharoush"><img src="https://avatars3.githubusercontent.com/u/8113056?v=4" width="100px;" alt=""/><br /><sub><b>royharoush</b></sub></a><br /><a href="#ideas-royharoush" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-royharoush" title="Design">🎨</a></td>
</tr>
</table>
+174 -11
View File
@@ -11,6 +11,7 @@ use std::process::{exit, Command};
use std::{net::IpAddr, time::Duration};
use structopt::StructOpt;
extern crate dirs;
// Average value for Ubuntu
const DEFAULT_FILE_DESCRIPTORS_LIMIT: rlimit::rlim = 8000;
// Safest batch size based on experimentation
@@ -24,6 +25,8 @@ extern crate log;
/// Fast Port Scanner built in Rust.
/// WARNING Do not use this program against sensitive infrastructure since the
/// specified server may not be able to handle this many socket connections at once.
/// - Discord https://discord.gg/GFrQsGy
/// - GitHub https://github.com/RustScan/RustScan
struct Opts {
/// The IP address to scan
#[structopt(parse(try_from_str))]
@@ -56,8 +59,9 @@ struct Opts {
command: Vec<String>,
}
#[cfg(not(tarpaulin_include))]
/// Faster Nmap scanning with Rust
/// If you're looking for the actual scanning, check out the module Scanner.
/// If you're looking for the actual scanning, check out the module Scanner
fn main() {
// logger
env_logger::init();
@@ -144,8 +148,23 @@ fn print_opening() {
|_| \\_\\__,_|___/\\__|_____/ \\___\\__,_|_| |_|
Faster nmap scanning with rust.";
println!("{}\n", s.green());
}
let config_path = match dirs::config_dir() {
Some(mut path) => {
path.push("rustscan");
path.push("config.toml");
path
}
None => panic!("Couldn't find config dir."),
};
println!(
"{} {:?}\n",
"The config file is expected to be at".yellow(),
config_path
);
}
#[cfg(not(tarpaulin_include))]
fn build_nmap_arguments<'a>(
addr: &'a str,
ports: &'a str,
@@ -198,7 +217,15 @@ fn infer_batch_size(opts: &Opts, ulimit: rlimit::rlim) -> u32 {
// When the OS supports high file limits like 8000, but the user
// selected a batch size higher than this we should reduce it to
// a lower number.
if ulimit > DEFAULT_FILE_DESCRIPTORS_LIMIT {
if ulimit < AVERAGE_BATCH_SIZE {
// ulimit is smaller than aveage batch size
// user must have very small ulimit
// decrease batch size to half of ulimit
info!("Halving batch_size because ulimit is smaller than average batch size");
println!("{}", "WARNING. Your open file description limit is smaller than expected. You can increase the ulimit with the '-u' flag like '-u 5000' to get default size. Or, use the Docker image. If you do not increase ulimit your RustScan speeds will be much slower in comparison to a normal ulimit.".red());
batch_size = ulimit / 2
} else if ulimit > DEFAULT_FILE_DESCRIPTORS_LIMIT {
info!("Batch size is now average batch size");
batch_size = AVERAGE_BATCH_SIZE
} else {
batch_size = ulimit - 100
@@ -209,43 +236,179 @@ fn infer_batch_size(opts: &Opts, ulimit: rlimit::rlim) -> u32 {
else if ulimit + 2 > batch_size && (opts.ulimit.is_none()) {
if !opts.quiet {
println!(
"Your file descriptor limit is higher than the batch size. You can potentially increase the speed by increasing the batch size, but this may cause harm to sensitive servers. Your limit is {}, try batch size {}.",
"Your file descriptor limit is higher than the batch size. You can potentially increase the speed by increasing the batch size, but this may cause harm to sensitive servers. Your limit is {}, try batch size {}.\n",
ulimit,
ulimit - 1
);
}
}
println!("The batch size is {}", batch_size);
batch_size as u32
}
#[cfg(test)]
mod tests {
use super::Scanner;
use crate::{adjust_ulimit_size, build_nmap_arguments, infer_batch_size, print_opening, Opts};
use async_std::task::block_on;
use std::{net::IpAddr, time::Duration};
use std::{net::IpAddr, str::FromStr, time::Duration};
#[test]
fn does_it_run() {
fn scanner_runs() {
// Makes sure te program still runs and doesn't panic
let addr = match "127.0.0.1".parse::<IpAddr>() {
Ok(res) => res,
Err(_) => panic!("Could not parse IP Address"),
};
let scanner = Scanner::new(addr, 1, 65535, 1000, Duration::from_millis(10), true);
let scan_result = block_on(scanner.run());
let scanner = Scanner::new(addr, 1, 65535, 100, Duration::from_millis(100), true);
block_on(scanner.run());
// if the scan fails, it wouldn't be able to assert_eq! as it panicked!
assert_eq!(1, 1);
}
fn does_it_run_ipv6() {
#[test]
fn ipv6_scanner_runs() {
// Makes sure te program still runs and doesn't panic
let addr = match "::1".parse::<IpAddr>() {
Ok(res) => res,
Err(_) => panic!("Could not parse IP Address"),
};
let scanner = Scanner::new(addr, 1, 65535, 1000, Duration::from_millis(10), true);
let scan_result = block_on(scanner.run());
let scanner = Scanner::new(addr, 1, 65535, 100, Duration::from_millis(100), false);
block_on(scanner.run());
// if the scan fails, it wouldn't be able to assert_eq! as it panicked!
assert_eq!(1, 1);
}
#[test]
fn quad_zero_scanner_runs() {
let addr = match "0.0.0.0".parse::<IpAddr>() {
Ok(res) => res,
Err(_) => panic!("Could not parse IP Address"),
};
let scanner = Scanner::new(addr, 1, 1000, 100, Duration::from_millis(500), true);
block_on(scanner.run());
assert_eq!(1, 1);
}
#[test]
fn zero_ports_no_return_no_panic() {
let addr = match "0.0.0.0".parse::<IpAddr>() {
Ok(res) => res,
Err(_) => panic!("Could not parse IP Address"),
};
let scanner = Scanner::new(addr, 1, 1, 100, Duration::from_millis(50), true);
block_on(scanner.run());
assert_eq!(1, 1);
}
#[test]
fn backwards_ports_scanner_runs() {
let addr = match "0.0.0.0".parse::<IpAddr>() {
Ok(res) => res,
Err(_) => panic!("Could not parse IP Address"),
};
let scanner = Scanner::new(addr, 10, 1, 100, Duration::from_millis(50), true);
block_on(scanner.run());
assert_eq!(1, 1);
}
#[test]
fn google_dns_runs() {
let addr = match "8.8.8.8".parse::<IpAddr>() {
Ok(res) => res,
Err(_) => panic!("Could not parse IP Address"),
};
let scanner = Scanner::new(addr, 400, 445, 100, Duration::from_millis(1500), true);
block_on(scanner.run());
assert_eq!(1, 1);
}
#[test]
fn infer_ulimit_lowering_no_panic() {
// this test is because of a bug where Mac OS didn't automatically lower ulimit
let addr = match "8.8.8.8".parse::<IpAddr>() {
Ok(res) => res,
Err(_) => panic!("Could not parse IP Address"),
};
// mac should have this automatically scaled down
let scanner = Scanner::new(addr, 400, 600, 10_000, Duration::from_millis(1500), true);
block_on(scanner.run());
assert_eq!(1, 1);
}
#[test]
fn batch_size_lowered() {
let opts = Opts {
ip: IpAddr::from_str("127.0.0.1").unwrap(),
quiet: true,
batch_size: 50_000,
timeout: 1000,
ulimit: Some(2000),
command: Vec::new(),
};
let batch_size = infer_batch_size(&opts, 120);
assert!(batch_size < 50_000);
}
#[test]
fn batch_size_lowered_average_size() {
let opts = Opts {
ip: IpAddr::from_str("127.0.0.1").unwrap(),
quiet: true,
batch_size: 50_000,
timeout: 1000,
ulimit: Some(2000),
command: Vec::new(),
};
let batch_size = infer_batch_size(&opts, 9000);
assert!(batch_size == 3000);
}
#[test]
fn batch_size_equals_ulimit_lowered() {
// because ulimit and batch size are same size, batch size is lowered
// to ULIMIT - 100
let opts = Opts {
ip: IpAddr::from_str("127.0.0.1").unwrap(),
quiet: true,
batch_size: 50_000,
timeout: 1000,
ulimit: Some(2000),
command: Vec::new(),
};
let batch_size = infer_batch_size(&opts, 5000);
assert!(batch_size == 4900);
}
#[test]
fn batch_size_adjusted_2000() {
// ulimit == batch_size
let opts = Opts {
ip: IpAddr::from_str("127.0.0.1").unwrap(),
quiet: true,
batch_size: 50_000,
timeout: 1000,
ulimit: Some(2000),
command: Vec::new(),
};
let batch_size = adjust_ulimit_size(&opts);
assert!(batch_size == 2000);
}
#[test]
fn test_print_opening_no_panic() {
// print opening should not paniic
print_opening();
assert!(1 == 1);
}
#[test]
fn test_high_ulimit_no_quiet_mode() {
let opts = Opts {
ip: IpAddr::from_str("127.0.0.1").unwrap(),
quiet: false,
batch_size: 10,
timeout: 1000,
ulimit: None,
command: Vec::new(),
};
let batch_size = infer_batch_size(&opts, 1000000);
assert!(1 == 1);
}
}
+1 -9
View File
@@ -15,6 +15,7 @@ use std::{
/// batch_size is how many ports at a time should be scanned
/// Timeout is the time RustScan should wait before declaring a port closed. As datatype Duration.
/// Quiet is whether or not RustScan should print things, or wait until the end to print only open ports.
#[cfg(not(tarpaulin_include))]
pub struct Scanner {
host: IpAddr,
start: u16,
@@ -136,12 +137,3 @@ impl Scanner {
Ok(stream)
}
}
#[cfg(test)]
mod tests {
#[test]
fn does_it_run() {
// TODO run functions here
assert_eq!(1, 1);
}
}