go.ice

module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2018 License: MIT

README

go.ice

Build Status codecov FOSSA Status

A server application toolkit with profiling in mind

Goals

  • integration with tracing and monitoring systems
  • profiling remote services as well as essential local operations
  • multiple transport support, HTTP, gRPC
  • write server implementation and client library at same time

Non Goals

  • a Rails like web framework

Road map

cli

  • wrapper for cobra
  • interactive, confirm, progress bar etc.
  • repl like, i.e. ayi -i this may requires significant change in how flags, config etc. are handled

RPC

  • generated server and client based on DSL like reproto
    • can also generate UI like swagger (btw: I used to like swagger)
    • might just write AST in Go, there are go frameworks doing similar i.e. goa
      • it generates js code as well
    • need to generate typescript code to work with Angular
  • might support raw tcp server (will be used heavily in xephon)

Database

  • adapter for different databases
    • a lot of database specific features can be found in mature web frameworks like Laravel
  • migration
    • may not be used production, but handy for iteration on small projects
  • cli for different database like usql
    • including Cassandra (mainly due to need in work)
  • Web UI like pgweb, might just use fe-template
  • SQL injection test

Tracing

Metrics

Profiling

License

FOSSA Status

Directories

Path Synopsis
cmd
ice
example
github/pkg/icehubpb
Package icehubpb is a generated protocol buffer package.
Package icehubpb is a generated protocol buffer package.
github/pkg/server
Package server contains http and grpc server
Package server contains http and grpc server
github/pkg/transport/grpc
Package grpc is a generated protocol buffer package.
Package grpc is a generated protocol buffer package.
ice
cache
Package cache defines interfaces for using Key-Value cache and Redis TODO: not implemented
Package cache defines interfaces for using Key-Value cache and Redis TODO: not implemented
cli
Package cli wraps cobra and provides util command for go.ice and gommon
Package cli wraps cobra and provides util command for go.ice and gommon
config
Package config defines common config struct to avoid cycle dependency
Package config defines common config struct to avoid cycle dependency
db
Package db defines interface for using RDBMS
Package db defines interface for using RDBMS
db/adapters/mysql
Package mysql wraps github.com/go-sql-driver/mysql
Package mysql wraps github.com/go-sql-driver/mysql
db/adapters/postgres
Package postgres wraps github.com/jackc/pgx
Package postgres wraps github.com/jackc/pgx
db/adapters/sqlite
Package sqlite wraps github.com/mattn/go-sqlite3
Package sqlite wraps github.com/mattn/go-sqlite3
db/migration
Package migration provides database schema migration
Package migration provides database schema migration
tracing
Package tracing wraps opentracing api
Package tracing wraps opentracing api
transport
Package transport wraps server creation for common protocols like http, grpc
Package transport wraps server creation for common protocols like http, grpc
transport/grpc
Package grpc wraps google.golang.org/grpc
Package grpc wraps google.golang.org/grpc
transport/http
Package http wraps net/http
Package http wraps net/http
playground

Jump to

Keyboard shortcuts

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