jhipster / generator-jhipster-quarkus Goto Github PK
View Code? Open in Web Editor NEWQuarkus blueprint for JHipster
Home Page: https://www.jhipster.tech/blueprints/quarkus/
License: Apache License 2.0
Quarkus blueprint for JHipster
Home Page: https://www.jhipster.tech/blueprints/quarkus/
License: Apache License 2.0
Is your feature request related to a problem? Please describe.
The generator provide the standard Quarkus Dockerfile and also generate the classic JHipster docker files.
Describe the solution you'd like
The blueprint should merge and clean Docker files tailored for Quarkus.
Describe alternatives you've considered
N/A
Additional context
N/A
JHipster Spring proposes to use a dedicated caching solution (hazelcast, ehcache, etc).
As for now, Quarkus only supports infinispan.
The objective is to permit the user to choose between the default Hibernate 2nd level caching or infinispan.
Is your feature request related to a problem? Please describe.
See quarkusio/quarkus#6492
Describe the solution you'd like
Waiting for an answer from Quarkus
Describe alternatives you've considered
Additional context
Describe the bug
Failed to update entity if it have empty value
To Reproduce
entity Owner{
user String unique required minlength(3) maxlength(128)
}
entity Person {
name String required
lastName String required
middleName String required
birthDate LocalDate required
gender Gender required
role String
}
relationship ManyToOne{
Person{owner(user) required} to Owner
Person{ownerLink(user)} to Owner
}
Expected behavior
Entity updated
Is your feature request related to a problem? Please describe.
Sorting not working
Describe the solution you'd like
Sorting is working
Quarkus Hibernate Panache proposes the active record and repository patterns.
Currently only the repository pattern is implemented (because it was the easiest one to duplicate from a JHipster Spring).
The objective is to proposes a new prompt to the user to choose between the 2 patterns and update the templates to generate active records.
JHipster Spring proposes an Audit configuration and UI which is pretty neat.
As for now, Quarkus does not have any alternative so let's be creative π
Describe the bug
When doing a native build the front end should be available as part of the build. Currently reported that the FE isn't available in a native prod build. From discussion here (#71)
To Reproduce
Generate project, add entities, run native prod build, start it up.
Expected behavior
JHipster frontend is available in the same fashion as the SpringBoot builds.
Screenshots
Desktop (please complete the following information):
Additional context
See also: #71
Describe the bug
The GitHub repository should be generator-jhipster-quarkus instead of jhipster-quarkus.
Additional context
It could help the generator to be correctly indexed on npm repository and on JHipster website (all generators that stat by generator-jhipster-XXX).
Is your feature request related to a problem? Please describe.
As for now, the frontend application is generated in src/main/resources/webapp
but not take into account by Quarkus.
Describe the solution you'd like
Update the maven pom.xml to trigger the client app building (with prod profile) when running mvn package
.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
Allow users of the blueprint to select embedded h2 as a database
Example and instructions
https://quarkus.io/guides/datasource
Describe the solution you'd like
Embedded h2 database works as a datasource and is correctly configured in your quarkus app after running the blueprint
Describe alternatives you've considered
N/A
Additional context
https://quarkus.io/guides/datasource
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
Blueprint should be on the latest
Describe the solution you'd like
Blueprint generates a 1.7 quarkus project
Describe alternatives you've considered
N/A
Additional context
https://github.com/quarkusio/quarkus/releases
Is your feature request related to a problem? Please describe.
Please add OAuth 2.0 / OIDC support. This should be similar to our Spring Boot support in that it does login (on a monolith and gateway) and allows it to act as a resource server as well (for React Native and Ionic apps).
Describe the solution you'd like
I'd like to be able to choose OAuth 2.0 / OIDC for authentication, create some entities, start the app, and run npm run e2e
to see all the tests pass.
This is the JDL I used to test Micronaut:
application {
config {
baseName blog,
applicationType monolith,
packageName com.jhipster.demo.blog,
prodDatabaseType mysql,
authenticationType oauth2,
cacheProvider hazelcast,
buildTool maven,
useSass true,
testFrameworks [protractor]
}
entities *
}
entity Blog {
name String required minlength(3)
handle String required minlength(2)
}
entity Post {
title String required
content TextBlob required
date Instant required
}
entity Tag {
name String required minlength(2)
}
relationship ManyToOne {
Blog{user(login)} to User
Post{blog(name)} to Blog
}
relationship ManyToMany {
Post{tag(name)} to Tag{entry}
}
paginate Post, Tag with infinite-scroll
Is your feature request related to a problem? Please describe.
As for now, when a user an anonymous user hits the application homepage it generates a NPE and an ugly stack trace in the appplication logs.
https://github.com/jhipster/jhipster-quarkus/blob/master/generators/server/templates/quarkus/src/main/java/package/web/rest/AccountResource.java.ejs#L147
/api/account
is not restricted, a not authenticated users can request this endpoint. The issue is that the SecurityContext
does not have any User principal loaded since the user is not authenticated thus invoking getName
on a null user principal throws an NPE.
Resteasy does not know how to to serialize this NPE and crash with a stack trace printed in the logs.
Describe the solution you'd like
Since the /api/account
endpoint will be hitted by anonynous user by construction (this is the way the SPA works, the stack trace should be properly managed to prevent to scare the developer
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
Enable microprofile health checking by default in quarkus generated apps
https://quarkus.io/guides/microprofile-health
Some design is also required to support the creation of a page dedicated to integrating the checks.
Describe the solution you'd like
JHipster health checks are supported in quarkus or a health check solution is included in the generated app
Describe alternatives you've considered
N.A
Additional context
Simply integrate the Quarkus built-in OpenAPI/SwaggerUI into JHipster web pages.
Is your feature request related to a problem? Please describe.
By default JHipster supports elastic search integration as an option. Quarkus also supports elastic search. Allow the user to pick and configure elastic search.
https://quarkus.io/guides/elasticsearch
Describe the solution you'd like
Support elastic search
Describe alternatives you've considered
N/A
Additional context
https://quarkus.io/guides/elasticsearch
Jhipster has an open endpoint to authenticate the user. The user provides credentials then thanks to the AuthenticationManagerBuilder
and an application defined UserDetailService
Spring do the authentication. Once successfully authenticated, the application forges a JWT which then be used by the frontend for the next request.
Quarkus authentication extension are exclusive, either you use the Database one or MP-JWT but as for now you can reproduce easiliy this kind of flow, so let's be creative π
JHipster Spring uses liquibase to init the database.
Quarkus has a flyway extension which could do the job too.
Is your feature request related to a problem? Please describe.
If a user selects microservice for the type of application we could support allowing that microservice to be built and deployed to AWS as a lambda using the quarkus extension.
https://quarkus.io/guides/amazon-lambda
https://quarkus.io/guides/amazon-lambda-http
Describe the solution you'd like
The entities that the user creates would create the lambda endpoints and suppress the creation of non-lambda endpoints
Describe alternatives you've considered
Additional context
https://quarkus.io/guides/amazon-lambda
https://quarkus.io/guides/amazon-lambda-http
Creating flyway scripts for entities migration
Write now entities are being failed because there is no related table being generated in DB
Cutting edge!
https://quarkus.io/blog/quarkus-1-3-0-final-released/
Is your feature request related to a problem? Please describe.
It would be great to see the Quarkus blueprint on the Officially Supported Blueprints page: https://www.jhipster.tech/modules/official-blueprints/
Is there a feature set that is missing that we should add to the blueprint to get it added or is it just a matter of adding a PR to the github.io project?
Describe the solution you'd like
Make the required changes to get it posted
Describe alternatives you've considered
N/A
Additional context
N/A
Hi @danielpetisme ,
I would you like to contribute to this blueprint, I use already quarkus for my projects.
If you want, you can assigne me some issues. Thanks
Describe the bug
There is a very small typo in the README around a cd command. This is to fix the type
To Reproduce
View npm link instructions
Expected behavior
Instructions have the right command
Screenshots
N/A
Desktop (please complete the following information):
N/A
Smartphone (please complete the following information):
N/A
Additional context
N/A
Quarkus does not provide out of the box support for Web pagination and does it for the data layer (https://quarkus.io/guides/hibernate-orm-panache#paging).
The objective is to propose a way to intercept the request query string and convert the default page
, size
argument used by the frontend into a Quarkus Page for the data layer
Is your feature request related to a problem? Please describe.
The sample project should be updated to a newer version and added to CI (see instructions here #68)
Describe the solution you'd like
Project includes CI on commits and is integrated with Sonar
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
It would be great to see the jhipster-quarkus and jhipster quarkus example project available on the JHipster sonar.
Describe the solution you'd like
Projects show up here:
https://sonarcloud.io/organizations/jhipster/projects
Describe alternatives you've considered
N/A
Additional context
May require a Sonar admin
According to this ticket jhipster/generator-jhipster#11935, we need to change the name of the main branch.
[X] create branch main from master
[X] define main branch as default
[X] protect main
[X] edit existing pull requests
As contributor what should I do?
git fetch
to get the main branch back and git push
to update your remote fork.git fetch
git checkout main
git push --set-upstream origin main
And go to your GitHub repository then Settings -> Branches and change the default branch to main
If you dealing with issues, open a ticket by following our guidelines. We'll try to help you.
When this PR has been merged.
jhipster/jhipster-artwork#14
Describe the bug
When creating a quarkus project without a client the maven project fails to start. The project should support generation without a client.
To Reproduce
Steps to reproduce the behavior:
jhipster --blueprints quarkus
client
select `none'../mvnw
Get error:
/opt/quarkusBpExample$ ./mvnw
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] 'build.plugins.plugin.version' for com.github.eirslett:frontend-maven-plugin must be a valid version but is '${frontend-maven-plugin.version}'. @ line 211, column 30
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project com.mycompany.myapp:quarkus-bp-example:1.0.0-SNAPSHOT (/opt/quarkusBpExample/pom.xml) has 1 error
[ERROR] 'build.plugins.plugin.version' for com.github.eirslett:frontend-maven-plugin must be a valid version but is '${frontend-maven-plugin.version}'. @ line 211, column 30
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
Expected behavior
Quarkus JHipster can generate without a client.
Screenshots
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Running on master as of ticket opening
Is your feature request related to a problem? Please describe.
Gradle is an official option for JHipster, it must be implemented just as Maven is.
Describe the solution you'd like
Being able to build a generated application with Gradle.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
See #23
Is your feature request related to a problem? Please describe.
Provide a Quarkus implementation of the User Management API.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
When the following PR #93 will be merged we need to rebase the v7 branch and update Vue screens just like we did in the original PR.
Vue is only available on JHipster master branch while we don't released a first JHipster 7 version.
Quarkus proposes a MongoDB support.
The objective is to let the user choose MongoDB as data store and generate the according templates.
After creating Quarkus application without a database and cache layer, tests are not working because liqubase config file is not presented
Just run below
mvn test
and the logs here :
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.mycompany.myapp.web.rest.UserJWTControllerTest
[INFO] H2 database started in TCP server mode; server status: TCP server running at tcp://127.0.1.1:9092 (only local connections)
2020-09-02 11:43:15,081 INFO [io.agr.pool] (main) Datasource '<default>': Initial size smaller than min. Connections will be created when necessary
2020-09-02 11:43:15,244 ERROR [io.qua.application] (main) Failed to start application: java.lang.IllegalStateException: liquibase.exception.ChangeLogParseException: config/liquibase/master.xml does not exist
at io.quarkus.liquibase.runtime.LiquibaseRecorder.doStartActions(LiquibaseRecorder.java:89)
at io.quarkus.deployment.steps.LiquibaseProcessor$configureRuntimeProperties41.deploy_0(LiquibaseProcessor$configureRuntimeProperties41.zig:98)
at io.quarkus.deployment.steps.LiquibaseProcessor$configureRuntimeProperties41.deploy(LiquibaseProcessor$configureRuntimeProperties41.zig:36)
at io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:179)
at io.quarkus.runtime.Application.start(Application.java:89)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at io.quarkus.runner.bootstrap.StartupActionImpl.run(StartupActionImpl.java:177)
at io.quarkus.test.junit.QuarkusTestExtension.doJavaStart(QuarkusTestExtension.java:151)
at io.quarkus.test.junit.QuarkusTestExtension.ensureStarted(QuarkusTestExtension.java:278)
at io.quarkus.test.junit.QuarkusTestExtension.beforeAll(QuarkusTestExtension.java:301)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeBeforeAllCallbacks$7(ClassBasedTestDescriptor.java:359)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeBeforeAllCallbacks(ClassBasedTestDescriptor.java:359)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:189)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:78)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:132)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:154)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:127)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:377)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:138)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:465)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:451)
Caused by: liquibase.exception.ChangeLogParseException: config/liquibase/master.xml does not exist
at liquibase.parser.core.xml.XMLChangeLogSAXParser.parseToNode(XMLChangeLogSAXParser.java:106)
at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:15)
at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:217)
at liquibase.Liquibase.validate(Liquibase.java:1559)
at io.quarkus.liquibase.runtime.LiquibaseRecorder.validate(LiquibaseRecorder.java:131)
at io.quarkus.liquibase.runtime.LiquibaseRecorder.doStartActions(LiquibaseRecorder.java:73)
... 49 more
[INFO] H2 database was shut down; server status: Not started
[ERROR] Tests run: 3, Failures: 0, Errors: 1, Skipped: 2, Time elapsed: 6.777 s <<< FAILURE! - in com.mycompany.myapp.web.rest.UserJWTControllerTest
[ERROR] com.mycompany.myapp.web.rest.UserJWTControllerTest.testAuthorizeFails Time elapsed: 0.011 s <<< ERROR!
java.lang.RuntimeException: java.lang.RuntimeException: Failed to start quarkus
Caused by: java.lang.RuntimeException: Failed to start quarkus
Caused by: java.lang.IllegalStateException: liquibase.exception.ChangeLogParseException: config/liquibase/master.xml does not exist
Caused by: liquibase.exception.ChangeLogParseException: config/liquibase/master.xml does not exist
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
Unable to generate app with react frontend
To Reproduce
try to generate app with react frontend
Is your feature request related to a problem? Please describe.
While generating a native executable, the generated project does not provide a support for native executable testing.
This absence of testing is based on 2 limitations:
3.0.0-M4
does not detect the native test method ( as for now I don't know if it's due to Quarkus or failsafe)@Inject
and the whole test strategy relies on a liquibase injection reseting the test DB before each test.Describe the solution you'd like
Native testing should focus on testing the executable only without coupling to the Databse thus no injection.
Describe alternatives you've considered
Manua testing
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Beside spring-zalando-problem
, Zalando provides also a vanilla lib. Thanks to JAX-RS exception mapping feature, it's not that hard to build this Exception-to-JSON layer.
Describe alternatives you've considered
None
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
When a test is annotated @Transactional
the data is not commited into the DB thus not visible in the application under test.
Describe the solution you'd like
The objective is to use @Transactional
smoothly without any hacks.
Describe alternatives you've considered
The current solution is to manually manage the transaction
Additional context
quarkusio/quarkus#6536
Quarkus proposes a neat reactive programming model (which can be used side by side with the imperative model).
The objective is to propose to the user to choose the programming model and generate the according templates.
Describe the bug
When running the blueprint in some cases the user will get:
WARNING! Deprecated: JHipster seems to be invoked using Yeoman command. Please use the JHipster CLI. Run jhipster <command> instead of yo jhipster:<command>
To Reproduce
Run on master. Select the choices below.
? Would you like to use Maven or Gradle for building the backend? Maven
WARNING! Deprecated: JHipster seems to be invoked using Yeoman command. Please use the JHipster CLI. Run jhipster <command> instead of yo jhipster:<command>
? Which *Framework* would you like to use for the client? No client
info Using blueprint generator-jhipster-quarkus for common subgenerator
WARNING! Deprecated: JHipster seems to be invoked using Yeoman command. Please use the JHipster CLI. Run jhipster <command> instead of yo jhipster:<command>
? Would you like to enable internationalization support? Yes
? Please choose the native language of the application English
? Please choose additional languages to install
WARNING! Deprecated: JHipster seems to be invoked using Yeoman command. Please use the JHipster CLI. Run jhipster <command> instead of yo jhipster:<command>
Expected behavior
No warnings
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
Java8 is EOL end of 2020, plus you can't pretend to be a hipster if you're still on Java8
Describe the solution you'd like
Use Java11 and the related language feature rather than Java 8
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Waiting for this PR
quarkusio/quarkus#5691
Is your feature request related to a problem? Please describe.
Blueprint should run on JHipster latest
Describe the solution you'd like
We should be on the latest JHipster for Quarkus
Describe alternatives you've considered
N/A
Additional context
https://github.com/jhipster/generator-jhipster/releases
JHipster Spring integrates Zalando problems (more precisely the spring version of the lib) to transform Java exception into machine readable exceptions (ie. HTTP status code + a JSON document).
Quarkus does not provide out of the box such feature. The objective is to emulate the same behavior (or simply try to integrate the vanilla Zalando problem lib) in order to be pluggable to the default front applications.
Is your feature request related to a problem? Please describe.
Jhipster generated interface has /admin/metrics
page, but it didn't work
Describe the solution you'd like
Metrics page works
Is your feature request related to a problem? Please describe.
Get to quarkus latest release
Describe the solution you'd like
Update to 1.7.1 and make sure all the tests pass
Describe alternatives you've considered
N/A
Additional context
N/A
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.