[Feature Request] Kotlin Support
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia leggendo l’implementazione Java esistente e l’interprete cel-java collegato, quindi confrontali con il riferimento Kotlin ergonomico in square/wire. Chiarisci con il team Android l’API Kotlin nativa, la compatibilità con Protocol Buffers e l’ambito della convalida a runtime; il lavoro è completato quando i progetti Kotlin possono usare costrutti Kotlin nativi per protovalidate senza dipendere dall’API Java.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Feature description:
Extend the capabilities of the protovalidate library to include support for performing runtime validation of Protocol Buffers messages in Kotlin projects, for example native Android mobile applications, using native Kotlin constructs instead of the available Java implementation.
Problem it solves or use case:
A Java implementation is available, but the current lack of native Kotlin support in the protovalidate library poses challenges for developers who work with Protocol Buffers and Kotlin--an example would be native Android clients. By introducing native Kotlin support, developers can easily leverage protovalidate with all the conventionally available language features Kotlin developers love--some examples being null safety and abstractions like data classes.
Proposed implementation or solution:
The proposed solution involves extending the existing protovalidate library to incorporate native Kotlin bindings and compatibility. This includes defining Kotlin structures or classes that mirror Protocol Buffers message structures, and implementing runtime validation functions that align with Kotlin's primary language features (eg. null-safety, data classes, etc.).
CEL Interpreter
Unlike the Swift support proposed in #71 , a Java CEL interpreter does exist that may make implementing this solution easier.
Contribution:
I am not a professional Kotlin developer myself (though I've written a little in the past), and am submitting this on behalf of my team, but am happy to contribute by facilitating communication with our Android team, who would be our primary use-case for this tool.
Examples or references:
An applicable example of an ergonomic protobuf codebase in Kotlin that might be used for reference is: square/wire
Additional context:
Related to #71 regarding expanded support for mobile use-cases.
- Lingua principale
- Go
- Stelle
- 1.6k
- Fork
- 67
- Merge medio
- 1g 10h
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bufbuild/protovalidate
-
[BUG] Hostname rule rejects a 253-character name with a trailing dot, which the docs say is validAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
bufbuild/protovalidate#512 · 2 commenti ·
-
Feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
bufbuild/protovalidate#490 · 1 commento ·
-
Feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
bufbuild/protovalidate#486 · 11 commenti ·
-
Feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
bufbuild/protovalidate#485 ·
-
Feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
bufbuild/protovalidate#483 · 1 reazione ·
Tutte le issue di bufbuild/protovalidate
Issue simili
-
Named Tuple element with a space in its name fails to parseForse già presa @spicysharkco l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ClickHouse/clickhouse-go#2073 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
ci: nothing regenerates the Go contract types, so a hand-edit to types.gen.go passesForse già presa @shaiknoorullah l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
shaiknoorullah/hg-mono#993 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
CarlosDanielDev/aiacc#78 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100