Simple CRUD App w/ Gorilla/Mux, MariaDB alternatives and similar packages
Based on the "Server Applications" category.
Alternatively, view Simple CRUD App w/ Gorilla/Mux, MariaDB alternatives based on common mentions on social networks and blogs.
-
etcd
A highly-available key value store for shared configuration and service discovery. -
Caddy
Caddy is an alternative, HTTP/2 web server that's easy to configure and use. -
nsq
A realtime distributed messaging platform -
consul
Consul is a tool for service discovery, monitoring and configuration. -
minio
Minio is a distributed object storage server. -
apex
Build, deploy, and manage AWS Lambda functions with ease (with Go support!). -
RoadRunner
High-performance PHP application server, load-balancer and process manager. -
Ponzu
CMS with automatic JSON API for "thick client" front-ends. Featuring auto HTTPS, HTTP/2 Server Push, and flexible CMS written in Go. -
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native) -
SFTPGo
Full featured and highly configurable SFTP server software. -
Fider
Fider is an open platform to collect and organize customer feedback. -
Key Transparency
A transparent and secure way to look up public keys. -
algernon
HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. -
discovery
A registry for resilient mid-tier load balancing and failover. -
Flagr
Flagr is an open-source feature flagging and A/B testing service. -
Rendora
dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites -
Trickster
HTTP reverse proxy cache and time series accelerator. -
GeoDNS in Go
DNS server with per-client targeted responses -
flipt
A self contained feature flag solution written in Go and Vue.js -
Sparta
A framework for Go-microservices powered by AWS Lambda -
Golang API Starter Kit
Go Server/API boilerplate using best practices DDD CQRS ES gRPC -
goproxy
🦁 goproxy is a proxy server which can forward http or https requests to remote servers./ goproxy 是一个反向代理服务器,支持转发 http/https 请求。 -
marathon-consul
Integrates Marathon apps with Consul service discovery. -
Eru
Eru, a simple, stateless, flexible, production-ready orchestrator designed to easily integrate into existing workflows. Can run any virtualization things in long or short time. -
lama.sh
Run "curl -L lama.sh | sh" to start a web server -
lets-proxy2
Reverse proxy for handle https with issue certificates in fly from lets-encrypt. -
psql-streamer
Stream database events from PostgreSQL to Kafka. -
autobd
autobd is an automated backup daemon. -
go-feature-flag
A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. -
yakvs
A small, networked, in-memory key-value store. -
nginx-prometheus
Nginx log parser and exporter to Prometheus. -
simple-jwt-provider
Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. -
protoxy
A proxy server that converts JSON request bodies to Protocol Buffers. -
cortex-tenant
Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels. -
go-proxy-cache
Simple Reverse Proxy with Caching, written in Go, using Redis. -
riemann-relay
Relay to load-balance Riemann events and/or convert them to Carbon.
Get performance insights in less than 4 minutes
Do you think we are missing an alternative of Simple CRUD App w/ Gorilla/Mux, MariaDB or a related project?
README
Simple CRUD App w/ Gorilla/Mux, MariaDB, Redis
NOTE
This project is not longer maintained. I'll make a new better project.
Features
Basic CRUD operations (Create-Read-Update-Delete).
Database Scheme
Data table:
create table products
(
id int(11) unsigned auto_increment primary key,
name tinytext null,
manufacturer tinytext null
);
You can generate data from http://filldb.info/.
Users table:
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` text NOT NULL,
`saltedpassword` text NOT NULL,
`salt` text NOT NULL,
PRIMARY KEY (`id`)
);
Password+Salt
is encrypted with bcrypt
with 10 rounds and stored in saltedpassword
column.
Caching
You can edit cache time from this line:
err = a.Cache.Set(r.RequestURI, content, 10*time.Minute).Err()
Example Requests
To get all entries from table:
curl --user user1:pass1 127.0.0.1:8000/api/products/list
To get an entry with id
(where id equals 10):
curl --user user1:pass1 127.0.0.1:8000/api/products/10
To create an entry:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"name": "ABC", "manufacturer": "ACME"}' \
--user user1:pass1 127.0.0.1:8000/api/products/new
To update an entry:
curl --request PUT \
--data '{"name": "ABC", "manufacturer": "ACME"}' \
--user user1:pass1 127.0.0.1:8000/api/products/11
To delete an entry:
curl --request DELETE --user user1:pass1 127.0.0.1:8000/api/products/10