MCPcopy
hub / github.com/go-goyave/goyave

github.com/go-goyave/goyave @v5.12.1 sqlite

repository ↗ · DeepWiki ↗ · release v5.12.1 ↗
1,580 symbols 6,895 edges 191 files 874 documented · 55%
README
<img src="https://github.com/go-goyave/goyave/raw/v5.12.1/resources/img/logo/goyave_banner.png#gh-light-mode-only" alt="Goyave Logo" width="550"/>
<img src="https://github.com/go-goyave/goyave/raw/v5.12.1/resources/img/logo/goyave_banner_dark.png#gh-dark-mode-only" alt="Goyave Logo" width="550"/>







<a href="https://github.com/go-goyave/goyave/releases"><img src="https://img.shields.io/github/v/release/go-goyave/goyave?include_prereleases" alt="Version"/></a>
<a href="https://github.com/go-goyave/goyave/actions"><img src="https://github.com/go-goyave/goyave/workflows/CI/badge.svg" alt="Build Status"/></a>
<a href="https://coveralls.io/github/go-goyave/goyave?branch=master"><img src="https://coveralls.io/repos/github/go-goyave/goyave/badge.svg" alt="Coverage Status"/></a>
<a href="https://github.com/avelino/awesome-go"><img src="https://awesome.re/mentioned-badge.svg" alt="Awesome"/></a>







<a href="https://github.com/go-goyave/goyave/blob/master/LICENSE"><img src="https://img.shields.io/dub/l/vibe-d.svg" alt="License"/></a>
<a href="https://pkg.go.dev/goyave.dev/goyave/v5"><img src="https://pkg.go.dev/badge/goyave.dev/goyave/v5.svg" alt="Go Reference"></a>
<a href="https://discord.gg/mfemDMc"><img src="https://img.shields.io/discord/744264895209537617?logo=discord" alt="Discord"/></a>

The enterprise REST API framework

Goyave an opinionated all-in-one Golang web framework focused on REST APIs, with emphasis on code reliability, maintainability and developer experience (DX).

In short, Goyave's goals are: - Catering to companies with enterprise-level clean architecture, for medium to large projects - Help developers focus on the business logic of their application instead of spending time on technical aspects - Provide an all-in-one package with no setup friction - Provide all the features a typical project needs without bloating or magic - Provide an optimal setup for the real-world - Ensure robust, reliable and resilient code - Stay open and hackable despite being opinionated - Make backend development easy and enjoyable - Keep a clear and extensive documentation so developers can always find the answer to their questions

Goyave's non-goals are: - Hyper-optimisation and performance - Small projects and prototypes - Providing control on low-level networking - Providing tools for front-end development

If you feel like the above description fits your needs, welcome! Feel free to read the full documentation on goyave.dev. This website contains the documentation and guides on how to use the framework to its fullest, so you can start creating value for your business.

You can also take a look at the example project.

Features

Routing, Controllers, Middleware, Request parsing, Advanced validation, Business transactions, Authentication, Configuration, Testing utilities, Database support and ORM, Localization, Advanced error handling, Structured logging, CORS, Support for file systems, Websockets, Dynamic filtering and pagination using query parameters, DTO conversion and model mapping, and the list goes on...

If you want to learn more, all features are documented on goyave.dev.

Contributing

Thank you for considering contributing to the Goyave framework! You can find the contribution guide in the documentation.

For financial support, you can support me on Github Sponsor: ❤ Sponsor me!

I'm very grateful to my patrons, sponsors and donators:

  • Ben Hyrman
  • Massimiliano Bertinetti
  • ethicnology
  • Yariya
  • sebastien-d-me
  • Nebojša Koturović

Contributors

A big "Thank you" to the Goyave contributors:

License

The Goyave framework is MIT Licensed. Copyright © 2024 Jérémy LAMBERT (SystemGlitch)

Extension points exported contracts — how you extend this code

Middleware (Interface)
Middleware are special handlers executed in a stack above the controller handler. They allow to inspect and filter reque [17 …
middleware.go
Service (Interface)
Service is the bridge between the REST layer of your application and the domain. It is responsible of the business logic [69 …
service.go
StatusHandler (Interface)
StatusHandler is a regular handler executed during the finalization step of the request's lifecycle if the response body [17 …
status_handler.go
PreWriter (Interface)
PreWriter is a writter that needs to alter the response headers or status before they are written. If implemented, PreWr [6 …
response.go
Encoder (Interface)
Encoder is an interface that wraps the methods returning the information necessary for the compress middleware to work. [6 …
middleware/compress/compress.go
Authenticator (Interface)
Authenticator is an object in charge of authenticating a client. The generic type should be a DTO and not be a pointer. [2 …
auth/authenticator.go
Session (Interface)
Session aims at facilitating business transactions while abstracting the underlying mechanism, be it a database transact [2 …
util/session/session.go
Composable (Interface)
Composable defines all the functions every component of the presentation layer (HTTP/REST) of your application must impl [1 …
component.go

Core symbols most depended-on inside this repo

Set
called by 339
config/config.go
Get
called by 215
router.go
String
called by 175
response.go
New
called by 151
util/errors/error.go
Required
called by 101
validation/required.go
LoadDefault
called by 98
config/config.go
Name
called by 89
validation/ruleset.go
Validate
called by 87
validation/ruleset.go

Shape

Method 773
Function 510
Struct 244
Interface 34
TypeAlias 12
FuncType 7

Languages

Go100%

Modules by API surface

validation/validator.go46 symbols
util/fsutil/fsutil_test.go44 symbols
router.go39 symbols
response.go38 symbols
validation/ruleset.go35 symbols
server.go35 symbols
config/config.go35 symbols
validation/int.go34 symbols
util/walk/walk.go30 symbols
util/walk/walk_test.go29 symbols
util/fsutil/fsutil.go27 symbols
validation/validator_test.go26 symbols

Dependencies from manifests, versioned

cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/authv0.20.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/bigqueryv1.77.0 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
filippo.io/edwards25519v1.2.0 · 1×
github.com/ClickHouse/ch-gov0.72.0 · 1×
github.com/Code-Hex/unisegv0.2.0 · 1×
github.com/andybalholm/brotliv1.2.1 · 1×
github.com/apache/arrow/go/v15v15.0.2 · 1×

For agents

$ claude mcp add goyave \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact