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.
-
Caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS -
traefik
The Cloud Native Application Proxy -
etcd
Distributed reliable key-value store for the most critical data of a distributed system -
nsq
A realtime distributed messaging platform -
consul
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure. -
Vault
A tool for secrets management, encryption as a service, and privileged access management -
apex
Build, deploy, and manage AWS Lambda functions with ease (with Go support!). -
RoadRunner
🤯 High-performance PHP application server, process manager written in Go and powered with plugins -
Ponzu
Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go. -
SFTPGo
Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob -
Easegress
A Cloud Native traffic orchestration system -
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native) -
Fider
Open platform to collect and prioritize feedback -
algernon
:tophat: Small self-contained pure-Go web server with Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support -
Flagr
Flagr is a feature flagging, A/B testing and dynamic configuration microservice -
discovery
A registry for resilient mid-tier load balancing and failover. -
flipt
An open source, self-hosted feature flag solution -
Key Transparency
A transparent and secure way to look up public keys. -
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator -
Rendora
dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites -
GeoDNS in Go
DNS server with per-client targeted responses -
jackal
💬 Instant messaging server for the Extensible Messaging and Presence Protocol (XMPP). -
Golang API Starter Kit
Go Server/API boilerplate using best practices DDD CQRS ES gRPC -
Sparta
go microservices, powered by AWS Lambda -
go-feature-flag
A simple and complete self hosted feature flag solution, without any complex backend system to install, all you need is a file as your backend. 🎛️ -
Euterpe
Self-hosted music streaming server 🎶 with RESTful API and Web interface. Think of it as your very own Spotify! ☁️🎧 -
Walrus
🔥 Fast, Secure and Reliable System Backup, Set up in Minutes. -
goproxy
🦁 goproxy is a proxy server which can forward http or https requests to remote servers./ goproxy 是一个反向代理服务器,支持转发 http/https 请求。 -
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. -
Aegis
Serverless Golang deploy tool and framework for AWS Lambda -
marathon-consul
Integrates Marathon apps with Consul service discovery. -
dummy
Run mock server based off an API contract with one command -
cortex-tenant
Prometheus remote write proxy that adds Cortex tenant ID based on metric labels -
go-proxy-cache
Simple Reverse Proxy with Caching, written in Go, using Redis. -
lets-proxy2
Reverse proxy with automatically obtains TLS certificates from Let's Encrypt -
lama.sh
Run "curl -L lama.sh | sh" to start a web server -
psql-streamer
Stream database events from PostgreSQL to Kafka -
simple-jwt-provider
Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. -
nginx-prometheus
Turn Nginx logs into Prometheus metrics -
autobd
autobd is an automated, networked and containerized backup solution -
protoxy
A proxy server than converts JSON request bodies to protocol buffers -
yakvs
A small, networked, in-memory key-value store. -
go-fitbit
Fitbit API for Go to fetch, add, update and delete data on Fitbit using REST API -
riemann-relay
Service for relaying Riemann events to Riemann/Carbon destinations
Access the most powerful time series database as a service
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