gf

package module
v1.13.3-0...-5aac4af Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2020 License: MIT Imports: 0 Imported by: 0

README

GoFrame

Go Doc Build Status Go Report Code Coverage Production Ready License

English | 简体中文

GF(GoFrame) is a modular, powerful, high-performance and production-ready application development framework of golang. Providing a series of core components and dozens of practical modules, such as: cache, logging, containers, timer, resource, validator, database orm, etc. Supporting web server integrated with router, cookie, session, middleware, logger, configure, template, https, hooks, rewrites and many more features.

If you're a newbie to Go, you may consider GoFrame easy and great as Laravel in PHP, SpringBoot in Java or Django in Python.

Installation

go get -u -v github.com/jin502437344/gf

suggested using go.mod:

require github.com/jin502437344/gf latest

Limitation

golang version >= 1.11

Architecture

Packages

  1. Primary Package

    The gf repository maintains some basic and most commonly used packages, keeping it as lightweight and simple as possible.

  2. Community Package

    The community packages are contributed and maintained by community members, which are hosted in jin502437344 organization. Some of the community packages are separated from the gf repository, which are not of common usage or are with heavy dependencies.

Performance

Here's the most popular Golang frameworks and libraries performance testing result in WEB Server. Performance testing cases source codes are hosted at: https://github.com/jin502437344/gf-performance

Environment

OS   : Ubuntu 18.04 amd64
CPU  : AMD A8-6600K x 4
MEM  : 32GB
GO   : v1.13.4

Testing Tool

ab: Apache HTTP server benchmarking tool.

Command:

ab -t 10 -c 100 http://127.0.0.1:3000/hello
ab -t 10 -c 100 http://127.0.0.1:3000/query?id=10000
ab -t 10 -c 100 http://127.0.0.1:3000/json

The concurrency starts from 100 to 10000.

Run 5 times for each case of each project and pick up the best testing result.

1. Hello World

Throughputs Mean Latency P99 Latency

2. Json Response

Throughputs Mean Latency P99 Latency

Documentation

Discussion

It's recommended learning GoFrame through its awesome source codes and API reference.

License

GF is licensed under the MIT License, 100% free and open-source, forever.

Known Users

Logos are not authorized to be shown due to trademark copyrights.

Contributors

This project exists thanks to all the people who contribute. [Contributors].

Donators

We currently accept donation by Alipay/WechatPay, please note your github/gitee account in your payment bill. If you like GF, why not buy developer a cup of coffee?

Sponsors

We appreciate any kind of sponsorship for GF development. If you've got some interesting, please contact WeChat 389961817 / Email john@goframe.org.

Thanks

JetBrains

Documentation

Index

Constants

View Source
const AUTHORS = "john<john@goframe.org>"
View Source
const VERSION = "v1.13.2"

Variables

This section is empty.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
container
garray
Package garray provides most commonly used array containers which also support concurrent-safe/unsafe switch feature.
Package garray provides most commonly used array containers which also support concurrent-safe/unsafe switch feature.
glist
Package glist provides most commonly used doubly linked list container which also supports concurrent-safe/unsafe switch feature.
Package glist provides most commonly used doubly linked list container which also supports concurrent-safe/unsafe switch feature.
gmap
Package gmap provides most commonly used map container which also support concurrent-safe/unsafe switch feature.
Package gmap provides most commonly used map container which also support concurrent-safe/unsafe switch feature.
gpool
Package gpool provides object-reusable concurrent-safe pool.
Package gpool provides object-reusable concurrent-safe pool.
gqueue
Package gqueue provides dynamic/static concurrent-safe queue.
Package gqueue provides dynamic/static concurrent-safe queue.
gring
Package gring provides a concurrent-safe/unsafe ring(circular lists).
Package gring provides a concurrent-safe/unsafe ring(circular lists).
gset
Package gset provides kinds of concurrent-safe/unsafe sets.
Package gset provides kinds of concurrent-safe/unsafe sets.
gtree
Package gtree provides concurrent-safe/unsafe tree containers.
Package gtree provides concurrent-safe/unsafe tree containers.
gtype
Package gtype provides kinds of high performance and concurrent-safe basic variable types.
Package gtype provides kinds of high performance and concurrent-safe basic variable types.
gvar
Package gvar provides an universal variable type, like generics.
Package gvar provides an universal variable type, like generics.
crypto
gaes
Package gaes provides useful API for AES encryption/decryption algorithms.
Package gaes provides useful API for AES encryption/decryption algorithms.
gcrc32
Package gcrc32 provides useful API for CRC32 encryption algorithms.
Package gcrc32 provides useful API for CRC32 encryption algorithms.
gdes
Package gdes provides useful API for DES encryption/decryption algorithms.
Package gdes provides useful API for DES encryption/decryption algorithms.
gmd5
Package gmd5 provides useful API for MD5 encryption algorithms.
Package gmd5 provides useful API for MD5 encryption algorithms.
gsha1
Package gsha1 provides useful API for SHA1 encryption algorithms.
Package gsha1 provides useful API for SHA1 encryption algorithms.
database
gdb
Package gdb provides ORM features for popular relationship databases.
Package gdb provides ORM features for popular relationship databases.
gredis
Package gredis provides convenient client for redis server.
Package gredis provides convenient client for redis server.
debug
gdebug
Package gdebug contains facilities for programs to debug themselves while they are running.
Package gdebug contains facilities for programs to debug themselves while they are running.
encoding
gbase64
Package gbase64 provides useful API for BASE64 encoding/decoding algorithm.
Package gbase64 provides useful API for BASE64 encoding/decoding algorithm.
gbinary
Package gbinary provides useful API for handling binary/bytes data.
Package gbinary provides useful API for handling binary/bytes data.
gcharset
Package charset implements character-set conversion functionality.
Package charset implements character-set conversion functionality.
gcompress
Package gcompress provides kinds of compression algorithms for binary/bytes data.
Package gcompress provides kinds of compression algorithms for binary/bytes data.
ghash
Package ghash provides some classic hash functions(uint32/uint64) in go.
Package ghash provides some classic hash functions(uint32/uint64) in go.
ghtml
Package ghtml provides useful API for HTML content handling.
Package ghtml provides useful API for HTML content handling.
gini
Package gini provides accessing and converting for INI content.
Package gini provides accessing and converting for INI content.
gjson
Package gjson provides convenient API for JSON/XML/INI/YAML/TOML data handling.
Package gjson provides convenient API for JSON/XML/INI/YAML/TOML data handling.
gparser
Package gparser provides convenient API for accessing/converting variable and JSON/XML/YAML/TOML.
Package gparser provides convenient API for accessing/converting variable and JSON/XML/YAML/TOML.
gtoml
Package gtoml provides accessing and converting for TOML content.
Package gtoml provides accessing and converting for TOML content.
gurl
Package gurl provides useful API for URL handling.
Package gurl provides useful API for URL handling.
gxml
Package gxml provides accessing and converting for XML content.
Package gxml provides accessing and converting for XML content.
gyaml
Package gyaml provides accessing and converting for YAML content.
Package gyaml provides accessing and converting for YAML content.
errors
gerror
Package errors provides simple functions to manipulate errors.
Package errors provides simple functions to manipulate errors.
frame
g
gins
Package gins provides instances and core components management.
Package gins provides instances and core components management.
gmvc
Package gmvc provides basic object classes for MVC.
Package gmvc provides basic object classes for MVC.
i18n
gi18n
Package gi18n implements internationalization and localization.
Package gi18n implements internationalization and localization.
internal
cmdenv
Package cmdenv provides access to certain variable for both command options and environment.
Package cmdenv provides access to certain variable for both command options and environment.
empty
Package empty provides functions for checking empty variables.
Package empty provides functions for checking empty variables.
fileinfo
Package fileinfo provides virtual os.FileInfo for given information.
Package fileinfo provides virtual os.FileInfo for given information.
intlog
Package intlog provides internal logging for GoFrame development usage only.
Package intlog provides internal logging for GoFrame development usage only.
json
Package json provides json operations wrapping ignoring stdlib or third-party lib json.
Package json provides json operations wrapping ignoring stdlib or third-party lib json.
mutex
Package mutex provides switch of concurrent safe feature for sync.Mutex.
Package mutex provides switch of concurrent safe feature for sync.Mutex.
rwmutex
Package rwmutex provides switch of concurrent safety feature for sync.RWMutex.
Package rwmutex provides switch of concurrent safety feature for sync.RWMutex.
structs
Package structs provides functions for struct conversion.
Package structs provides functions for struct conversion.
utils
Package utils provides some utility functions for internal usage.
Package utils provides some utility functions for internal usage.
net
ghttp
Package ghttp provides powerful http server and simple client implements.
Package ghttp provides powerful http server and simple client implements.
gipv4
Package gipv4 provides useful API for IPv4 address handling.
Package gipv4 provides useful API for IPv4 address handling.
gipv6
Package gipv4 provides useful API for IPv6 address handling.
Package gipv4 provides useful API for IPv6 address handling.
gsmtp
Package gsmtp provides a simple SMTP client to access remote mail server.
Package gsmtp provides a simple SMTP client to access remote mail server.
gtcp
Package gtcp provides TCP server and client implementations.
Package gtcp provides TCP server and client implementations.
gudp
Package gtcp provides UDP server and client implementations.
Package gtcp provides UDP server and client implementations.
os
gbuild
Package gbuild manages the build-in variables from "gf build".
Package gbuild manages the build-in variables from "gf build".
gcache
Package gcache provides high performance and concurrent-safe in-memory cache for process.
Package gcache provides high performance and concurrent-safe in-memory cache for process.
gcfg
Package gcfg provides reading, caching and managing for configuration.
Package gcfg provides reading, caching and managing for configuration.
gcmd
Package gcmd provides console operations, like options/arguments reading and command running.
Package gcmd provides console operations, like options/arguments reading and command running.
gcron
Package gcron implements a cron pattern parser and job runner.
Package gcron implements a cron pattern parser and job runner.
genv
Package genv provides operations for environment variables of system.
Package genv provides operations for environment variables of system.
gfile
Package gfile provides easy-to-use operations for file system.
Package gfile provides easy-to-use operations for file system.
gfpool
Package gfpool provides io-reusable pool for file pointer.
Package gfpool provides io-reusable pool for file pointer.
gfsnotify
Package gfsnotify provides a platform-independent interface for file system notifications.
Package gfsnotify provides a platform-independent interface for file system notifications.
glog
Package glog implements powerful and easy-to-use levelled logging functionality.
Package glog implements powerful and easy-to-use levelled logging functionality.
gmlock
Package gmlock implements a concurrent-safe memory-based locker.
Package gmlock implements a concurrent-safe memory-based locker.
gmutex
Package gmutex implements graceful concurrent-safe mutex with more rich features.
Package gmutex implements graceful concurrent-safe mutex with more rich features.
gproc
Package gproc implements management and communication for processes.
Package gproc implements management and communication for processes.
gres
Package gres provides resource management and packing/unpacking feature between files and bytes.
Package gres provides resource management and packing/unpacking feature between files and bytes.
grpool
Package grpool implements a goroutine reusable pool.
Package grpool implements a goroutine reusable pool.
gsession
Package gsession implements manager and storage features for sessions.
Package gsession implements manager and storage features for sessions.
gspath
Package gspath implements file index and search for folders.
Package gspath implements file index and search for folders.
gtime
Package gtime provides functionality for measuring and displaying time.
Package gtime provides functionality for measuring and displaying time.
gtimer
Package gtimer implements Hierarchical Timing Wheel for interval/delayed jobs running and management.
Package gtimer implements Hierarchical Timing Wheel for interval/delayed jobs running and management.
gview
Package gview implements a template engine based on text/template.
Package gview implements a template engine based on text/template.
test
gtest
Package gtest provides convenient test utilities for unit testing.
Package gtest provides convenient test utilities for unit testing.
text
gregex
Package gregex provides high performance API for regular expression functionality.
Package gregex provides high performance API for regular expression functionality.
gstr
Package gstr provides functions for string handling.
Package gstr provides functions for string handling.
util
gconv
Package gconv implements powerful and convenient converting functionality for any types of variables.
Package gconv implements powerful and convenient converting functionality for any types of variables.
gmode
Package gmode provides release mode management for project.
Package gmode provides release mode management for project.
gpage
Package gpage provides useful paging functionality for web pages.
Package gpage provides useful paging functionality for web pages.
grand
Package grand provides high performance random bytes/number/string generation functionality.
Package grand provides high performance random bytes/number/string generation functionality.
guid
Package guid provides simple and high performance unique id generation functionality.
Package guid provides simple and high performance unique id generation functionality.
gutil
Package gutil provides utility functions.
Package gutil provides utility functions.
gvalid
Package gvalid implements powerful and useful data/form validation functionality.
Package gvalid implements powerful and useful data/form validation functionality.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL