Roche is a Code Generator and Web Framework, makes web development super concise with Go, CleanArch

roche

It is still under development, so please do not use it. We plan to release v.1.0.0 in the summer.

roche is a web framework optimized for microservice architecture using go. It prioritizes schema-first and quick development over lightweight. It is currently in the development concept stage and should not be used in production.

It is inspired by Ruby on Rails, grapi and protoeasy. And roche relies on grapi heavily.

Roche is named after the Roche limit and Roche radius.

The Roche limit is the critical satellite orbital radius at which the satellite will break apart due to tidal destruction if the satellite is approximated to be a self-gravitating fluid, ignoring its material strength. The Roche radius is the size of the region where the mutual gravity of two celestial bodies orbiting around the central body exceeds the gravity of the central body.

In a microservices architecture, each service pulls together as if it has universal gravitation. However, if they are too close together (i.e., too dense), they will break, hence the name.

Getting Started

Framework

go get github.com/riita10069/roche

CLI tool

go get github.com/riita10069/roche/cmd/roche

Getting Started

roche init . To Initialize project like create-react-app

roche toml Generate roche.toml which is needed roche command.

roche g scaffold-service NAME Generate .proto and server

roche scaffold all NAME Generate CRUD template for NAME service

roche manifest app APPNAME Generate k8s manifest template, APPNAME is app name.

roche server Run api server

if you want to use roche server

Currently, this feature is not supported. Sorry.

func Run() error {
+     defer roche.Close()
+
      s := grapiserver.New(
+               rocheserver.WithDefaultLogger(),
-               grapiserver.WithDefaultLogger(),
                grapiserver.WithServers(
                // TODO: Add server implementations
  	),
        )
        return s.Serve()
}

core maintainers

Owner
Riita
Tokyo Tech 18-5
Riita
Similar Resources

Simple Janet web development platform in Go, à la PHP

Spinnerette Simple Janet web development platform in Go, à la PHP Building make This will handle pulling submodules, building Janet, and then building

Dec 3, 2022

⚡ Rux is an simple and fast web framework. support middleware, compatible http.Handler interface. 简单且快速的 Go web 框架,支持中间件,兼容 http.Handler 接口

Rux Simple and fast web framework for build golang HTTP applications. NOTICE: v1.3.x is not fully compatible with v1.2.x version Fast route match, sup

Dec 8, 2022

A powerful go web framework for highly scalable and resource efficient web application

webfr A powerful go web framework for highly scalable and resource efficient web application Installation: go get -u github.com/krishpranav/webfr Exa

Nov 28, 2021

A powerful go web framework for highly scalable and resource efficient web application

A powerful go web framework for highly scalable and resource efficient web application

Oct 3, 2022

A web app built using Go Buffalo web framework

Welcome to Buffalo Thank you for choosing Buffalo for your web development needs. Database Setup It looks like you chose to set up your application us

Feb 7, 2022

Boilerplate API template includes all the common packages and setup used for API development in this Company

Boilerplate API Boilerplate API template includes all the common packages and setup used for API development in this Company. Development Copy .env.ex

Feb 19, 2022

laravel for golang,goal,fullstack framework,api framework

laravel for golang,goal,fullstack framework,api framework

laravel for golang,goal,fullstack framework,api framework

Feb 24, 2022

The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | 谢谢 https://github.com/kataras/iris/issues/1329 |

The fastest HTTP/2 Go Web Framework. AWS Lambda, gRPC, MVC, Unique Router, Websockets, Sessions, Test suite, Dependency Injection and more. A true successor of expressjs and laravel | 谢谢 https://github.com/kataras/iris/issues/1329 |

News This is the under-development branch. Stay tuned for the upcoming release v12.2.0. Looking for a stable release? Head over to the v12.1.8 branch

Dec 28, 2022

hiboot is a high performance web and cli application framework with dependency injection support

Hiboot - web/cli application framework About Hiboot is a cloud native web and cli application framework written in Go. Hiboot is not trying to reinven

Nov 20, 2022
Comments
  • Domain objects are not created properly from proto file

    Domain objects are not created properly from proto file

    Describe the bug Running roche scaffold domain NAME after editing a Proto file creates a domain object with fields that are not the edited ones.

    for example user.proto

    message User {
      string id = 1;
      string name = 2;
    }
    

    but

    domain/entity/user.go

    type User struct {
    	UserId string
    	XXX_NoUnkeyedLiteral
    	XXX_unrecognized
    	XXX_sizecache int32
    }
    

    Expected behavior domain/entity/user.go

    type User struct {
    	Id string
    	name string
    }
    
  • Generate scaffold-service faild fail when there are no dependent libraries

    Generate scaffold-service faild fail when there are no dependent libraries

    Describe the bug When executing roche g scaffold-service NAME command, an error is displayed under the following conditions

    1. missing github.com/izumin5210/grapi/cmd/grapi-gen-scaffold-service
    2. missing github.com/golang/protobuf
    3. missing github.com/grpc-ecosystem/grpc-gateway
    4. missing github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway/[email protected]

    To Reproduce Steps to reproduce the behavior: execute roche g scaffold-service NAME

    Expected behavior After initialization, the dependent libraries are listed in go.mod and are ready for go mod download.

  • Adding Migration Tools

    Adding Migration Tools

    Is your feature request related to a problem? Please describe. I've only managed to generate the migration files, so I'll work on integrating the migration tools.

    Describe the solution you'd like Use the following tools https://github.com/golang-migrate/migrate

    I want to add docker-compose.yaml and makefile for the local environment.

  • To be implemented a FileSystem Abstraction System  github.com/spf13/afero

    To be implemented a FileSystem Abstraction System github.com/spf13/afero

    Currently, the default file system is used. It is not abstracted. As a Code Generator, it is a challenge to be able to test the entire system in an integrated manner.

    I want to implement the following good tools https://github.com/spf13/afero

Goal is a toolkit for high productivity web development in Go language in the spirit of Revel Framework that is built around the concept of code generation.

Goal Goal is a set of tools for high productivity web development in Go language. Goal, being mostly inspired by Revel Framework and its discussions,

Sep 27, 2021
go-zero is a web and rpc framework written in Go. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity.
go-zero is a web and rpc framework written in Go. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity.

go-zero English | 简体中文 0. what is go-zero go-zero is a web and rpc framework that with lots of engineering practices builtin. It’s born to ensure the

Jan 2, 2023
Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.
Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo Framework Flamingo is a web framework based on Go. It is designed to build pluggable and maintainable web projects. It is production ready, f

Jan 5, 2023
based on go lang build WEB development framework for go lang beginners .

based on go lang build WEB development framework for go lang beginners .

Oct 31, 2021
Golanger Web Framework is a lightweight framework for writing web applications in Go.

/* Copyright 2013 Golanger.com. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except

Nov 14, 2022
The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework.

jin About The jin is a simplified version of the gin web framework that can help you quickly understand the core principles of a web framework. If thi

Jul 14, 2022
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.

GoFrame English | 简体中文 GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang. If you're a

Jan 2, 2023
Hexya business application development framework

Hexya Hexya is an open source ERP and a business application development framework written in Go. This repository houses the business application deve

Jan 5, 2023
GoFarm is an Application Development Framework for especially Backend Developer with Golang

What is GoFarm GoFarm is an Application Development Framework for especially Backend Developer with Golang. Our goal is to develop easier, standardize

Dec 9, 2021
Rapid Web Development w/ Go

Buffalo A Go web development eco-system, designed to make your project easier. Buffalo helps you to generate a web project that already has everything

Jan 1, 2023