NetEngine  by dashiell-zhang

.NET 10 framework for accelerated backend development

Created 4 years ago
375 stars

Top 76.0% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

NetEngine provides a robust, foundational .NET project structure designed to accelerate development by integrating common backend capabilities. It targets .NET developers seeking a well-organized, maintainable, and extensible boilerplate for new projects, offering pre-built solutions for Web APIs, admin interfaces, background tasks, and distributed systems.

How It Works

Built on the latest .NET platform, NetEngine emphasizes a clean, Microsoft-aligned design philosophy with minimal encapsulation for ease of customization. Its core innovation lies in extensive use of C# Source Generators to automate boilerplate code for dependency injection, background services, and cross-cutting concerns like logging, caching, and concurrency control via proxy patterns. The architecture is layered (Application, Infrastructure, Repository, Presentation) promoting separation of concerns.

Quick Start & Requirements

  • Primary Install/Run: dotnet restore and dotnet build NetEngine.slnx from the root. Run specific projects using dotnet run --project <path/to/csproj>.
  • Prerequisites: .NET 10 SDK (or compatible preview), PostgreSQL (default), Redis (optional). Cloud services (OSS/COS, SMS) are optional for specific features.
  • Configuration: Primarily via appsettings.json for connection strings, JWT, RSA keys, and cloud credentials.
  • Docs/Demo: Swagger endpoints available in Development mode.

Highlighted Details

  • Source Generators: Automate DI, background services, proxy generation for behaviors (logging, caching, concurrency), soft delete filters, and JSON column mapping.
  • Distributed Systems: Integrated Redis-based distributed caching (HybridCache) and distributed locks (IDistributedLock) with semaphore support.
  • Security: JWT authentication (ECDSA), request signing (anti-tampering/replay), and RSA field decryption.
  • Task Management: Unified framework for scheduled ([ScheduleTask]) and queue ([QueueTask]) tasks, configurable via database.
  • LLM Integration: OpenAI-compatible abstraction for LLMs, configurable via providers and managed through an admin UI.
  • Comprehensive Filters: Includes filters for caching, concurrency/rate limiting, signature verification, RSA decryption, and ETag support.

Maintenance & Community

The provided README focuses exclusively on technical implementation details and does not contain information regarding specific contributors, sponsorships, community channels, or roadmap links.

Licensing & Compatibility

  • License: MIT License.
  • Compatibility: Permissive for commercial and non-commercial use, requiring only the preservation of the original copyright notice.

Limitations & Caveats

Full functionality for features like file storage and SMS requires specific cloud provider integration. Swagger UI is enabled by default only in Development environments. LLM integration relies on providers with OpenAI-compatible APIs.

Health Check
Last Commit

19 hours ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
2 stars in the last 30 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Kent Dodds Kent Dodds(Cofounder of Remix), and
10 more.

agentic by transitive-bullshit

0.0%
18k
AI agent stdlib for LLM-based TypeScript tooling
Created 3 years ago
Updated 2 weeks ago
Feedback? Help us improve.