This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new bcb05da0c Doc updates.
bcb05da0c is described below
commit bcb05da0c88afb3fdf66d05641314d1204b0d0ca
Author: James Bognar <[email protected]>
AuthorDate: Sun Sep 28 11:32:17 2025 -0400
Doc updates.
---
README.md | 1 +
.../topics/01.01.00.JuneauEcosystemOverview.md | 8 ++
.../docs/topics/01.10.00.FrameworkComparisons.md | 100 +++++++++++++++++++++
juneau-docs/sidebars.ts | 5 ++
4 files changed, 114 insertions(+)
diff --git a/README.md b/README.md
index 087585ea9..4d6d7d154 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,7 @@
### 📋 Documentation
* **[📚 Javadocs](https://juneau.staged.apache.org/site/apidocs/)** - Complete
API documentation
* **[📖 User
Guide](https://juneau.staged.apache.org/docs/topics/JuneauEcosystemOverview)**
- Comprehensive framework documentation
+* **[⚖️ Framework
Comparisons](https://juneau.staged.apache.org/docs/topics/FrameworkComparisons)**
- Compare Juneau with Jackson, Spring Boot, and JAX-RS
* **[🔧
Examples](https://juneau.staged.apache.org/docs/topics/JuneauExamplesCore)** -
Code examples and tutorials
*
[juneau-examples-core](https://juneau.staged.apache.org/docs/topics/JuneauExamplesCore)
- Core serialization examples
*
[juneau-examples-rest](https://juneau.staged.apache.org/docs/topics/JuneauExamplesRest)
- REST API examples
diff --git a/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md
b/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md
index 1e155509d..90a662c2b 100644
--- a/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md
+++ b/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md
@@ -22,6 +22,14 @@ Juneau excels in the following scenarios:
* **Fluent-style assertions and testing** - Write readable test assertions
with comprehensive validation capabilities
* **Content negotiation and HTTP/2 support** - Handle multiple content types
automatically with modern HTTP features
+#### When to Choose Juneau
+
+Not sure if Juneau is right for your project? Check out our detailed
[Framework Comparisons](/docs/topics/FrameworkComparisons) page to see how
Juneau compares to Jackson, Spring Boot, and JAX-RS.
+
+**Quick summary:** Choose Juneau when you need multi-format serialization,
REST APIs with automatic content negotiation, or want an integrated solution
with minimal dependencies.
+
+#### Ecosystem
+
The Juneau ecosystem consists of the following parts:
| Category | Maven Artifacts | Description | Prerequisites |
diff --git a/juneau-docs/docs/topics/01.10.00.FrameworkComparisons.md
b/juneau-docs/docs/topics/01.10.00.FrameworkComparisons.md
new file mode 100644
index 000000000..8bc7adaad
--- /dev/null
+++ b/juneau-docs/docs/topics/01.10.00.FrameworkComparisons.md
@@ -0,0 +1,100 @@
+---
+title: "Framework Comparisons"
+slug: FrameworkComparisons
+---
+
+# Framework Comparisons
+
+This page provides detailed comparisons between Juneau and popular
alternatives to help you choose the right tool for your needs.
+
+## Juneau vs Jackson
+
+| Feature | Juneau | Jackson | Winner |
+|---------|--------|---------|--------|
+| **Multi-format support** | JSON, XML, HTML, URL-Encoding, UON, OpenAPI,
PlainText, CSV, SOAP, MessagePack, RDF | Primarily JSON (with modules for XML,
YAML, etc.) | **Juneau** - Built-in multi-format support |
+| **Zero dependencies** | Core marshalling has zero external dependencies |
Requires additional modules for different formats | **Juneau** - Truly
zero-dependency |
+| **REST API integration** | Built-in REST server and client with automatic
content negotiation | Requires separate REST framework | **Juneau** -
Integrated solution |
+| **Self-documenting APIs** | Automatic Swagger/OpenAPI generation | Requires
additional tools | **Juneau** - Built-in documentation |
+| **Testing support** | MockRestClient for serverless testing | Requires
external testing frameworks | **Juneau** - Integrated testing |
+| **Configuration files** | Built-in INI-style config with POJO support | No
built-in configuration support | **Juneau** - Comprehensive config API |
+| **Performance** | ~20% faster than Jackson, optimized for memory efficiency
| Highly optimized for JSON | **Juneau** - Better performance in benchmarks |
+| **Ecosystem maturity** | Smaller community, newer project | Large community,
extensive ecosystem | **Jackson** - More mature ecosystem |
+| **Learning curve** | Steeper initial learning curve | Well-documented, many
tutorials | **Jackson** - Easier to get started |
+
+**Choose Juneau when:** You need multi-format serialization, REST APIs, or
want an integrated solution with minimal dependencies.
+
+**Choose Jackson when:** You only need JSON serialization, want maximum
performance, or need extensive community support.
+
+## Juneau REST APIs vs Spring Boot Web Controllers
+
+| Feature | Juneau REST APIs | Spring Boot Web Controllers | Winner |
+|---------|------------------|----------------------------|--------|
+| **REST API creation** | Annotation-based with automatic content negotiation
| Requires @RestController, @RequestMapping, etc. | **Juneau** - Simpler REST
API setup |
+| **Self-documenting APIs** | Automatic Swagger generation | Requires
SpringDoc or similar | **Juneau** - Built-in documentation |
+| **Content negotiation** | Automatic support for all formats (JSON, XML,
HTML, etc.) with single method | Must define separate methods for each content
type | **Juneau** - Single method handles all formats |
+| **Serialization** | Built-in multi-format support | Requires additional
configuration | **Juneau** - Integrated serialization |
+| **Testing** | MockRestClient for serverless testing | Requires
@SpringBootTest with embedded containers | **Juneau** - Faster testing |
+| **Dependencies** | Minimal additional dependencies | Uses Spring's
dependency injection | **Juneau** - Lighter footprint |
+| **Integration** | Works seamlessly with Spring Boot | Native Spring Boot
feature | **Spring Boot** - Native integration |
+| **Learning curve** | New annotations to learn | Standard Spring annotations
| **Spring Boot** - Familiar to Spring developers |
+| **Ecosystem** | Focused on REST and serialization | Full Spring ecosystem |
**Spring Boot** - Larger ecosystem |
+
+**Use Juneau REST APIs when:** You want automatic content negotiation,
built-in documentation, or need multi-format serialization in your Spring Boot
application.
+
+**Use Spring Boot Web Controllers when:** You prefer standard Spring patterns,
need complex request handling, or want to leverage existing Spring knowledge.
+
+**Note:** Juneau works perfectly with Spring Boot! You can use Juneau REST
APIs alongside Spring Boot's dependency injection, security, and other features.
+
+## Juneau vs JAX-RS
+
+| Feature | Juneau | JAX-RS | Winner |
+|---------|--------|--------|--------|
+| **API simplicity** | POJO-based with automatic serialization | Requires
explicit serialization handling | **Juneau** - Simpler API |
+| **Content negotiation** | Automatic based on Accept headers | Manual content
negotiation | **Juneau** - Automatic negotiation |
+| **Documentation** | Automatic Swagger generation | Requires additional tools
| **Juneau** - Built-in documentation |
+| **Testing** | MockRestClient for unit testing | Requires external testing
frameworks | **Juneau** - Integrated testing |
+| **Dependencies** | Minimal dependencies | Requires JAX-RS implementation |
**Juneau** - Fewer dependencies |
+| **Standards compliance** | Proprietary but simple | Industry standard |
**JAX-RS** - Standard compliance |
+| **Ecosystem** | Smaller ecosystem | Large ecosystem with many
implementations | **JAX-RS** - Larger ecosystem |
+| **Learning curve** | Steeper initial learning | Well-documented standard |
**JAX-RS** - Easier to learn |
+
+**Choose Juneau when:** You want simplicity, automatic features, and minimal
configuration.
+
+**Choose JAX-RS when:** You need standards compliance, extensive ecosystem, or
enterprise integration.
+
+## Performance Benchmarks
+
+### Serialization Performance
+Juneau has been shown to be approximately **20% faster** than Jackson in
performance tests, while maintaining excellent memory efficiency.
+
+### Memory Usage
+Juneau is optimized for memory efficiency, making it ideal for:
+- High-throughput applications
+- Memory-constrained environments
+- Microservices with limited resources
+
+### Startup Time
+Juneau's minimal dependencies and lightweight design result in faster
application startup times compared to heavier frameworks.
+
+## Migration Considerations
+
+### From Jackson to Juneau
+- **Easy migration** for basic serialization use cases
+- **Annotation mapping** available (see [Jackson
Comparison](/docs/topics/JacksonComparison))
+- **Performance benefits** with minimal code changes
+
+### From Spring Boot Controllers to Juneau REST APIs
+- **Gradual migration** possible - use alongside existing controllers
+- **Automatic content negotiation** reduces boilerplate code
+- **Built-in documentation** eliminates need for additional tools
+
+### From JAX-RS to Juneau
+- **Simplified API** with fewer annotations required
+- **Automatic serialization** reduces manual configuration
+- **Integrated testing** improves development workflow
+
+## Getting Started
+
+Ready to try Juneau? Check out our [Getting Started
Guide](/docs/topics/JuneauEcosystemOverview) or explore our
[examples](/docs/topics/JuneauExamplesCore).
+
+For detailed feature comparisons, see our [Jackson
Comparison](/docs/topics/JacksonComparison) page.
diff --git a/juneau-docs/sidebars.ts b/juneau-docs/sidebars.ts
index 451823130..30814411d 100644
--- a/juneau-docs/sidebars.ts
+++ b/juneau-docs/sidebars.ts
@@ -84,6 +84,11 @@ const sidebars: SidebarsConfig = {
id: 'topics/01.09.00.GeneralDesign',
label: '1.9. General Design',
},
+ {
+ type: 'doc',
+ id: 'topics/01.10.00.FrameworkComparisons',
+ label: '1.10. Framework Comparisons',
+ },
],
},
{