You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: release version 4.1.0 with new bundle module and breaking changes
- Introduced `fastproto-bundle` module, aggregating core and processor for simplified dependency management.
- Removed `CodecProcessor` and `@GenerateCodec` annotation due to limited value.
- Eliminated runtime dynamic compilation, relying solely on compile-time code generation for lambda formulas.
- Restructured project into three modules: `fastproto-core`, `fastproto-processor`, and `fastproto`.
- Updated documentation to reflect changes and provide a migration guide for users upgrading from version 4.0.0.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,34 @@
2
2
3
3
All notable changes to this project will be documented in this file.
4
4
5
+
## [4.1.0] - 2026-01-27
6
+
### Added
7
+
-**fastproto bundle module**: New `fastproto-bundle` module (artifactId: `fastproto`) that aggregates core and processor, allowing users to include just one dependency for full functionality
8
+
- Integration tests for the bundle module to verify aggregated functionality
9
+
10
+
### Removed
11
+
- Removed `CodecProcessor` and `@GenerateCodec` annotation (limited practical value)
12
+
- Removed runtime dynamic compilation (`FormulaBuilder` and related classes); lambda formulas now rely entirely on compile-time code generation
13
+
14
+
### Changed
15
+
- Project restructured into three modules:
16
+
-`fastproto-core` - Core library
17
+
-`fastproto-processor` - Annotation processor
18
+
-`fastproto` (bundle) - Aggregator module, recommended for users
19
+
- Updated documentation to simplify dependency references
20
+
21
+
### Migration Guide
22
+
Users upgrading from 4.0.0 now only need one dependency:
23
+
24
+
**Maven:**
25
+
```xml
26
+
<dependency>
27
+
<groupId>org.indunet</groupId>
28
+
<artifactId>fastproto</artifactId>
29
+
<version>4.1.0</version>
30
+
</dependency>
31
+
```
32
+
5
33
## [4.0.0] - 2026-01-26
6
34
### Breaking Changes
7
35
-**Multi-module restructure**: Project split into two modules:
Copy file name to clipboardExpand all lines: docs/android.md
+23-11Lines changed: 23 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,46 +11,57 @@ This page summarizes how to use FastProto on Android.
11
11
12
12
## Lambda Formulas on Android
13
13
14
-
Since version 4.0.0, FastProto provides a separate annotation processor module (`fastproto-processor`) that generates formula classes at compile time. This makes `@DecodingFormula(lambda = "...")` and `@EncodingFormula(lambda = "...")` fully compatible with Android.
14
+
FastProto provides a separate annotation processor module (`fastproto-processor`) that generates formula classes at compile time. This makes `@DecodingFormula(lambda = "...")` and `@EncodingFormula(lambda = "...")` fully compatible with Android.
15
15
16
16
### Setup
17
17
18
+
Android projects need to configure the annotation processor separately (cannot use the `fastproto` bundle directly).
**Note:** For standard Maven/Gradle projects (non-Android), simply use the `fastproto` bundle which includes everything:
57
+
```xml
58
+
<dependency>
59
+
<groupId>org.indunet</groupId>
60
+
<artifactId>fastproto</artifactId>
61
+
<version>4.1.0</version>
62
+
</dependency>
63
+
```
64
+
54
65
### How It Works
55
66
56
67
The annotation processor scans your code at compile time and generates `Function` implementation classes for each lambda expression. These generated classes are included in your APK and used at runtime instead of dynamic compilation.
@@ -117,6 +128,7 @@ public class SensorData {
117
128
118
129
## FAQ
119
130
120
-
-**Can I use lambda formulas on Android?** Yes! Since 4.0.0, the `fastproto-processor` module generates formula classes at compile time, making lambda formulas fully compatible with Android.
131
+
-**Can I use lambda formulas on Android?** Yes! The `fastproto-processor` module generates formula classes at compile time, making lambda formulas fully compatible with Android.
132
+
-**Why can't I use the `fastproto` bundle on Android?** Android's build system requires explicit annotation processor configuration. The bundle works for standard Maven/Gradle projects but Android needs separate `fastproto-core` + `fastproto-processor` dependencies.
121
133
-**Do I need the annotation processor?** If you use `@DecodingFormula(lambda = "...")` or `@EncodingFormula(lambda = "...")`, yes. If you only use class-based formulas like `@DecodingFormula(MyFormula.class)`, the annotation processor is optional.
122
134
-**Do I need ProGuard rules?** If you rely on reflection/annotations, keep them as shown above. The generated formula classes should also be kept.
Copy file name to clipboardExpand all lines: docs/formulas.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Formulas let you convert between raw on‑wire values and engineering values. Yo
9
9
- Decode formula: raw -> target field type
10
10
- Encode formula: target field type -> raw
11
11
12
-
> **Note:** Lambda formulas require the `fastproto-processor` module for compile-time code generation. This ensures compatibility with Android and Java 11+ JRE environments. See[Android guide](android.md) for setup details.
12
+
> **Note:** Lambda formulas require annotation processing for compile-time code generation. The `fastproto` bundle includes this by default. For Android projects, see[Android guide](android.md) for setup details.
13
13
14
14
## Quick Steps
15
15
@@ -28,21 +28,22 @@ Formulas let you convert between raw on‑wire values and engineering values. Yo
0 commit comments