← 返回首页
GitHub - springwolf/springwolf-core: Automated documentation for event-driven applications built with Spring Boot · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

springwolf/springwolf-core

Go to file
Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,886 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View all files

Springwolf

Automated documentation for event-driven applications built with Spring Boot

We are on discord for any question, discussion, request etc. Join us at https://discord.gg/HZYqd5RPTd

Contents

About

This project is inspired by Springfox. It documents asynchronous APIs using the AsyncAPI specification.

springwolf-ui adds a web UI, much like that of Springfox, and allows easy publishing of auto-generated payload examples.

🪇 Demo & 📖 Documentation

Take a look at the Springwolf live demo and a generated AsyncAPI document.

springwolf.dev includes the quickstart guide and full documentation.

✨ Why You Should Use Springwolf

Springwolf exploits the fact that you already fully described your consumer endpoint (with listener annotations, such as @KafkaListener, @RabbitListener, @SqsListener, etc.) and generates the documentation based on this information.

Share API Schema Definition

The AsyncAPI conform documentation can be integrated into API hubs (like backstage) or be shared as a json/yaml file with others.

UI Based API Testing

In projects using asynchronous APIs, you may often find yourself needing to manually send a message to some topic, whether you are manually testing a new feature, debugging or trying to understand some flow.

Using the automatically generated example payload object as a suggestion, you can publish it to the correct channel with a single click.

🔬 Usage & Example

Protocols not supported natively can still be documented using @AsyncListener and @AsyncPublisher annotation. More details in the documentation.

Plugin Example project Current version SNAPSHOT version
AMQP AMQP Example
AWS SNS AWS SNS Example
AWS SQS AWS SQS Example
Cloud Stream Cloud Stream Example
JMS JMS Example
Kafka Kafka Example
STOMP (WebSocket) STOMP Example
Click to expand all artifacts, bindings and add-ons Artifact Current version SNAPSHOT version
AsyncAPI implementation
Core
UI
Bindings Current version SNAPSHOT version
AMQP Binding
AWS SNS Binding
AWS SQS Binding
Google PubSub Binding
JMS Binding
Kafka Binding
STOMP Binding
Add-on Current version SNAPSHOT version
Common Model Converter
Generic Binding
Json Schema
Kotlinx Serialization Model Converter

🚀 Who's Using Springwolf

Comment in this PR to add your company and spread the word

✏️ How To Participate

Check out our CONTRIBUTING.md guide.

Testing SNAPSHOT version

Sonatype snapshots

Add the following to the repositories closure in build.gradle:

repositories { // ... maven { url "https://central.sonatype.com/repository/maven-snapshots/" // build.gradle // url = uri("https://central.sonatype.com/repository/maven-snapshots/") // build.gradle.kts } }

Or add the repository to your pom.xml if you are using maven:

<repositories> <repository> <id>oss-sonatype</id> <name>oss-sonatype</name> <url>https://central.sonatype.com/repository/maven-snapshots/</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>

Local Snapshot Build

To test with local builds, run the publishToMavenLocal gradle task. The current version number is set in .env file.

Do not forget to add mavenLocal() to the repositories section.

👏 Contributors

Thanks goes to these wonderful people (emoji key):


Stav Shamir

💻

Timon Back

💻

sam0r040

💻

Carlos Tasada

💻

jrlambs

💻

DmitriButorchin

💻

Thomas Vahrst

💻

Yasen Pavlov

💻

Arthur Geweiler

💻

CS-BASF

💻

Jeroen van Wilgenburg

💻

Michael Strelchenko

💻

Olivier Gaudefroy

💻

Omerbea

💻

Pavel Bodiachevskii

💻

Sergio Roldán

💻

Stmated

💻

Themistoklis Pyrgiotis

💻

Zach Hubbs

💻

biergit

💻

kalarani

💻

Dipesh Singh

💻

Sakshi Jain

💻

Sheheryar Aamir

💻

jmwestbe

💻

pdalfarr

💻

Krzysztof Kwiecień

💻

Robert Henke

💻

Raphael De Lio

💻

Nikita Marunko

💻

Victor Levitskiy

💻

Christopher Cudennec

💻

dabeck81

💻

Jan Marten

💻

FabianBesner2020

💻

Norbert Wirges

💻

Tomas Tulka

💻

Elys Rivero

💻

AlexElin

💻

antoine VAISSET

💻

Karlender

💻

Steffen

💻

risingcult

💻

Hamzeh Adawi

💻

Haisia

💻

Emanuel Trandafir

💻

Revan Channa

💻

Skypha

💻

Adrien-dev25

💻

To add yourself as a contributor, install the all-contributors CLI and run:

  1. npx all-contributors-cli check
  2. npx all-contributors-cli add <username> code
  3. npx all-contributors-cli generate

Footer

© 2026 GitHub, Inc.