Twisk

screenshot of Twisk

Golang RPC starter kit with Twirp

Overview

Twisk is a starter kit for Twirp, a framework for service-to-service communication in Golang. It provides a structured packaging, logging, autogenerated swagger docs, and handlers for login/refresh and user CRUD. Twisk was created as a preparation for a Lightning Talk at Gophercon 2018, on building robust APIs with Twirp.

Features

  • Fully featured RESTful endpoints for authentication and CRUD operations on the user entity
  • Session handling using JWT claims
  • JWT Based authentication
  • Application configuration via config file (yaml)
  • RBAC (role-based access control)
  • Structured logging
  • Request marshaling and data validation
  • Autogenerated API Docs using SwaggerUI
  • Mocking using stdlib
  • Basic test coverage

Summary

Twisk is a starter kit for Twirp, a framework for service-to-service communication in Golang. It provides various features such as authentication endpoints, CRUD operations on users, session handling with JWT, and autogenerated API documentation using SwaggerUI. Twisk can serve as a starting point for building robust APIs with simplicity and minimalism.