Speeding up the pipeline
To avoid overloading your computer and your target, jxscout comes with some defaults that throttle its inner workings. However, these settings are configurable and it's advisable that you tune them to get the quickest results possible from jxscout.
Concurrency
Every step of jxscout's pipeline has a limit in concurrency to avoid overloading your computer. By default, every step has at most 5 processes at the same time. You can change this by changing your project settings (or ~/.jxscout-pro/shared_project_settings.jsonc if you want it to be kept across all projects) with the following settings:
{
// ...
"$schema": "file:///Users/francisconeves/.jxscout-pro/project_settings.schema.json",
"analyzer": {
"concurrency": 10
},
"beautifier": {
"concurrency": 10
},
"chunk_discoverer": {
"concurrency": 10
},
"sourcemaps": {
"concurrency": 20
},
"wordlist": {
"concurrency": 20
}
}
Rate limiting
By default, jxscout does at most 1 request per second to your target. This is a safe default that shouldn't cause scenarios where you are getting rate limited because of jxscout. This rate limiting applies to both chunk discovery and source map discovery, which are the only steps of the pipeline where jxscout initiates requests.
To be more reliable, jxscout will also retry and back off requests on transient failures or rate limiting based on the returned request status code. So there is some safety in case you are getting rate limited, to ensure that the chunks will eventually get downloaded.
You can configure these settings by updating your project settings (or ~/.jxscout-pro/shared_project_settings.jsonc if you want it to be kept across all projects):
{
// ...
"request_settings": {
"rate_limiting_enabled": true, // can be used to disable rate limiting
"max_requests_per_minute": 1 // max number of requests that jxscout does per minute
}
}