À propos du projet
Kratos est un framework Go léger destiné à la création de microservices cloud-native. Il expose des API petites et explicites couvrant le transport, le middleware, le registre, la configuration, la journalisation, l'encodage et la génération de code, afin que le code applicatif puisse se concentrer sur la logique métier.
Capacités clés décrites dans le README :
- Développement API-first avec Protobuf, avec génération de code HTTP et gRPC.
- Une couche de transport unifiée qui gère à la fois les serveurs HTTP et gRPC.
- Middleware composable pour des préoccupations telles que la récupération, la journalisation, la validation, le tracing, les métriques et l'authentification.
- Composants de registre, de configuration et d'encodage enfichables, permettant de remplacer différents backends.
- Journalisation basée sur la bibliothèque standard log/slog, avec des extensions OpenTelemetry disponibles via les paquets contrib.
- Gestion cohérente des métadonnées, des erreurs, de la validation, d'OpenAPI et des workflows de génération de code.
- Un écosystème contrib pour des intégrations optionnelles incluant registres, magasins de configuration, middleware, encodages et observabilité.
Pour démarrer, Go 1.25 ou ultérieur, protoc et protoc-gen-go sont requis. La CLI s'installe avec go install, après quoi kratos new génère un service, kratos proto add/client/server génère les artefacts Protobuf, et kratos run démarre le service. Un exemple minimal montre la création de serveurs HTTP et gRPC, leur enregistrement avec kratos.New, et l'appel à app.Run.
Le projet indique que la v3 réduit les dépendances du cœur et rend explicite un comportement auparavant implicite, et renvoie les lecteurs vers un guide de migration v2-vers-v3 avant de mettre à niveau des services en production. D'autres ressources incluent la documentation officielle, un dépôt d'exemples, une disposition de projet recommandée et un guide de contribution communautaire. Les tâches de développement s'exécutent via make test et make lint. Les canaux communautaires incluent la documentation, un groupe WeChat, Discord et GitHub Discussions. Les problèmes de sécurité sont traités en privé via une adresse e-mail dédiée. Le projet est sous licence MIT et reconnaît l'influence de go-kit, go-micro, go-cloud, go-zero et beego.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.