Skip to content

Commit

Permalink
Merge pull request #76 from ngyn-rs/dev
Browse files Browse the repository at this point in the history
chore: version 0.3.0
  • Loading branch information
elcharitas authored Dec 27, 2023
2 parents f5bcff5 + c31b8df commit b52ed2f
Show file tree
Hide file tree
Showing 62 changed files with 1,343 additions and 555 deletions.
70 changes: 70 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,76 @@
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.

- - -
## 0.3.0 - 2023-12-27
### Packages
- ngyn_macros locked to ngyn_macros-0.3.0
- ngyn locked to ngyn-0.3.0
- ngyn_shared locked to ngyn_shared-0.3.0
- ngyn_cli locked to ngyn_cli-0.3.0
### Global changes
#### Bug Fixes
- re-export common modules into prelude (#75) - (e653403) - elcharitas
- improve response body peeking and conversion (#74) - (0322480) - elcharitas
- make requests partially mutable (#72) - (311bf5a) - elcharitas
- cog action/config (#59) - (076744a) - elcharitas
- improve controller/injectable patterns (#56) - (c0314bc) - elcharitas
- use optional catch all routes in vercel app (#54) - (3e52f62) - elcharitas
- use less ambiguous name (#44) - (b6ef3f1) - elcharitas
- status/set_status fixes (#40) - (242fc15) - elcharitas
- use ureq in weather api sample (#30) - (00489b2) - elcharitas
- further macro improvements (#28) - (8ef8bbc) - elcharitas
- basic app deployment (#23) - (dfce88e) - elcharitas
- ngyn version in basic app (#21) - (0bd8b7a) - elcharitas
#### Features
- controller/routes macro v2 (#70) - (16fd433) - elcharitas
- improve request processing and handling (#68) - (b497899) - elcharitas
- add platform macro (#67) - (f54e955) - elcharitas
- support body returns to match specs (#65) - (7fc7233) - elcharitas
- add feature flag for tide platform engine (#43) - (2061c37) - elcharitas
- proper response handling (#33) - (cd46101) - elcharitas
- add support for route specific gates (#26) - (70df61f) - elcharitas
- add support for gates and middlewares (#19) - (966087e) - elcharitas
- add support for vercel service (#24) - (175a06b) - elcharitas
- add support for release workflow (#16) - (537eede) - elcharitas
- add support for module interop (#13) - (fc75be9) - elcharitas
- add more http methods support to engine (#12) - (067ce21) - elcharitas
#### Miscellaneous Chores
- **(bump)** [email protected] -> [email protected] (#36) - (ab3e43e) - *elcharitas*
- **(bump)** [email protected] -> [email protected] (#35) - (f0ecded) - *elcharitas*
- **(version)** ngyn-0.3.0 - (44af6cf) - elcharitas
- **(version)** 0.2.8 - (1a3bff5) - elcharitas
- update project readme - (f42ebcc) - elcharitas
- add pre-bump script (#64) - (f1473d9) - elcharitas
- update sample controllers - (d88166d) - elcharitas
- sync cargo.toml - (bf38fc9) - elcharitas
- remove more fields from cog.toml - (99e4555) - elcharitas
- clean cog.toml unused configs - (c00e912) - elcharitas
- Update release workflow and add cog.toml (#55) - (420e66c) - elcharitas
- bump version to 0.2.7 - (19dfb6b) - elcharitas
- rename body to match specs (#53) - (9cfd24a) - elcharitas
- update basic_app example - (43adcbb) - elcharitas
- bump version to 0.2.6 - (e016500) - elcharitas
- bump version to 0.2.5 (#48) - (cf04092) - elcharitas
- rename ngyn::server to ngyn::platforms (#47) - (c4eeb65) - elcharitas
- bump version to 0.2.4 (#41) - (0b36fc1) - elcharitas
- bump version to 0.2.3 - (b3c0c20) - elcharitas
- bump versions to 0.2.2 (#39) - (452d3f6) - elcharitas
- update cargo.lock - (67602ce) - elcharitas
- cleanup install scripts (#31) - (7b516e4) - elcharitas
- update vercel example (#29) - (c9ec76e) - elcharitas
- disable windows test suite - (5e82a06) - elcharitas
- bump crates version - (ada1c92) - elcharitas
- bump crates version number (#22) - (d55b86a) - elcharitas
- update readme information (#20) - (138a66f) - elcharitas
- revamp weather api using reqwest + tokio (#18) - (db501df) - elcharitas
- add docker file (#17) - (46ab603) - elcharitas
- lean out macro outputs (#15) - (a944f92) - elcharitas
- add sample weather app (#14) - (3da0030) - elcharitas
- stabilize formats + repo url (#7) - (c9b1088) - elcharitas
- do not allow dead code (#6) - (a7471b9) - elcharitas

- - -

## 0.2.8 - 2023-11-26
### Packages
- ngyn_shared locked to ngyn_shared-0.2.8
Expand Down
38 changes: 18 additions & 20 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

71 changes: 41 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,51 @@
# Ngyn

Ngyn is a lightweight and powerful framework for creating robust applications in Rust. It provides a modern set of macros, and utilities that makes it easy to build performant and secure applications.
> A progressive Rust Framework for building efficient and modularized backend applications
Ngyn is a powerful and progressive Rust framework crafted for the development of efficient and modularized backend applications. With a focus on performance, reliability, and flexibility, Ngyn empowers developers to build robust server-side solutions with ease. Ngyn comes packed with powerful macros, utilities, and features that make it easy to build performant and secure applications.

## Features

- **Modular Structure**: Ngyn uses a modular structure that makes it easy to organize your code and keep it maintainable.
- **Powerful Macros**: Ngyn provides a set of powerful macros that simplify common tasks.
- **Lightweight**: Ngyn is lightweight and has a minimal footprint, making it a great choice for projects of all sizes.
- **High Performance**: Ngyn is built with performance in mind. It leverages the power of Rust to deliver fast, efficient web apps.
- **Route Gates**: A simplified way to restrict access to a route based on a set condition
- **Fully Extensible**: Ngyn allows you to build your own platform engines or make use of any of the built-in `vercel` or `tide` platform engines.
- **Progressive Enhancement:** Ngyn embraces the philosophy of progressive enhancement, allowing developers to start with a foundational set of features and progressively enhance the application as needed. This ensures a smooth and adaptable development process.

## Get Started
- **Efficiency at Core:** Ngyn is designed to prioritize efficiency in resource utilization, providing a performant environment for backend applications. Whether handling data processing, managing business logic, or interfacing with databases, Ngyn ensures optimal performance.

Ngyn is easy to get started with. All you need is a basic understanding of Rust and the basics of the Ngyn API. There is a comprehensive documentation available that covers all of the features of Ngyn, as well as sample code to help you get started quickly.
- **Modular Architecture:** Ngyn encourages a modularized approach to application development. Break down your backend logic into independent and reusable modules, promoting code organization, maintainability, and scalability. Ngyn's modular architecture facilitates collaboration among developers working on distinct components.

Ngyn is a great choice for creating robust applications quickly and easily. With its flexible and powerful API, powerful macros, and robust security features, you can be sure that your applications are secure and performant.
- **Optional Async:** Ngyn provides support for async operations out of the box through controllers. However, it's 100% optional.

- **Powerful Macros:** Ngyn provides a set of powerful macros that simplify common tasks. From defining routes to creating middleware, Ngyn's macros make it easy to build robust applications.

- **Lightweight:** Ngyn is lightweight and leaves a minimal footprint, making it a great choice for projects of all sizes. Ngyn's lightweight nature ensures that your application is not bogged down by unnecessary bloat, yet still provides the features you need to build a robust backend.

- **Fully Extensible:** Ngyn allows you to build your own platform engines or make use of any of the built-in `vercel` or `tide` platform engines.

## Getting Started

### Installation

To get started with Ngyn, simply include the framework in your Rust project by adding the following to your `Cargo.toml`:

```toml
[dependencies]
ngyn = "0.3.0"
```

### Example Usage

Here is a simple example of a Ngyn application without any of the more advanced features.

```rust
use modules::MyAppModule;
use ngyn::{NgynFactory, NgynRequest, NgynResponse, Result};
use ngyn::{module, NgynFactory, NgynRequest, NgynResponse, Result};

#[module]
struct MyAppModule;

#[ngyn::main]
async fn main() -> Result<()> {
let app = NgynFactory::create::<MyAppModule>();

app.get("/", |req: &NgynRequest, res: &mut NgynResponse| {
app.get("/", |req: &mut NgynRequest, res: &mut NgynResponse| {
res.send("Hello World!");
});

Expand All @@ -36,20 +55,12 @@ async fn main() -> Result<()> {
}
```

```rust
// my_gate.rs
// Define a gate to restrict access to a resource
use ngyn::NgynGate;

pub struct MyGate;

impl NgynGate for MyGate {
fn can_activate(&self, req: &NgynRequest) -> bool {
// Check if the user is authenticated
if req.user.is_authenticated() {
return true;
}
false
}
}
```
## Contribution

Ngyn is an open-source project, and we welcome contributions from the community. Feel free to report issues, suggest enhancements, or submit pull requests to help us improve Ngyn.

## License

Ngyn is licensed under the [MIT License](LICENSE), allowing you to use, modify, and distribute the framework freely.

Start building efficient and modularized backend applications with Ngyn today!
13 changes: 13 additions & 0 deletions crates/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.

- - -
## ngyn_cli-0.3.0 - 2023-12-27
#### Features
- **(structure)** use crates to contain all crates - (647e4b7) - elcharitas
#### Miscellaneous Chores
- Rename to ngyn (#4) - (c81adc9) - elcharitas

- - -

Changelog generated by [cocogitto](https://github.com/cocogitto/cocogitto).
55 changes: 55 additions & 0 deletions crates/core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,61 @@
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.

- - -
## ngyn-0.3.0 - 2023-12-27
#### Bug Fixes
- re-export common modules into prelude (#75) - (e653403) - elcharitas
- improve response body peeking and conversion (#74) - (0322480) - elcharitas
- make requests partially mutable (#72) - (311bf5a) - elcharitas
- await response update in vercel platform (#52) - (905bbdc) - elcharitas
- proper import paths (#50) - (6496470) - elcharitas
- proper error route handling (#46) - (82a1241) - elcharitas
- use less ambiguous name (#44) - (b6ef3f1) - elcharitas
- status/set_status fixes (#40) - (242fc15) - elcharitas
- update response values in vercel engine (#38) - (274e0e0) - elcharitas
- readme symlinking final fix - (5559c5b) - elcharitas
- sub crates readme symlinks (#37) - (0922eb3) - elcharitas
- handle uncaught clippy and test issues (#34) - (6d5ae62) - elcharitas
- use ureq in weather api sample (#30) - (00489b2) - elcharitas
- further macro improvements (#28) - (8ef8bbc) - elcharitas
- address all clippy errors (#9) - (68f7c6e) - elcharitas
- broken server doc tests (#8) - (3304537) - elcharitas
#### Features
- **(structure)** use crates to contain all crates - (647e4b7) - elcharitas
- extend response body (#69) - (476ec43) - elcharitas
- improve request processing and handling (#68) - (b497899) - elcharitas
- add platform macro (#67) - (f54e955) - elcharitas
- support body returns to match specs (#65) - (7fc7233) - elcharitas
- add feature flag for tide platform engine (#43) - (2061c37) - elcharitas
- proper response handling (#33) - (cd46101) - elcharitas
- add support for gates and middlewares (#19) - (966087e) - elcharitas
- add support for vercel service (#24) - (175a06b) - elcharitas
- add more http methods support to engine (#12) - (067ce21) - elcharitas
- add support for async routes (#11) - (e5cdc19) - elcharitas
- support multiple http methods (#2) - (3f6c8bb) - elcharitas
#### Miscellaneous Chores
- **(bump)** [email protected] -> [email protected] (#36) - (ab3e43e) - *elcharitas*
- **(bump)** [email protected] -> [email protected] (#35) - (f0ecded) - *elcharitas*
- **(version)** ngyn-0.2.8 - (2aa9005) - elcharitas
- clean out NgynResponse::new - (48a88f6) - elcharitas
- add pre-bump script (#64) - (f1473d9) - elcharitas
- sync cargo.toml - (bf38fc9) - elcharitas
- bump version to 0.2.7 - (19dfb6b) - elcharitas
- rename body to match specs (#53) - (9cfd24a) - elcharitas
- bump version to 0.2.6 - (e016500) - elcharitas
- bump version to 0.2.5 (#48) - (cf04092) - elcharitas
- rename ngyn::server to ngyn::platforms (#47) - (c4eeb65) - elcharitas
- move engine traits to shared (#45) - (5484665) - elcharitas
- bump version to 0.2.4 (#41) - (0b36fc1) - elcharitas
- bump version to 0.2.3 - (b3c0c20) - elcharitas
- bump versions to 0.2.2 (#39) - (452d3f6) - elcharitas
- bump crates version - (ada1c92) - elcharitas
- bump crates version number (#22) - (d55b86a) - elcharitas
- revamp weather api using reqwest + tokio (#18) - (db501df) - elcharitas
- Rename to ngyn (#4) - (c81adc9) - elcharitas
- add http specific methods to server (#1) - (a8ee7ec) - elcharitas

- - -

## ngyn-0.2.8 - 2023-11-26

- - -
Expand Down
8 changes: 4 additions & 4 deletions crates/core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ngyn"
version = "0.2.8"
version = "0.3.0"
edition = "2021"
description = "Modular backend framework for web applications"
license = "MIT"
Expand All @@ -11,11 +11,11 @@ path = "src/lib.rs"
[dependencies]
async-std = { version = "1.6.0", features = ["attributes"] }
nject = "0.3.0"
ngyn_macros = { path = "../macros", version = "0.2.8" }
ngyn_shared = { path = "../shared", version = "0.2.8" }
ngyn_macros = { version = "0.3.0", path = "../macros" }
ngyn_shared = { version = "0.3.0", path = "../shared" }
tide = { version = "0.16.0", optional = true }
vercel_runtime = { version = "1.1.0", optional = true }

[features]
tide = ["dep:tide", "ngyn_shared/tide"]
tide = ["dep:tide"]
vercel = ["dep:vercel_runtime"]
Loading

0 comments on commit b52ed2f

Please sign in to comment.