GitHub - calpa/urusai: Go implementation of noisy HTTP/DNS traffic generator (original) (raw)
๐ Urusai
ใใใใ - Your Privacy Shield in the Digital Noise
A Go implementation of noisy - Making your web traffic less valuable, one request at a time ๐ก๏ธ
๐ What is Urusai?
Urusai (Japanese for 'noisy') is your digital privacy companion that generates random HTTP/DNS traffic noise in the background while you browse the web. By creating this digital smokescreen, it helps make your actual web traffic data less valuable for tracking and selling.
โจ Features
- ๐ Generates random HTTP/DNS traffic by crawling websites
- โ๏ธ Configurable via JSON configuration file
- ๐ญ Customizable user agents, root URLs, and blacklisted URLs
- โฑ๏ธ Adjustable crawling depth and sleep intervals
- โฐ Optional timeout setting
๐ฅ Installation
Arch Linux (AUR)
Void Linux
sudo xbps-install -S urusai
๐ฆ Using Pre-built Binaries
The easiest way to get started is to download a pre-built binary from the releases page ๐
- Download the appropriate binary for your platform:
- ๐
urusai-macos-amd64- for macOS Intel systems - ๐
urusai-macos-arm64- for macOS Apple Silicon systems - ๐ง
urusai-linux-amd64- for Linux x86_64 systems - ๐ช
urusai-windows-amd64.exe- for Windows x86_64 systems
- ๐
- Make the binary executable (Unix-based systems only):
- ๐ Run the binary:
๐ On macOS (Intel)
./urusai-macos-amd64
๐ On macOS (Apple Silicon)
./urusai-macos-arm64
๐ง On Linux
./urusai-linux-amd64
๐ช On Windows (using Command Prompt)
urusai-windows-amd64.exe
๐ ๏ธ Building from Source
๐ป Clone the repository
git clone https://github.com/calpa/urusai.git
๐ Navigate to the project directory
cd urusai
๐ฟ Build the project
go build -o urusai
๐ณ Using Docker
๐ Pull from Docker Hub
๐ฅ Pull the latest image
docker pull calpa/urusai:latest
๐ Run the container with default configuration
docker run calpa/urusai
โ๏ธ Run with custom configuration (mount your config file)
docker run -v $(pwd)/config.json:/app/config.json calpa/urusai --config config.json
The Docker image is available for multiple platforms:
- ๐ป linux/amd64 (x86_64)
- ๐ linux/arm64 (Apple Silicon)
- ๐ฑ linux/arm/v7 (32-bit ARM)
๐ป Build Locally
๐๏ธ Build the Docker image
docker build -t urusai .
๐ Run your locally built container
docker run urusai
Usage
Run with built-in default configuration
./urusai
Run with custom configuration file
./urusai --config config.json
Show help
./urusai --help
Command Line Arguments
--config: Path to the configuration file (optional, uses built-in default configuration if not specified)--log: Logging level (default: "info")--timeout: For how long the crawler should be running, in seconds (optional, 0 means no timeout)
โ๏ธ Configuration
Urusai comes with a built-in default configuration, but you can also provide your own custom configuration file. The configuration is in JSON format with the following structure:
๐จโ๐ป For Developers
๐ ๏ธ Development
Urusai is developed using standard Go practices. Here are some commands that will help you during development:
๐ป Run the project directly without building
go run main.go
๐ Run with a specific log level
go run main.go --log debug
โ๏ธ Run with a custom configuration file
go run main.go --config config.json
โฐ Run with a timeout (in seconds)
go run main.go --timeout 300
๐งช Testing
Urusai includes comprehensive test coverage for all packages. The tests verify configuration loading, command-line flag parsing, and crawler functionality.
๐ฃ Run all tests
go test ./...
๐ Run tests with verbose output
go test -v ./...
๐ Run tests with coverage
go test -cover ./...
๐ Generate a coverage report
go test -coverprofile=coverage.out ./... go tool cover -html=coverage.out
Test files include:
- ๐
main_test.go: Tests for command-line parsing, configuration loading, and signal handling - ๐
config/config_test.go: Tests for configuration loading and validation
๐๏ธ Building
๐ ๏ธ Build for the current platform
go build -o urusai
๐ป Build for a specific platform (e.g., Linux)
GOOS=linux GOARCH=amd64 go build -o urusai-linux-amd64
๐ Build for multiple platforms
GOOS=darwin GOARCH=amd64 go build -o urusai-macos-amd64 GOOS=windows GOARCH=amd64 go build -o urusai-windows-amd64.exe
โญ Star History
๐ Releases
Urusai uses GitHub Actions for automated releases. When a new tag with format v* (e.g., v1.0.0) is pushed to the repository, GitHub Actions will automatically:
- ๐งช Run tests to ensure code quality
- ๐จ Build binaries for all supported platforms (macOS Intel/ARM, Linux, Windows)
- ๐ฆ Create compressed archives of the binaries
- ๐ Create a new GitHub release with the binaries attached
To create a new release:
๐ท๏ธ Tag the commit
git tag v1.0.0
๐ Push the tag to GitHub
git push origin v1.0.0
The GitHub Actions workflow will handle the rest automatically.
๐ Code Quality
๐จ Format code
go fmt ./...
๐ Vet code for potential issues
go vet ./...
โจ Run linter (requires golint)
go install golang.org/x/lint/golint@latest golint ./...
๐ฌ Run static analysis (requires staticcheck)
go install honnef.co/go/tools/cmd/staticcheck@latest staticcheck ./...
๐ License
This project is licensed under the MIT License - see the LICENSE file for details. โ๏ธ