gofr-dev / gofr

An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.
https://gofr.dev
Apache License 2.0
3.61k stars 243 forks source link

Release/v1.26.0 #1178

Closed Umang01-hash closed 3 weeks ago

Umang01-hash commented 3 weeks ago

Release v1.26.0

✨ Features

1. Support for NATS as External Pub-Sub

We have added support for NATS as an external pub/sub service in GoFr. Users can now easily set up NATS for message publishing and subscribing by configuring it via app.AddPubSub. Here’s a quick example:

app.AddPubSub(nats.New(&nats.Config{
    Server:    "nats://localhost:4222",
    CredsFile: "",
    Stream: nats.StreamConfig{
        Stream:   "my-stream",
        Subjects: []string{"order-logs", "products"},
    },
    MaxWait:     5 * time.Second,
    MaxPullWait: 500,
    Consumer:    "my-consumer",
}, app.Logger()))

To inject NATS, import it using the following command:

go get gofr.dev/pkg/gofr/datasources/pubsub/nats

Refer to our documentation for detailed setup instructions.

2. New Environment Variable DB_CHARSET

Introduced a new environment variable DB_CHARSET to make the MySQL character set configurable. By default, DB_CHARSET is set to utf8. However, setting it to utf8mb4 is recommended for full Unicode support, including emojis and special characters.

3. Enhanced CLI with TUI Elements (Spinners and Progress Bar)

This release enhances the GoFr command-line experience by introducing Text User Interface (TUI) elements, including spinners and a progress bar for visual feedback during command execution.

Check out an example in examples/sample-cmd to see this in action.

4. New Examples for Remote File Server Interaction

We’ve added new examples in the examples/using-add-filestore directory, demonstrating how to interact with remote file servers using GoFr. This addition provides a convenient reference for developers working with remote file management.


🛠️ Fixes

1. Fix: Invalid ClickHouse Documentation

Updated the ClickHouse package documentation to highlight only the relevant parts, improving readability and maintainability.