Skip to content

gpldirk/Gem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang programs from scratch

Web Framework - GemWeb

[Gem] is a gin-like framework

  • http.Handler Interface Basic Code
  • Design a Flexiable Context Code
  • Router with Trie-Tree Algorithm Code
  • Group Control Code
  • Middleware Mechanism Code
  • Embeded Template Support Code
  • Panic Recover & Make it Robust Code

Distributed Cache - GemCache

[GemCache] is a groupcache-like distributed cache

  • LRU (Least Recently Used) Caching Strategy Code
  • Single Machine Concurrent Cache Code
  • Launch a HTTP Server Code
  • Consistent Hash Algorithm Code
  • Communication between Distributed Nodes Code
  • Cache Breakdown & Single Flight | Code
  • Use Protobuf as RPC Data Exchange Type | Code

Object Relational Mapping - GemORM

[GemORM] is a gorm-like and xorm-like object relational mapping library

Xorm's desgin is easier to understand than gorm-v1, so the main designs references xorm and some detailed implementions references gorm-v1.

  • Database/sql Basic | Code
  • Object Schame Mapping | Code
  • Insert and Query | Code
  • Chain, Delete and Update | Code
  • Support Hooks | Code
  • Support Transaction | Code
  • Migrate Database | Code

RPC Framework - GemRPC

[GemRPC] is a net/rpc-like RPC framework

Based on golang standard library net/rpc, GeeRPC implements more features. eg, protocol exchange, service registration and discovery, load balance, etc.

  • Server Message Codec | Code
  • Concurrent Client | Code
  • Service Register | Code
  • Timeout Processing | Code
  • Support HTTP Protocol | Code
  • Load Balance | Code
  • Discovery and Registry | Code

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages