Giter VIP home page Giter VIP logo

fs's Introduction

Overview

stars license go-version release Build codecov badge

Introduction

A modular and complete infrastructure framework based on Golang,create modern web applications and APIs

Use the most popular components available today and provide them with modular technology.

The framework perfectly supports DDD domain-driven tactical design, such as warehousing repository , application-layer transactions, domain events, application-layer dynamic WebAPI.

It has a mature version of .net core that has been in use for over 10 years and is great

Don't worry about the framework making you depend on too many packages, farseer-go's components are all separate packages and unused packages are not downloaded into your application

Each component is a separate package, so the version number is also released separately

Features

  • Unified configuration: all configurations are consolidated into . /farseer.yaml

  • Elegant: all modules follow the principle of developer experience first.

  • Modularity: provides a complete modular system that allows you to develop reusable application modules.

  • Domain-driven: helps you implement a hierarchical architecture based on DDD and build a maintainable code base.

  • link tracking (coming in the next version): if you use the framework Orm, Redis, Http, Grpc, ES, MQ, EventBus, Task, FSS, will implicitly implement link tracking for you and provide API request logs, slow queries.

Combined with FOPS project (automatic build, link tracing console, K8S cluster log collection) support code non-intrusive full link real-time monitoring.

Components

Package Name Description
fs Basic Core Package go-versionreleaseBuildcodecovbadge
collections Data Collection go-versionreleaseBuildcodecovbadge
webapi web api go-versionreleaseBuildcodecovbadge
async Async Programming go-versionreleaseBuildcodecovbadge
mapper Object Conversion go-versionreleaseBuildcodecovbadge
cacheMemory Local Cache go-versionreleaseBuildcodecovbadge
redis client go-versionreleaseBuildcodecovbadge
data DataBase ORM go-versionreleaseBuildcodecovbadge
elasticSearch client go-versionreleaseBuildcodecovbadge
eventBus eventBus go-versionreleaseBuildcodecovbadge
queue Local Queue go-versionreleaseBuildcodecovbadge
tasks Local tasks go-versionreleaseBuildcodecovbadge
fss client go-versionreleaseBuildcodecovbadge
utils utils go-versionreleaseBuildcodecovbadge
linkTrack linkTrack Coming soon)
rabbit client Coming soon)
redisStream redis mq Coming soon)

Quick Start

main.go

package main
import "github.com/farseer-go/fs"

func main() {
  fs.Initialize[StartupModule]("your project Name")
}

In the first line of the main function, execute fs.Initialize to start initializing the framework

After running the console prints the loading message.

2023-01-05 16:15:00 AppName:  demo
2023-01-05 16:15:00 AppID:    199530571963039744
2023-01-05 16:15:00 AppIP:    192.168.3.55
2023-01-05 16:15:00 HostName: stedenMacBook-Pro.local
2023-01-05 16:15:00 HostTime: 2023-01-05 16:15:00
2023-01-05 16:15:00 PID:      22131

2023-01-05 16:15:00 ---------------------------------------
2023-01-05 16:15:00 Loading Module...
2023-01-05 16:15:00 Loading Module:cache.Module
2023-01-05 16:15:00 Loading Module:cacheMemory.Module
2023-01-05 16:15:00 Loading Module:eventBus.Module
2023-01-05 16:15:00 Loading Module:queue.Module
2023-01-05 16:15:00 Loading Module:infrastructure.Module
2023-01-05 16:15:00 Loading Module:webapi.Module
2023-01-05 16:15:00 Loading Module:domain.Module
2023-01-05 16:15:00 Loading Module:application.Module
2023-01-05 16:15:00 Loading Module:interfaces.Module
2023-01-05 16:15:00 Loading Module:main.StartupModule
2023-01-05 16:15:00 Loaded, 11 modules in total
2023-01-05 16:15:00 ---------------------------------------
2023-01-05 16:15:00 Elapsed time:0 ms modules.FarseerKernelModule.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms cache.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms cacheMemory.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms eventBus.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms queue.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms infrastructure.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms webapi.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms domain.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms application.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms interfaces.Module.PreInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms main.StartupModule.PreInitialize()
2023-01-05 16:15:00 ---------------------------------------
2023-01-05 16:15:00 Elapsed time:0 ms modules.FarseerKernelModule.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms cache.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms cacheMemory.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms eventBus.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms queue.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms infrastructure.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms webapi.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms domain.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms application.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms interfaces.Module.Initialize()
2023-01-05 16:15:00 Elapsed time:0 ms main.StartupModule.Initialize()
2023-01-05 16:15:00 ---------------------------------------
2023-01-05 16:15:00 Elapsed time:0 ms modules.FarseerKernelModule.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms cache.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms cacheMemory.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms eventBus.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms queue.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms infrastructure.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms webapi.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms domain.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms application.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms interfaces.Module.PostInitialize()
2023-01-05 16:15:00 Elapsed time:0 ms main.StartupModule.PostInitialize()
2023-01-05 16:15:00 ---------------------------------------
2023-01-05 16:15:00 Initialization completed, total time:0 ms 
2023-01-05 16:15:00 [Info] Web service is started:http://localhost:8888/

Stargazers

Stargazers repo roster for @farseer-go/fs

Forks

Forks repo roster for @farseer-go/fs

fs's People

Contributors

steden avatar gelin9527 avatar nicholegit avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.