Releases: 1mb-dev/lobster
v2.0.0: Security Hardening & Performance
Major security hardening release with significant performance improvements.
Added
- Environment variable substitution in config files: Use
${VAR_NAME}or${VAR_NAME:-default}syntax to reference environment variables in JSON config files - Secure credential input:
--auth-password-stdinand--auth-token-stdinflags for piping secrets safely - Environment variable auth support:
LOBSTER_AUTH_PASSWORD,LOBSTER_AUTH_TOKEN,LOBSTER_AUTH_COOKIEenvironment variables - URL validation with SSRF protection: Blocks
file://,ftp://, and private IP ranges by default --allow-private-ipsflag: Explicitly enable testing against internal/localhost URLs when needed- Response size validation:
--max-response-sizeflag (default 10MB) prevents memory exhaustion from large responses - Dropped URL tracking: Warns when URLs are dropped due to queue overflow with actionable hints
- Config and auth validation methods: Early detection of invalid configuration before test execution
Changed
- Credential handling (breaking): Passwords, tokens, and cookies can no longer be passed via CLI flags. Use environment variables or stdin instead
- Insecure TLS confirmation (breaking):
--insecure-skip-verifynow requiresLOBSTER_INSECURE_TLS=trueenvironment variable confirmation - HTTP connection pooling: Significantly improved throughput with proper
http.Transportconfiguration - GetDiscoveredCount performance: Changed from O(n) to O(1) using atomic counters
- Result channel buffering: Dynamic buffer sizing based on concurrency to prevent blocking under load
- HTTP/2 enabled by default:
ForceAttemptHTTP2: truefor HTTPS connections - 429 retry timing: Response time now correctly reflects only the actual request duration, not retry wait time
- CLI architecture: Extracted CLI functions into
internal/clipackage for improved testability and maintainability
Removed
--auth-passwordCLI flag: UseLOBSTER_AUTH_PASSWORDenv var or--auth-password-stdininstead--auth-tokenCLI flag: UseLOBSTER_AUTH_TOKENenv var or--auth-token-stdininstead--auth-cookieCLI flag: UseLOBSTER_AUTH_COOKIEenv var instead
Note: --auth-header flag remains available as header names are not secrets.
Fixed
- Error message sanitization to prevent leaking internal infrastructure details (IPs, hostnames)
- Robots.txt wildcard pattern matching now correctly handles
*patterns per RFC specification - Username no longer logged in debug output (prevents enumeration)
- Cookie and header validation now provides explicit error messages for malformed input
- Mutual exclusivity check for
--auth-password-stdinand--auth-token-stdin - Environment variable substitution properly distinguishes empty values from unset variables
- EOF handling uses
errors.Is(err, io.EOF)instead of string comparison
Security
- Credentials no longer exposed in process list: Passwords and tokens removed from CLI flags
- SSRF protection: Private IP ranges (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) blocked by default
- URL scheme validation: Only
http://andhttps://schemes permitted - Insecure TLS requires explicit consent: Two-factor confirmation (flag + env var) for skipping TLS verification
- Response size limits: Prevents memory exhaustion from malicious large responses
- Error message sanitization: Internal infrastructure details redacted from user-facing output
Migration Guide
See the full CHANGELOG for detailed migration instructions.
Full Changelog: v1.0.0...v2.0.0
v1.0.0 - Production Ready
Lobster v1.0.0 - Production Ready 🎉
First stable release of Lobster - Intelligent Web Stress Testing Tool
What is Lobster?
Lobster is a zero-config web stress testing tool that automatically discovers URLs by crawling your application and validates performance under load. Point it at your app, and it handles the rest.
Highlights
✅ Production-ready stress testing engine with automatic URL discovery
✅ Comprehensive test suite with 83.5%+ coverage in critical packages
✅ Clean, accurate documentation with zero bloat
✅ Build-time version injection via git tags
✅ Performance validation with pass/fail criteria
✅ Rich reporting: HTML (interactive charts), JSON (API), console (real-time)
Installation
```bash
go install github.com/vnykmshr/lobster/cmd/lobster@v1.0.0
```
Or clone and build:
```bash
git clone https://github.com/vnykmshr/lobster.git
cd lobster
make build
```
Quick Start
```bash
lobster -url http://localhost:3000
```
Test Coverage
- tester: 83.5%
- validator: 92.5%
- config: 95.5%
- crawler: 94.9%
- reporter: 94.1%
- domain: 100%
Documentation
What Changed Since v0.1.0
See the CHANGELOG for detailed changes.
Full Changelog: v0.1.0...v1.0.0