hord
automated-garden
hord | automated-garden | |
---|---|---|
2 | 2 | |
15 | 19 | |
- | - | |
8.1 | 9.2 | |
13 days ago | 6 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hord
-
The Easiest Way to Create a REST API With Go
In an effort to provide actual persistent storage out of the box, the babyapi/storage package uses madflojo/hord to support a variety of key-value store backends. Additionally, babyapi/storage provides helper functions for initializing the hord client for Redis or file-based storage.
-
How I Learned Generics in Go
Determined to implement generics and delete some lines of code, I turned my sights to the storage layer of my application. I designed my storage around key-value pairs since I started by storing resources in YAML files. This eventually evolved to use madflojo/hord to interact with key-value data stores like Redis. The function to read a *pkg.Garden from storage looks like this:
automated-garden
-
Let's Talk About REST...
I created babyapi with the goal of providing the simplest path to a full REST API. It started as a humble package that used generics to reduce code duplication in my automated-garden API. After breaking it out into its own repository, I added the optional HATEOAS extension which sets up automatic hypermedia linking. Now you can easily create a REST API which achieves all levels in the Richardson maturity model using babyapi.
-
How I Learned Generics in Go
When thinking about duplicated code in my automated-garden project, the first thing that comes to mind is all of my API handlers. The server side of this application implements a few straightforward CRUD APIs following RESTful principles. Each resource type implements handlers for the different HTTP verbs and mostly interacts with the storage layer. I created a very simple setup for the API handlers following this formula:
What are some alternatives?
cachego - Golang Cache component - Multiple drivers
render - easily manage HTTP request / response payloads of Go HTTP services
godis - redis client implement by golang, inspired by jedis.
ha-mqtt-iot - A simple configurable MQTT client that allows actions to be taken or values be reported from a PC
redigo - Go client for Redis
gobot - Golang framework for robotics, drones, and the Internet of Things (IoT)
Redis - Redis Go client
axis-aws-rekognition - This project is a POC of using AWS Rekognition service over persistent and secure MQTT using client certificate with axis cameras (Requires firmware version 10+). Secure MQTT is used instead of HTTPS to get less overhead with connection setup
go-random-chat - Modern real-time chat in scalable architecture.
babyapi - A Go CRUD API framework so simple a baby could use it.
migrate - Database migrations. CLI and Golang library.