Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kickstart a project kotlin-server #24

Open
jmfayard opened this issue Oct 2, 2020 · 7 comments
Open

Kickstart a project kotlin-server #24

jmfayard opened this issue Oct 2, 2020 · 7 comments
Assignees
Labels
enhancement New feature or request

Comments

@jmfayard
Copy link
Collaborator

jmfayard commented Oct 2, 2020

Currently all samples are inside kotlin-jvm and are self-contained in their own package, with each having its main() function.

But what about servers?

Ideally I would like to have a new directory/project kotlin-server that will contain an implementation of the same simple server spec in ktor but also later spring boot, http4k, javalin or whatever people want to contribute.

For a real project, one would use a multimodule Gradle build for that, but for pedagogy simplicity is key so if that's possible to put all implementations in a single module, that's better!

@jmfayard jmfayard added the enhancement New feature or request label Oct 2, 2020
@jaguililla
Copy link

Would it be safe to use a single Gradle project for many different web servers? Couldn't that create dependency problems (different versions)?

@LouisCAD
Copy link
Owner

LouisCAD commented Oct 8, 2020

@jaguililla Do you have any example where a dependency upgrade is not possible for a Kotlin/JVM server framework?

@jaguililla
Copy link

No, but it would be hard to tell without knowing the list of examples in advance... And being it open, it could eventually generate a problem with conflicting dependencies.

And also, there are products sensible to the classpath (Spring).

Wouldn't you consider creating a multimodule Gradle project? It wouldn't be much work and it would be safer.

@LouisCAD
Copy link
Owner

LouisCAD commented Oct 9, 2020

We are considering making a multi-modules project, yes.
We need to get it right to allow easy code sharing, while keeping it simple for contributors.
I think we'll make one shared module, plus one module per framework as an entry point.

@jaguililla
Copy link

If you share more details, I could be interested in doing it. What should a typical sample implement?

Or you could take the TechEmpower Benchmark implementations as valid examples :) https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Kotlin

@jmfayard jmfayard self-assigned this Nov 27, 2020
@jmfayard
Copy link
Collaborator Author

I am giving a try, will start with a Spring Boot module

@jmfayard
Copy link
Collaborator Author

@jaguililla @fultonbrown @NikkyAI
Here is my draft server implementation done with spring boot
#93

If you have any feedback, you are welcome.

Everyone could then reimplement it with $FAVORITE_FRAMEWORK
like Spring-Fu Ktor Micronaut Quarkus Vertx Http4k Javalin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants