Nuar 1.0.81

dotnet add package Nuar --version 1.0.81                
NuGet\Install-Package Nuar -Version 1.0.81                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nuar" Version="1.0.81" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Nuar --version 1.0.81                
#r "nuget: Nuar, 1.0.81"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Nuar as a Cake Addin
#addin nuget:?package=Nuar&version=1.0.81

// Install Nuar as a Cake Tool
#tool nuget:?package=Nuar&version=1.0.81                

<div align="center">

Nuar API Gateway Framework

NuGet .NET 9.0 Build Status

</div>

Nuar is an advanced, modular, and extensible API Gateway framework specifically designed for modern microservices architecture. With a focus on scalability, observability, and performance, Nuar simplifies API management, routing, and communication between services while providing seamless integration with popular tools and technologies.

================================================================================
   
 .-----------------. .----------------.  .----------------.  .----------------.   
| .--------------. || .--------------. || .--------------. || .--------------. |  
| | ____  _____  | || | _____  _____ | || |      __      | || |  _______     | |  
| ||_   \|_   _| | || ||_   _||_   _|| || |     /  \     | || | |_   __ \    | |  
| |  |   \ | |   | || |  | |    | |  | || |    / /\ \    | || |   | |__) |   | |  
| |  | |\ \| |   | || |  | '    ' |  | || |   / ____ \   | || |   |  __ /    | |  
| | _| |_\   |_  | || |   \ `--' /   | || | _/ /    \ \_ | || |  _| |  \ \_  | |  
| ||_____|\____| | || |    `.__.'    | || ||____|  |____|| || | |____| |___| | |  
| |              | || |              | || |              | || |              | |  
| '--------------' || '--------------' || '--------------' || '--------------' |  
 '----------------'  '----------------'  '----------------'  '----------------'   

                 _  _____       _                           
     /\         (_)/ ____|     | |                          
    /  \   _ __  _| |  __  __ _| |_ _____      ____ _ _   _ 
   / /\ \ | '_ \| | | |_ |/ _` | __/ _ \ \ /\ / / _` | | | |
  / ____ \| |_) | | |__| | (_| | ||  __/\ V  V / (_| | |_| |
 /_/    \_\ .__/|_|\_____|\__,_|\__\___| \_/\_/ \__,_|\__, |
          | |                                          __/ |
          |_|                                         |___/ 


                                
                                /####  Nuar API Gateway  ####\
                            @#~    *Innovative & Fast*    ~#@

================================================================================

Key Features

  • Modular Design: Use only the components you need by adding or removing features via Nuar extensions.
  • Authentication & Authorization: Supports JWT, OAuth, and custom authentication mechanisms.
  • CORS Management: Effortlessly manage CORS policies using the Nuar.Cors extension.
  • Custom Error Handling: Fine-tune error responses with Nuar.CustomErrors.
  • Distributed Tracing: Achieve observability with Nuar.Tracing, leveraging OpenTelemetry.
  • API Documentation: Automatically generate API docs with Nuar.Swagger using OpenAPI.
  • Message Brokers: Integrate RabbitMQ with Nuar.RabbitMQ for microservices communication.
  • Scalability & Resilience: Built with Polly for handling retries, circuit-breaking, and resilience.

Project Structure

.
├── docs                     # Documentation and assets
│   └── logo                 # Nuar logo assets
├── README.md                # This readme file
├── scripts                  # Build and packaging scripts
├── src                      # Core and extension libraries
│   ├── Nuar                 # Core Nuar framework
│   ├── Nuar.Cors            # CORS policy management
│   ├── Nuar.CustomErrors    # Custom error handling
│   ├── Nuar.Host            # Host project for running the gateway
│   ├── Nuar.JWT             # JWT authentication
│   ├── Nuar.RabbitMQ        # RabbitMQ messaging support
│   ├── Nuar.Swagger         # Swagger API documentation
│   └── Nuar.Tracing         # Distributed tracing support

Getting Started

Prerequisites

Ensure you have the following tools installed:

Installation

  1. Clone the Repository

    git clone https://github.com/ITSharpPro/Nuar.git
    cd nuar_framework
    
  2. Restore Dependencies

    dotnet restore
    
  3. Build the Project

    dotnet build
    
  4. Run the API Gateway

    Navigate to the host directory and run the API Gateway:

    cd src/Nuar.Host/src/Nuar.Host
    dotnet run
    

Configuration

Nuar is fully configurable through YAML. Define routes, services, CORS, security policies, and more in nuar.yml:

routes:
  - path: /api/service1
    service: service1
    method: GET
    auth:
      required: true

Packaging & Deployment

  • Build & Package: Use the following script to package all components:

    bash scripts/pack-all.sh
    
  • Run Tests: To execute all unit tests, run:

    bash scripts/build-and-test.sh
    

Available Extensions

Nuar is designed to be modular. Below are some key extensions:

  • Nuar.Cors: Manage Cross-Origin Resource Sharing (CORS) policies.
  • Nuar.JWT: Add JWT-based authentication and authorization.
  • Nuar.RabbitMQ: Integrate RabbitMQ for message-based communication.
  • Nuar.Swagger: Generate API documentation with Swagger and OpenAPI.
  • Nuar.Tracing: Utilize OpenTelemetry for distributed tracing and observability.

Contributing

Contributions are welcome! If you have a bug report, feature request, or want to contribute code, please follow these steps:

  1. Fork the repository.
  2. Create a new feature branch.
  3. Submit a pull request with your changes.

We also encourage opening discussions on issues to get feedback from the community before starting large feature developments.

License

The Nuar Framework is licensed under the Apache-2.0 License.


For more information, visit ITSharpPro or check the official documentation.


Nuar Logo

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on Nuar:

Package Downloads
Nuar.JWT

Nuar.JWT - JWT authentication extension for the Nuar API gateway framework

Nuar.Cors

Nuar.Cors - CORS extension for the Nuar API gateway framework

Nuar.CustomErrors

Nuar.CustomErrors - Custom error handling extension for the Nuar API gateway framework

Nuar.Tracing

Nuar.Tracing - Distributed tracing support for the Nuar API gateway framework

Nuar.RabbitMQ

Nuar.RabbitMQ - RabbitMQ extension for the Nuar API gateway framework

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.81 145 10/10/2024
1.0.74 157 10/6/2024
1.0.71 138 10/5/2024
1.0.69 144 10/5/2024
1.0.67 143 10/5/2024
1.0.65 140 10/5/2024
1.0.63 156 9/29/2024
1.0.62 138 9/29/2024
1.0.61 136 9/29/2024
1.0.60 145 9/29/2024
1.0.59 145 9/29/2024
1.0.58 149 9/29/2024
1.0.55 136 9/29/2024
1.0.41 147 9/29/2024
1.0.39 127 9/29/2024
1.0.37 104 9/29/2024
1.0.35 117 9/29/2024
1.0.33 97 9/29/2024
1.0.29 116 9/29/2024
1.0.27 103 9/29/2024
1.0.23 100 9/27/2024
1.0.19 102 9/27/2024
1.0.8 128 9/26/2024
1.0.5 164 9/26/2024
1.0.2 91 9/26/2024

Initial release of the Nuar framework for building scalable API gateways in a microservices architecture.