Convert Thread+Handler to lifecycle-aware coroutines, add GPL-3.0 license
This commit is contained in:
parent
4a9a15bca5
commit
bbf01946ac
11 changed files with 1034 additions and 100 deletions
62
esplibalternatief.md
Normal file
62
esplibalternatief.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# ESP32 Flash Library Alternatieven
|
||||
|
||||
## Huidige Situatie
|
||||
|
||||
We gebruiken `io.github.dkaukov:esp32-flash-lib:1.1.17` (Java, GPL-3.0). Deze GPL-3.0 licentie dwingt copyleft af: de hele app moet GPL-3.0-compatibel zijn. Dat blokkeert een MIT/Apache licentie voor de app.
|
||||
|
||||
## Alternatieven
|
||||
|
||||
| Library | Taal | Licentie | Sterren | Serial interface | Laatste update |
|
||||
|---|---|---|---|---|---|
|
||||
| **loucass003/EspflashKotlin** | Kotlin | **Apache 2.0** | 3 | JSerialComm (pluggable) | jan 2026 |
|
||||
| dkaukov/esp32-flash-lib | Java | GPL-3.0 | — | JSerialComm | — |
|
||||
| bdureau/ESPLoader | Java | GPL-3.0 | 22 | JSerialComm | jan 2026 |
|
||||
|
||||
### loucass003/EspflashKotlin (Apache 2.0)
|
||||
|
||||
- Repo: https://github.com/loucass003/EspflashKotlin
|
||||
- JitPack: `com.github.loucass003:EspflashKotlin:<tag>`
|
||||
- 3 stars, 1 fork, 28 commits
|
||||
- Pluggable serial interface: implementeer `FlasherSerialInterface` zelf
|
||||
- Ondersteunt `.addBin(bytes, address)` voor meerdere binaries
|
||||
- Progress listener via `FlashingProgressListener`
|
||||
- Geen Maven Central publicatie — via JitPack
|
||||
|
||||
**Voordelen:**
|
||||
- Apache 2.0 — app mag onder MIT/Apache/GPL naar keuze
|
||||
- Kotlin-native (past bij onze codebase)
|
||||
- Pluggable serial: we kunnen onze eigen USB serial implementatie aanhaken
|
||||
|
||||
**Nadelen:**
|
||||
- Erg klein project (3 stars, lage adoptie)
|
||||
- Geen Maven Central — JitPack dependency (minder betrouwbaar voor productie)
|
||||
- Minder getest dan esp32-flash-lib
|
||||
- Serial interface adapter moet worden geschreven voor onze USB/BLE implementatie
|
||||
- Geen stub loader (esptool stub) — alleen ROM bootloader protocol
|
||||
|
||||
### bdureau/ESPLoader (GPL-3.0)
|
||||
|
||||
- Repo: https://github.com/bdureau/ESPLoader
|
||||
- 22 stars
|
||||
- Partial Java port van esptool
|
||||
- Zelfde GPL-3.0 probleem als onze huidige lib — **geen licentiewinst**
|
||||
|
||||
## Migratie-inschatting (esp32-flash-lib → EspflashKotlin)
|
||||
|
||||
1. Dependency vervangen in `build.gradle`
|
||||
2. `EspFlasher.kt` herschrijven: `FlasherSerialInterface` implementeren voor onze USB serial context
|
||||
3. Firmware bins en addresses overnemen (zelfde ESP32 ROM bootloader protocol)
|
||||
4. JitPack repo toevoegen in `settings.gradle` of `build.gradle`
|
||||
5. Testen op device — het ROM bootloader protocol is hetzelfde, maar implementatie kan subtiele verschillen hebben
|
||||
|
||||
**Risico:** EspflashKotlin is minimaal getest. Het mist mogelijk edge cases die esp32-flash-lib wel afdekt (stub loader, error recovery, chip detectie).
|
||||
|
||||
## Conclusie
|
||||
|
||||
| Optie | Licentie-app | Migratie-effort | Risico |
|
||||
|---|---|---|---|
|
||||
| Blijf bij esp32-flash-lib, app wordt GPL-3.0 | GPL-3.0 | Geen | Geen |
|
||||
| Migreer naar EspflashKotlin | MIT/Apache mogelijk | Medium (2-3 dagen) | Hoog (kleine lib, weinig adoptie) |
|
||||
| Eigen implementatie (esptool protocol zelf porten) | Vrij te kiezen | Hoog (1-2 weken) | Medium (volledig eigen code) |
|
||||
|
||||
**Aanbeveling:** Blijf bij `esp32-flash-lib` en breng de app onder GPL-3.0 uit. Voor een open-source project op GitHub is GPL-3.0 geen praktische beperking — je moet alleen source beschikbaar houden, wat je al doet. De migratie naar EspflashKotlin brengt risico's met zich mee die niet opwegen tegen het licentievoordeel.
|
||||
Loading…
Reference in a new issue