DEV Community

Aria Diniz
Aria Diniz

Posted on

Macaw Framework 1.1.0: Enhancing Security, Flexibility, and Robustness in Your Web Applications

Hello everyone! Today, I'm delighted to announce the release of Macaw Framework 1.1.0, a significant update to my project of creating a Ruby-based web framework from scratch. In this version, I've introduced several exciting features and improvements, emphasizing flexibility, security, and robustness while preserving Macaw's simplicity and ease-of-use. Let's explore what's new in Macaw Framework 1.1.0!

Extended SSL/TLS Key Support

In the spirit of enhancing security and giving you more choices, Macaw now supports Elliptic Curve (EC) keys for SSL/TLS, in addition to the previously supported RSA keys. To enable this feature, simply update your SSL configuration in the application.json file with the paths to your EC keys:

{
  "macaw": {
    ...
    "ssl": {
      "key_type": "EC",
      "cert_file_name": "path/to/your/cert.pem",
      "key_file_name": "path/to/your/key.pem"
    },
    ...
  }
}
Enter fullscreen mode Exit fullscreen mode

Graceful Server Shutdown

I've rethought the server shutdown process to minimize the risk of data loss and ensure a safer shutdown experience. The newly introduced graceful shutdown mechanism allows Macaw to patiently wait for the active threads to complete their tasks before closing. No extra configuration is required for this - it's all handled behind the scenes!

Improved Log Readability & Optional Automatic Logging

Your logs are critical for understanding what's happening under the hood. I've made improvements to enhance their readability, allowing you to better interpret and analyze Macaw's activities. Additionally, the use of the logging aspect, which logs the overall framework status and all request/response data, is now optional, offering you greater control over your logging preferences.

Thread Starvation Prevention

In this update, I've addressed a potential thread starvation issue caused by abrupt client disconnections. I've fixed the corresponding error and introduced a mechanism to maintain the threads in the pool, enhancing the stability and reliability of the Macaw Framework.

Getting Started with Macaw Framework 1.1.0

Setting up and using Macaw remains as simple as ever. Refer to my previous post for a step-by-step guide on how to get started with Macaw, including creating HTTP endpoints, setting up rate limiting, enabling SSL, caching, and Prometheus monitoring. Once you've set everything up, you can start the server using the start! method:

app.start!
Enter fullscreen mode Exit fullscreen mode

This release is an important step forward in my project's journey. I'm proud of what I've accomplished so far, but even more excited about the road ahead. Check out the Macaw Framework's GitHub repository here, and join me in this thrilling journey. Your contributions, feedback, and insights are greatly appreciated. Enjoy the new Macaw Framework 1.1.0!

Top comments (0)