From a1c351ab51420ac167fa63091d626fead0b84d88 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 21:32:01 +0000 Subject: [PATCH 1/2] docs: mention @SimpleBuilderFor and packageName in the comparison section Co-Authored-By: Andreas Igel --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f306af1..6ebbf2ff 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ Simple Builders generates fluent, type-safe builders for your **existing** class - **Immutables / Google AutoValue / FreeBuilder** — value-type generators: you declare an abstract class or interface and they generate an immutable implementation plus a builder. Great when you want to define new immutable value types; less suited when you just want a builder for classes or records you already have and don't want to restructure your model. - **RecordBuilder** — focused, excellent builders and `with` methods for records. Choose it if you use records exclusively. -Use Simple Builders when you want fluent, type-safe builders for the classes and records you already have, generated as plain readable source, with no bytecode manipulation and no IDE plugin — and no lock-in: because the builders are ordinary generated Java, you can drop the dependency at any time by copying the generated builder classes into your own sources, and they keep working. +Use Simple Builders when you want fluent, type-safe builders for the classes and records you already have, generated as plain readable source, with no bytecode manipulation and no IDE plugin — and no lock-in: because the builders are ordinary generated Java, you can drop the dependency at any time by copying the generated builder classes into your own sources, and they keep working. This also sets Simple Builders apart in a way none of the alternatives cover: [`@SimpleBuilderFor`](docs/CONFIGURATION.md#generating-builders-for-external-types) generates builders for types you cannot annotate — third-party classes, generated code, or a company's shared library — and [`packageName`](docs/CONFIGURATION.md#packagename) places the generated builders in a package of your choice, e.g. a central builders package in your own namespace. For performance benchmark results comparing Simple Builders, Simple Minimal Builder, RecordBuilder, and Lombok, see the [Performance Analysis Guide](performance-test/docs/PERFORMANCE_ANALYSIS.md#benchmark-results). From c79b47c3b71c8029ffb1b94d95064672eda54ad7 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 22:04:45 +0000 Subject: [PATCH 2/2] docs: shorten the comparison note to one line Co-Authored-By: Andreas Igel --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ebbf2ff..f16f92d2 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,9 @@ Simple Builders generates fluent, type-safe builders for your **existing** class - **Immutables / Google AutoValue / FreeBuilder** — value-type generators: you declare an abstract class or interface and they generate an immutable implementation plus a builder. Great when you want to define new immutable value types; less suited when you just want a builder for classes or records you already have and don't want to restructure your model. - **RecordBuilder** — focused, excellent builders and `with` methods for records. Choose it if you use records exclusively. -Use Simple Builders when you want fluent, type-safe builders for the classes and records you already have, generated as plain readable source, with no bytecode manipulation and no IDE plugin — and no lock-in: because the builders are ordinary generated Java, you can drop the dependency at any time by copying the generated builder classes into your own sources, and they keep working. This also sets Simple Builders apart in a way none of the alternatives cover: [`@SimpleBuilderFor`](docs/CONFIGURATION.md#generating-builders-for-external-types) generates builders for types you cannot annotate — third-party classes, generated code, or a company's shared library — and [`packageName`](docs/CONFIGURATION.md#packagename) places the generated builders in a package of your choice, e.g. a central builders package in your own namespace. +What none of them cover: [`@SimpleBuilderFor`](docs/CONFIGURATION.md#generating-builders-for-external-types) generates builders for types you cannot annotate — third-party classes, generated code, shared libraries — and [`packageName`](docs/CONFIGURATION.md#packagename) places the generated builders in a package of your choice. + +Use Simple Builders when you want fluent, type-safe builders for the classes and records you already have, generated as plain readable source, with no bytecode manipulation and no IDE plugin — and no lock-in: because the builders are ordinary generated Java, you can drop the dependency at any time by copying the generated builder classes into your own sources, and they keep working. For performance benchmark results comparing Simple Builders, Simple Minimal Builder, RecordBuilder, and Lombok, see the [Performance Analysis Guide](performance-test/docs/PERFORMANCE_ANALYSIS.md#benchmark-results).