Skip to content

Releases: andrearaponi/dito

License Update to Apache 2.0

31 Dec 11:00
Compare
Choose a tag to compare

👉 Dito 0.6.0 - License Update to Apache 2.0 🚀

What's New

License Change to Apache 2.0 📝

  • Dito is now licensed under the Apache License 2.0, replacing the previous MIT license.
  • This change:
    • Aligns the project with CNCF standards.
    • Provides enhanced legal protection with the included patent clause.
    • Increases attractiveness for enterprise adoption.

Added NOTICE File 📄

  • A NOTICE file has been added to ensure transparency and compliance with third-party dependencies.

Documentation Updates 📚

  • Updated the "License" section in the README.md.

0.5.1

04 Nov 17:13
Compare
Choose a tag to compare

👉 Dito 0.5.1 - Code Smell Fixes & Test Enhancements

What's New

Code Smell Fixes & Test Improvements 🛠️

  • Addressed minor code smells to improve code maintainability.
  • Fixed tests for handlers and app, enhancing reliability.

This release focuses on improving code quality and test stability, making Dito more robust and maintainable.

0.5.0

30 Oct 18:02
018690a
Compare
Choose a tag to compare

👉 Dito 0.5.0 - WebSocket Proxy Support

What's New

WebSocket Proxy Support 🕸️

Dito now supports WebSocket proxying, allowing you to seamlessly forward WebSocket connections to your backend servers. This feature can be enabled per location, offering flexible and granular WebSocket routing for real-time applications and protocols.

  • New enable_websocket Configuration:
    • Easily enable WebSocket support on specific routes by adding enable_websocket: true to your location configuration.
    • Example:
      # List of location configurations for proxying requests.
      locations:
         - path: "^/test-ws$" # Regex pattern to match the request path.
           target_url: "wss://echo.websocket.org" # The target URL to which the request will be proxied.
           enable_websocket: true # Enable WebSocket support for this location.
           replace_path: true # Replace the matched path with the target URL.

Upcoming Enhancements for WebSocket Support 🔄

Future versions of Dito will include even more advanced WebSocket features:

  • Enhanced TLS Support: Configurable TLS settings for secure WebSocket connections, ensuring data integrity and privacy.
  • Comprehensive Error Handling: Improved resilience and error management for WebSocket connections to handle unexpected interruptions or connection issues gracefully.
  • Detailed Metrics: Real-time metrics for WebSocket traffic, allowing you to monitor performance, connection stability, and data flow with precision.

As always, please thoroughly test this update and share your feedback. Contributions and issue reports are greatly appreciated!

0.4.2

27 Oct 15:51
08319ab
Compare
Choose a tag to compare

👉 Dito 0.4.2 - Go Version Update to 1.23.2

What's New

Updated Go Version 🚀

  • Go 1.23.2 Update: Dito now uses Go version 1.23.2. This update introduces optimizations, security improvements, and new language features that enhance the overall stability and performance of the project.
    • Performance Improvements: The latest Go release brings significant performance gains, including faster runtime and optimized memory management.
    • Enhanced Security: Includes runtime and compiler security updates, improving the robustness of the application.
    • Extended Compatibility: Testing the application with this new version is recommended to ensure full compatibility with all existing features.

As always, please thoroughly test this update and share your feedback. Contributions and issue reports are greatly appreciated!

0.4.1

26 Oct 18:59
0ca4e0c
Compare
Choose a tag to compare

👉 Dito 0.4.1 - Enable Profiler Flag

What's New

Enable Profiler Flag ⚙️

  • Optional Profiling: Introduced a --enable-profiler flag to allow optional runtime profiling with the pprof package.
    • Pprof Server: When enabled, the profiling server runs on port 6060, providing valuable insights into application performance.
    • Advanced Profiling Options: Mutex and block profiling are activated to help identify lock contention and blocking operations, aiding in pinpointing bottlenecks.
    • Intended for Development and Testing: This feature facilitates in-depth performance analysis during development and testing phases.

Enhancements

  • Enhanced Monitoring: This addition allows developers to seamlessly monitor application health and performance metrics, complementing other logging and transport improvements from previous releases.

Feel free to test this new feature and continue to share your feedback. Contributions and issue reports are always appreciated!

0.4.0

19 Oct 15:59
c68f207
Compare
Choose a tag to compare

👉 Dito 0.4.0 - Custom Transport Configuration & Improved Logging

What's New

Custom Transport Configuration 🚀

  • Per-Location HTTP Transport Settings: You can now customize the HTTP transport settings on a per-location basis. This allows for fine-grained control over backend connections, including timeouts, connection limits, and TLS settings.
    • Features Include:
      • Timeouts and Connection Limits: Configure idle_conn_timeout, max_idle_conns, max_conns_per_host, etc.
      • TLS Settings: Manage tls_handshake_timeout and enforce HTTP/2 if needed.
      • Custom Certificates: Specify cert_file, key_file, and ca_file for mTLS connections.

Improved Logging System

  • Asynchronous Logging with Worker Pool: Logging operations are now handled asynchronously using a worker pool to prevent blocking the main request handling.
  • Non-Blocking Log Channel: Implemented a non-blocking select statement to avoid blocking when the log channel is full.
  • Configurable Buffer Size: You can now configure the size of the log channel buffer to balance memory usage and logging throughput.
  • Performance Optimizations: Reduced memory allocations and improved logging efficiency to handle high-throughput scenarios.

Enhancements

  • Stability Improvements: Enhanced the transport layer stability by caching transports and ensuring they are updated promptly after configuration changes.

Please test these updates in your environment and provide feedback.
Contributions and issue reports are appreciated.

0.3.1

17 Oct 16:36
94af432
Compare
Choose a tag to compare

👉 Dito 0.3.1 - Transport and Cache Fixes

What's New:

  • Transport cache handling fix: Resolved an issue where the transport was not being updated immediately after configuration changes. Now, transports are updated promptly to ensure that all requests reflect the latest configuration.
  • Cache middleware optimization: Improved the behavior of the cache middleware to handle transport updates correctly. This addresses delays in responses when caching is enabled.

Enhancements:

  • Transport layer stability: Introduced caching for transports to enhance the stability and efficiency of the proxy.
  • Performance improvements: Optimized the cache middleware to reduce latency, ensuring faster response times when serving cached responses from Redis.

How to Use:

  1. Ensure that your configuration is up to date and that caching and transport settings are configured correctly in config.yaml.
  2. Test the transport updates after configuration changes to ensure proper functionality.

Please test these updates in your environment and provide feedback.
Contributions and issue reports are appreciated.

0.3.0

16 Oct 16:25
bee2c7e
Compare
Choose a tag to compare

👉 Dito 0.3.0 - Prometheus Metrics Support

What's New:

  • Added Prometheus metrics support: Dito now exposes various metrics for monitoring the proxy's performance and behavior, including custom metrics for HTTP requests, duration, active connections, and data transfer.
  • Standard Go and Prometheus metrics: Enabled automatic collection of Go runtime metrics (memory, garbage collection, goroutines) and Prometheus HTTP handler metrics.

Enhancements:

  • Configurable metrics support: Metrics can be enabled or disabled via the config.yaml file. The default metrics path is /metrics.
  • Detailed monitoring: Added custom metrics:
    • http_requests_total: Tracks the total number of HTTP requests processed.
    • http_request_duration_seconds: Measures the duration of HTTP requests.
    • active_connections: Indicates the number of active connections.
    • data_transferred_bytes_total: Monitors the amount of data transferred, partitioned by direction (inbound or outbound).

How to Use:

  1. Enable metrics in the configuration:
    metrics:
       enabled: true
       path: "/metrics"
    
    

Please test this feature in your environments and report any issues.
Feedback and contributions are welcome.

0.2.0

13 Oct 07:32
0950967
Compare
Choose a tag to compare

👉 Dito 0.2.0 - Graceful Shutdown Support

What's New:

  • Added graceful shutdown feature: Dito now properly handles shutdown signals (SIGINT and SIGTERM) and allows ongoing connections to close gracefully before shutting down.
  • Improved server reliability and performance during shutdown operations, ensuring no requests are abruptly interrupted.

Enhancements:

  • Implemented server listening for system signals (SIGINT and SIGTERM), enabling graceful termination.
  • Server now waits for active connections to finish before completing the shutdown process.

How to Use:

No additional configuration is needed.
The server will automatically handle system signals and apply graceful shutdown when receiving termination commands.

Testing and Feedback:

Please test this feature in your environments and report any issues.
Feedback and contributions are welcome.

0.1.0

12 Oct 06:56
Compare
Choose a tag to compare

initial release :D