Hello everyone! From early fall to late winter, we’ve been working hard since the last release, and we’re bringing a loving Version of GoFrame V1.15. In addition, there are two things:

  • GoFramebeOSCOpen source China to select2020The annualTOP30Open source projects:www.oschina.net/question/29…Thank you for your recognition and support! At the same timeGoFrameIs alsoGitee GVP Most Valuable Project.
  • GoFrameOfficial website ship new revision, crowded need to experience three bells, made will do me, fall in love with the framework:goframe.org. Thank youAtlassianThe sponsorship of the full product line to provide legal authorization code!

Over the years, GoFrame has grown into an enterprise-level Golang basic development framework, providing project development specifications, development tool chains, complete basic modules, rich development documentation, high code quality, and an active community. To ensure the quality of the framework, we did a lot of unit testing for each component to make sure the logic was correct (2534 test units, 9097 test assertions), and maintained high quality documentation. So far, many large/small Internet companies have used GoFrame in their production environments.

Open source is not easy, with your understanding and support, full of happiness! Thanks to all the partners involved in the project development, love you! GF, YES!

GoFrame

GF(Go Frame) is a modular, high-performance, enterprise-level Go basic development framework. Achieved relatively perfect infrastructure construction as well as the development tool chain, provides the basis of common development module, such as: cache, logs, queue, an array, collection, container, timer, the command line, memory, lock, configuration management, resource management, data validation, timing, task, database ORM, TCP/UDP communication, process management/components, etc. Router, Cookie, Session, Middleware, service registry, template engine, hot restart, hot update, domain binding, TLS/HTTPS, Rewrite, etc.

If you’re new to the Go language, you can think of GoFrame as similar to Laravel in PHP, SpringBoot in Java, or Django in Python.

The characteristics of

  • Modular, loose coupling design;
  • Modules rich, out of the box;
  • Easy to use, easy to maintain;
  • High code quality, high unit test coverage;
  • Active community, Daniel humble low-key good temper;
  • Detailed development documents and examples;
  • Perfect local Chinese culture support;
  • Designed for team and enterprise use;

Change Logs

  1. ghttp
    • reconstructionHTTPClienttheGETRequest related methods that no longer act as parameters when passedBodyThe parameter is submitted, but is automatically constructed asQueryStringTo submit. To ensure compatibility with other servers.
    • The request objectRequestAdded the default setting feature:
    • increaseRequest.SetCtxMethod for custom context variables, commonly used in middleware/interceptors:
    • Added in template parsingRequestVariable used to get the request parameters submitted by the client, eitherQueryString/FormType parameter:
    • CookieFunction improvement, how to set up withSessionThe term of validity remains consistentCookie, please refer to:Cookie#Cookie session expires
    • Packet route registration was added. ProcedureALLMapMethod to batch register routes:Packet routing # Batch registration
    • newCRSFPlug-in documentation:
    • Other feature and detail improvements.
  2. gdb
    • increaseCtxMethod for asynchronyIOControl or pass custom context information, especially link tracking information:
    • increaseRawType, used for primitiveSQLStatement embedding, which will be submitted directly to the underlying database driver without any processing:Write save #RawSQL statement embed,Update removes #RawSQL statement embedding
    • To improve theFields/Fields/DataMethod to increase the inputmap/structAutomatic mapping detection and filtering of parameters and data table fields:
    • increaseInsertedAt/UpdatedAt/DeletedAtAdded the configuration of field namesTimeMaintainDisabledTo disable time padding and soft delete:
    • increaseCounterUpdate feature for adding/subtracting fields:Update Removed the #Counter update feature
    • To improve theORMTime zone processing, please refer to the section:
    • Other details about performance and ease of use.
    • Some details have been improved.
    • Refine unit testing.
  3. gerror
    1. increaseNewf/NewSkipfMethod to create an error object:
    2. Added support for error-error features:
    3. Refine unit testing.
  4. gvalid
    • increasephone-looseLoose mobile phone number verification rules, as long as meet13/14/15/16/17/18/19At the beginning of11Bits and numbers can be verified.
    • Return checksum error implementedgerrortheCurrent() errorInterface, so it can be usedgerror.CurrentMethod to get the current first checksum error:
    • Other details are improved.
    • Unit testing is perfect.
  5. gvar
    • increaseIsNil/IsEmptyMethod to determine whether the data isNil/empty.
    • increaseIsInt/IsUint/IsFloat/IsSlice/IsMap/IsStructCommon type determination methods.
    • Mark abandonedStructDeep/StructDeepMethod, directly useStruct/StructsCan.
    • Refine unit testing.
  6. ghtml
    • increaseSpecialCharsMapOrStructMethod for automatic conversionmap/structKey/propertyHTMLCode to preventXSS.
  7. gjson
    • Mark abandonedTo*Conversion methods, such as:ToStructReplace withStructMethods.
    • Some details have been improved.
    • Unit testing is perfect.
  8. internal
    • Improve and refineinternal/emptyNull-value determination of packets.
    • Due to performance issuesGithub.com/gogf/gf/iss…, temporarily deletedinternal/jsonPackage to third party packageGithub.com/json-iterat…Is restored to the standard libraryencoding/json.
    • To improve theinternal/structsPackage, as the package instructThe conversion feature is used frequently, so third-party packages are removedGithub.com/gqcn/struct…To simplify reflection processing logic, improve performance and ease of use, improve long-term maintenance.
    • internal/utilsPackage increaseRemoveSymbolsMethod to remove special letters from a string. To improve theEqualFoldWithoutCharsMethod, remove the string in the string of the regular filter function, greatly improve the performance of the method. Don’t underestimate these two small functions, a little bit of performance improvement can improve the performance of other modules in the framework that involve complex type conversions.internalPackages do not directly expose methods, but they affect the performance of some of the core components in the framework.
  9. gcfg
    • Improved singleton name configuration object acquisition, added automatic file type detection: Configuration Management – Singleton # automatic retrieval feature
    • Some other details have been improved.
  10. gcmd
    • Improved the method of obtaining default parameters:
    • increaseGetWithEnvMethod, when no specified argument exists on the command line, and from the environment variable:
  11. genv
    • increaseSetMapMethod to set environment variables in batches.
    • increaseGetWithCmdMethod, when no specified parameter exists in the environment variable, and obtain from the command line parameter:
  12. gfile
    • Mark abandonedReadByteLinesMethod, addReadLinesBytesMethods.
    • Adjust theReadLines/ReadLinesBytesMethod callback function definition, addederrorTo return.
  13. glog
    • Improved the rolling update function.
    • Some other details have been improved.
  14. gsession
    • increaseSetMapMethod to set key-value pair data in batches.
  15. gtimer
    • Constant name improvement, unified use of large hump.
  16. gview
    • Add built-in template functionsmapIs used to convert the parameter tomap[string]interface{}Type.
    • Add built-in template functionsmapsIs used to convert the parameter to[]map[string]interface{}Type.
    • Add built-in template functionsjsonIs used to convert the parameter toJSONThe value is a string.
    • Document Update:
    • Some other details have been improved.
  17. gconv
    • Performance improvements.
    • Feature improvements (a little too much detail, I really don’t want to write too much detail).
    • The code is more robust.
    • Unit testing is perfect.
  18. gutil
    • increaseKeysMethod used to getmap/structThe key/property name constructed as an array is returned.
    • increaseValuesMethod used to getmap/structThe key/attribute values of the.
    • increaseMapToSliceMethods, such as:{"K1": "v1", "K2": "v2"} => ["K1", "v1", "K2", "v2"]
    • increaseStructToSliceMethods, such as:{"K1": "v1", "K2": "v2"} => ["K1", "v1", "K2", "v2"]
    • increaseSliceToMapMethods, such as: ["K1", "v1", "K2", "v2"] => {"K1": "v1", "K2": "v2"}
    • Unit testing is perfect.
    • Other details are improved.

Bug Fix

  1. repairgarray/gmap/gtreetheCloneMethod Concurrency safety judgment problem.
  2. Fixed when setting expired methods, howevergpoolThere is no issue of automatically calling expiration methods when an element item expires.
  3. repairgfile.ReadLInes/ReadLineBytesRead duplication problem in large data volume.
  4. Some other bug fixes.