gofr

An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.

APACHE-2.0 License

Stars
1.4K
Committers
36

Bot releases are hidden (Show)

gofr - v1.1.1

Published by vipul-rawat 7 months ago

Release v1.1.1

🐞 Fixes

  • Add missing gofr framework version to metrics, logs, and traces
gofr - v1.1.0

Published by aryanmehrotra 7 months ago

Release v1.0.0

✨ Features

Full Changelog: https://github.com/gofr-dev/gofr/compare/v1.0.2...v1.1.0

gofr - v1.0.3

Published by aryanmehrotra 8 months ago

Release v1.0.3

🐞 Fixes

  • Fix grpc support link in readme and add the same to gofr.dev.
  • Add missing health check for PubSub (Google PubSub and Kafka).
  • Add missing migrations for PubSub (Create and Delete topics).
  • Fix migration panic when SQL is not initialized.
gofr - v1.0.2

Published by srijan-27 8 months ago

Release v1.0.2

🐞 Fixes

  • Fix duration for SQL query log and metrics.
  • Update metrics value format and histogram buckets of time duration from seconds to microseconds for following datasources:
    • Redis:
      • Previous: {.001, .003, .005, .01, .02, .03, .05, .1, .2, .3, .5, .75, 1, 2, 3, 5, 10, 30}
      • Now: {50, 75, 100, 125, 150, 200, 300, 500, 750, 1000, 1250, 1500, 2000, 2500, 3000}
    • SQL:
      • Previous: {.001, .003, .005, .01, .02, .03, .05, .1, .2, .3, .5, .75, 1, 2, 3, 5, 10, 30}
      • Now: {50, 75, 100, 125, 150, 200, 300, 500, 750, 1000, 2000, 3000, 4000, 5000, 7500, 10000}
  • Add missing metrics for PubSub :
    • app_pubsub_publish_total_count: Number of total publish operations.
    • app_pubsub_publish_success_count: Number of successful publish operations.
    • app_pubsub_subscribe_total_count: Number of total subscribe operations.
    • app_pubsub_subscribe_success_count: Number of successful subscribe operations.
gofr - v1.0.1

Published by vipul-rawat 8 months ago

Release v1.0.1

🐞 Fixes

  • Fixed content-type header for HTTP responses
  • Removed non-necessary logs from CMD application start
gofr - v1.0.0

Published by vipul-rawat 8 months ago

Release v1.0.0

✨ Features

  • Publisher-Subscriber support for Apache Kafka and Google PubSub.
  • Postgres support for the SQL database has been added, DB_DIALECT is the environment variable used to define which driver is used by GoFr application.
  • Added REMOTE_LOG_FETCH_INTERVAL to let the user configure log fetch interval from the remote logging service (default value is 15 seconds).
  • Add ExecContext method for SQL datasources.

🐞 Fixes

  • Renamed the DB object to SQL in container and migration datasources.
  • Fix response message of aliveness handler to the following :
    { "data": { "status": "UP" } }
  • Fix JSON keys for redis migration entry to follow camelcase.
gofr - v0.3.0

Published by aryanmehrotra 8 months ago

Release v0.3.0

✨ Features

  • Migrations Support for MySQL and REDIS.

  • Metrics - The following metrics are now being pushed by default.
    System Info
    - app_go_routines : Number of Go routines running.
    - app_sys_memory_alloc : Number of bytes allocated for heap objects.
    - app_sys_total_alloc : Number of cumulative bytes allocated for heap objects.
    - app_go_numGC : Number of completed Garbage Collector cycles.
    - app_go_sys : Number of total bytes of memory.

    HTTP
    - app_http_response : Response time of HTTP requests in seconds.
    - app_http_service_response : Response time of HTTP service requests in seconds.

    Redis
    - app_redis_stats : Observes the response time for Redis commands.

    SQL
    - app_sql_stats : Histogram metric response time of HTTP requests in seconds.
    - app_sql_open_connections : Number of open SQL connections.
    - app_sql_inUse_connections : Number of inUse SQL connections.

🐞 Fixes

  • Add PUT Method in circuit breaker.
  • Add check to handle panic when the command line application's last argument is -.
gofr - v0.2.0

Published by vipul-rawat 8 months ago

Release v0.2.0

Features

  • HTTP Client for performing HTTP calls with the following options -
    These options are order-agnostic and will override specific functionalities over basic HTTP calls

    • Circuit Breaker for automatically cutting off service calls if the downstream service is constantly throwing 5xx
    • Health Configs for allowing custom health-check endpoints to be configured to perform health checks
  • Introduced a /.well-known/alive default endpoint to check if the application is serving incoming requests

  • Introduced formatted logging for SQL queries, Redis queries, and HTTP service calls, where data is formatted to look readable and properly formatted to make it easy for users to debug and find important logs.

  • Remote Logging Service - users can provide a service URL that provides data to change the log level for the application without stopping and re-running the application. The remote service should return the data in the following format.

  • Metrics Introduced creating and updating of metrics following open telemetry standards with support for the following metrics using Prometheus as an exporter and exposing these on a customizable port and /metrics endpoint :

    • Counter: A counter metric whose values are monotonically increasing and cannot decrease.
    • UpDownCounter: Ab UpDown Counter can have the metric value be increased or decreased from the current value by a certain value.
    • Histogram: A histogram samples observations (like request durations or response sizes) and counts them in configurable buckets. It also provides a sum of all observed values.
    • Gauge: A gauge is a metric that represents a single numerical value that can arbitrarily go up and down. There is a slight difference in Gauge and UpDown as in gauge the change is not dependent on the previous value of the metric.

Fixes

  • Tracing has been fixed where the traces were not in order and appeared to be in a non-hierarchal manner
  • Refactored the implementation and response for /.well-known/health
gofr - v0.1.0

Published by aryanmehrotra 9 months ago

What's Changed

πŸ”§ Features

πŸ”§ Enhancements

πŸ“¦ Dependency updates

New Contributors

Full Changelog: https://github.com/gofr-dev/gofr/compare/v0.0.1...v0.1.0

gofr - v0.0.1

Published by aryanmehrotra 10 months ago

v0.0.1

Dear GoFr Community,

We're thrilled to announce that GoFr is now an open-source project, marking a new chapter in its evolution. We extend our heartfelt gratitude to all past and present contributors who've been instrumental in GoFr's development.

As part of our security measures, we've removed the complete project history, ensuring its integrity moving forward.

By making GoFr open source, we aim to foster a collaborative environment for developers of all backgrounds to innovate and enhance the project.

We invite you to explore the newly open-sourced GoFr, fork it, and contribute to its development. Your expertise is invaluable, and we look forward to new ideas and collaborative efforts.

Feel free to reach out with questions, feedback, or suggestions. Thank you for your contributions and support.

Let's shape GoFr's next chapter together!

Release Notes

Features

  • REST, gRPC server and CMD creation
  • Support for SQL and NoSQL Data Stores with Auto-Initialization
    • SQL: MySQL
    • Search Engines: Apache Solr, Elastic Search
  • Support for file stores with remote file abstraction
  • Predefined logs with log levels for STDOUT and JSON
gofr - v1.1.0

Published by aryanmehrotra 10 months ago

Release Notes

What's Changed

πŸ”§ Features

πŸ› Fixes

πŸ“¦ Dependency updates

Full Changelog: https://github.com/gofr-dev/gofr/compare/v1.0.3...v1.1.0

gofr - v1.0.3

Published by aryanmehrotra 10 months ago

Release Notes

What's Changed

πŸ› Fixes

πŸ”§ Enhancement

πŸ“¦ Dependency updates

New Contributors

Full Changelog: https://github.com/gofr-dev/gofr/compare/v1.0.2...v1.0.3

gofr - v1.0.2

Published by vipul-rawat 11 months ago

Changelog

Enhancement:

  • Refactor SubscribeWithCommit method to consume all the messages from google PubSub (limited to one consumption previously) #92
  • Remove duplicate code of metrics initialization in pubsub package #89

Bug Fix:

  • Fix ctx.Bind issue when using html form to make request #91
gofr - v1.0.1

Published by Umang01-hash 11 months ago

v1.0.1

Changelog

ENHANCEMENTS

  • Increase overall code coverage to 92%

  • Fix Linters and go-vet warnings

  • Documentation and Badging Improvement

gofr - v1.0.0

Published by vipul-rawat 12 months ago

v1.0.0

Dear GoFr Community,

We're thrilled to announce that GoFr is now an open-source project, marking a new chapter in its evolution. We extend our heartfelt gratitude to all past and present contributors who've been instrumental in GoFr's development.

As part of our security measures, we've removed the complete project history, ensuring its integrity moving forward.

By making GoFr open source, we aim to foster a collaborative environment for developers of all backgrounds to innovate and enhance the project.

We invite you to explore the newly open-sourced GoFr, fork it, and contribute to its development. Your expertise is invaluable, and we look forward to new ideas and collaborative efforts.

Feel free to reach out with questions, feedback, or suggestions. Thank you for your contributions and support.

Let's shape GoFr's next chapter together!

Release Notes

Features

  • REST, gRPC server, Cron, and CMD creation
  • Support for SQL and NoSQL Data Stores with Auto-Initialization
    • SQL: MySQL, MS SQL, PostgreSQL
    • NoSQL: MongoDB, DynamoDB, Cassandra, Yugabyte, Redis
    • Pub/Sub: Kafka (with Avro), Azure Event Hubs, AWS EventBridge, Google Pub/Sub
    • Search Engines: Apache Solr, Elastic Search
  • Support for file stores with remote file abstraction
    • Remote File Stores: FTP, SFTP, AWS S3, GCP, Azure
  • Support for AWS SNS Notifier
  • Predefined logs with log levels for STDOUT and JSON
  • Database state management using Migrations
  • Inbuilt middleware for OAuth, Performance Monitoring (NewRelic), CORS, Tracing (Zipkin and GCP)
  • Support for runtime configuration overrides
  • Observability through traces, metrics, health checks, and heartbeats

Past Contributors:

  1. Vikash Kumar (vikash)
  2. Stella Rani (stella551)
  3. Aryan Mehrotra (mehrotra234)
  4. Umang Mundhra (umang01-hash)
  5. Vipul Rawat (vipul-rawat)
  6. Akshat Kumar Singhal (akshat-zopsmart)
  7. Abishek R V (abishek-r-v)
  8. Atul Gond (atulkumargond)
  9. Mahak Singhania (mahaksinghania-zs)
  10. Gurpreet Kumar (Gurpreet-zs)
  11. Tejaswi Sapala (Tejaswi-zs)
  12. Shubham Sirothiya (shubham-zs)
  13. Shashank Shekhar (ssshekhu53)
  14. Vatturi Naga Surya Prakash (suryap-zs)
  15. Subrahmanyam (subrahmanyam470)
Package Rankings
Top 6.34% on Proxy.golang.org