First off, thanks for taking the time to contribute! 🎉
AetherLens is a high-performance network analysis tool built with Rust, .NET 8, and Next.js. We welcome contributions from the community to make it even better.
- core-engine/: Rust-based packet sniffer and analysis engine.
- api-server/: .NET 8 Web API for data aggregation and SignalR broadcasting.
- web-dashboard/: Next.js 14 frontend for real-time visualization.
- shared/proto/: Protocol Buffers definitions shared between services.
Before you start, ensure you have the following installed:
- Rust Toolchain:
rustup update stable - .NET 8 SDK: Download here
- Node.js 18+: Download here
- Npcap SDK (Windows): Required for building the core engine. Extract to
npcap-sdk/in the root.
- Fork the repository and clone it locally.
- Create a branch for your feature or fix:
git checkout -b feature/amazing-feature. - Run the lab in demo mode to verify your setup:
(Select option 2 for Demo Mode if you don't want to install Npcap drivers yet).
start_lab.bat
- Follow standard Rust formatting:
cd core-engine cargo fmt cargo clippy - Run tests:
cargo test --features packet-capture
- Ensure code style compliance:
cd api-server dotnet format - Run unit tests:
cd AetherLens.Tests dotnet test
- We use Tailwind CSS and TypeScript.
- Lint your code:
cd web-dashboard npm run lint
If you modify shared/proto/aether.proto:
- Rebuild the Rust core (
cargo build). - Rebuild the .NET backend (it will auto-generate C# classes).
- You may need to update the frontend types manually or via a generator if added.
- Update the
README.mdwith details of changes to the interface, if applicable. - Update the
ARCHITECTURE.mdif you change the data flow or system design. - Ensure your code passes all tests and linters.
- Open a PR with a clear description of the problem and solution.
By contributing, you agree that your contributions will be licensed under its MIT License.