Dragon 🐲 🐲 🐲 is a lightweight high performance web framework with Go for the feature and comfortable develop.

Dragon

project new link

CI Status

Dragon 🐲 🐲 🐲 is a lightweight high performance web framework with Go for the feature and comfortable develop.

components

  1. httprouter. HttpRouter is a lightweight high performance HTTP request router.
  2. GORM. The fantastic ORM library for Golang, aims to be developer friendly.
  3. util. for golang common util.
  4. validator. google validator to validate the data.
  5. erro. erro pkg aims to wrap the error stack.

start dragon

dragon is DDD go framework. So you can hack with handler domain(entity,repository,service).

  1. config your yml, first config dev.yml config:

dir core/dragon/conf/config/xxx.yml, dev.yml/prod.yml/test.yml/..*** or you can set env DRAGON in docker

  1. build && run your app
cd dragon
go build main.go && mv main ./release/ && ./release/main

move your main(exec file) to release dir

  1. IDE config if you use goland ide, can set
Output directory: 
   
    /release
Working directory: 
    
     /release

    
   

Because default dragon exec (elf) file output in release dir, so the dirs are resolved according to release dir.

After that, feel free to run your app and start hacking :)

  1. deployment you can deploy your app in different environments, only change environment DRAGON, for example. that supports docker.
export DRAGON=dev
export DRAGON={env}

ab performance

cpu: 4 core, ram: 8 G
Server Software:        nginx/1.12.2
Server Hostname:        test.com
Server Port:            80

Document Path:          /
Document Length:        13 bytes

Concurrency Level:      100
Time taken for tests:   9.341 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      17700000 bytes
HTML transferred:       1300000 bytes
Requests per second:    73749.75 [#/sec] (mean)
Time per request:       9.341 [ms] (mean)
Time per request:       0.093 [ms] (mean, across all concurrent requests)
Transfer rate:          1850.51 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   1.2      1       9
Processing:     0    8   2.7      8      30
Waiting:        0    7   2.5      6      29
Total:          0    9   2.9      9      31

Percentage of the requests served within a certain time (ms)
  50%      9
  66%     10
  75%     11
  80%     11
  90%     13
  95%     14
  98%     16
  99%     18
 100%     31 (longest request)

app will read DRAGON env first to check prod,dev or test mode

build:

Just compile your src file and move bin file to directory dragon/release/

you might develop with fswatch for hot rebuilding. just create .fsw.json config:

{
 "desc": "Auto generated by fswatch [dragon]",
 "triggers": [
   {
     "name": "",
     "pattens": [
       "**/*.go"
     ],
     "env": {
       "DEBUG": "1"
     },
     "cmd": "go fmt dragon... && go build -o ./release/dragon && ./release/dragon",
     "shell": true,
     "delay": "100ms",
     "stop_timeout": "500ms",
     "signal": "KILL",
     "kill_signal": ""
   }
 ],
 "watch_paths": [
   "."
 ],
 "watch_depth": 10
}

just run cmd

$ fswatch
Similar Resources

letgo is an open-source, high-performance web framework for the Go programming language.

high-performance Lightweight web framework for the Go programming language. golang web framework,高可用golang web框架,go语言 web框架 ,go web

Sep 23, 2022

Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo Framework Flamingo is a web framework based on Go. It is designed to build pluggable and maintainable web projects. It is production ready, f

Jan 5, 2023

GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.

GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.

GoFrame English | 简体中文 GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang. If you're a

Jan 2, 2023

The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework.

jin About The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework. If thi

Jul 14, 2022

Simple and lightweight Go web framework inspired by koa

Simple and lightweight Go web framework inspired by koa

VOX A golang web framework for humans, inspired by Koa heavily. Getting started Installation Using the go get power: $ go get -u github.com/aisk/vox B

Dec 14, 2022

skr: The lightweight and powerful web framework using the new way for Go.Another go the way.

skr: The lightweight and powerful web framework using the new way for Go.Another go the way.

skr Overview Introduction Documents Features Install Quickstart Releases Todo Pull Request Issues Thanks Introduction The lightweight and powerful web

Jan 11, 2022

Package macaron is a high productive and modular web framework in Go.

Package macaron is a high productive and modular web framework in Go.

Macaron Package macaron is a high productive and modular web framework in Go. Getting Started The minimum requirement of Go is 1.6. To install Macaron

Jan 2, 2023

Lightweight web framework based on net/http.

Goweb Light weight web framework based on net/http. Includes routing middleware logging easy CORS (experimental) Goweb aims to rely only on the standa

Dec 21, 2022
Golanger Web Framework is a lightweight framework for writing web applications in Go.

/* Copyright 2013 Golanger.com. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except

Nov 14, 2022
burn is a web framework written in golang to develop backend / restapi

burn burn rest api framework About: burn is a web framework written in golang to

Dec 27, 2021
hiboot is a high performance web and cli application framework with dependency injection support

Hiboot - web/cli application framework About Hiboot is a cloud native web and cli application framework written in Go. Hiboot is not trying to reinven

Nov 20, 2022
beego is an open-source, high-performance web framework for the Go programming language.
beego is an open-source, high-performance web framework for the Go programming language.

Beego Beego is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services. It is inspired by To

Jan 1, 2023
High performance, minimalist Go web framework
High performance, minimalist Go web framework

Supported Go versions As of version 4.0.0, Echo is available as a Go module. Therefore a Go version capable of understanding /vN suffixed imports is r

Jan 2, 2023
Gearbox :gear: is a web framework written in Go with a focus on high performance
Gearbox :gear: is a web framework written in Go with a focus on high performance

gearbox ⚙️ is a web framework for building micro services written in Go with a focus on high performance. It's built on fasthttp which is up to 10x fa

Jan 3, 2023
Gearbox :gear: is a web framework written in Go with a focus on high performance
Gearbox :gear: is a web framework written in Go with a focus on high performance

gearbox ⚙️ is a web framework for building micro services written in Go with a focus on high performance. It's built on fasthttp which is up to 10x fa

Dec 29, 2022
High performance, simple Go web framework

Elton Elton的实现参考了koa以及echo,中间件的调整均为洋葱模型:请求由外至内,响应由内至外。主要特性如下: 处理函数(中间件)均以返回error的形式响应出错,方便使用统一的出错处理中间件将出错统一转换为对应的输出(JSON),并根据出错的类型等生成各类统计分析 成功响应数据直接赋值

Dec 17, 2022
beego is an open-source, high-performance web framework for the Go programming language.
beego is an open-source, high-performance web framework for the Go programming language.

Beego Beego is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services. It is inspired by To

Jan 8, 2023