FAQ
Get answers to some of your common Quarkus questions.
Qual é a sua licença?
Quarkus é um projeto Open Source licenciado sob o https://www.apache.org/licenses/LICENSE-2.0 [Apache License versão 2.0].
Onde posso obtê-lo?
Quarkus is published in Maven Central. We recommend you start your Quarkus experience with our Getting Started guides or by downloading a scaffolded application from code.quarkus.io.
Quarkus é estável?
Yes, we consider Quarkus stable. Quarkus is used in production by a wide range of organizations (see some user stories). Remember 95% of the features Quarkus apps use are provided by the ecosystem like Hibernate ORM, Eclipse Vert.x, Netty, RESTEasy, etc. These libraries are rock solid :)
You can go to quarkus.io/extensions to see if a particular extension is stable (default) or preview.
O que é uma extensão do Quarkus?
Um dos principais objetivos do Quarkus é a facilidade de extensibilidade e a construção de um ecossistema vibrante.
Pense nas extensões do Quarkus como suas dependências de projeto. As extensões configuram, inicializam e integram uma estrutura ou tecnologia em seu aplicativo Quarkus. Eles também fazem todo o trabalho pesado de fornecer as informações certas para GraalVM para sua aplicação compilar nativamente. Isso permitirá que os projetos de terceiros aproveitem facilmente o trabalho que fizemos para facilitar o direcionamento do GraalVM.
Quais são os status de extensão?
As extensões têm um grau de maturidade variado quando entram no ecossistema Quarkus. Um status oferece as expectativas nas quais você pode confiar.
Stable: backward compatibility and presence in the ecosystem are taken very seriously. An application can safely rely on these extensions. Extensions not marked as preview or experimental (the majority) are stable.
Preview: backward compatibility and presence in the ecosystem is not guaranteed. Specific improvements might require to change configuration or APIs and plans to become stable are under way. Such extensions are in the middle of their maturation process.
Experimental: early feedback is requested to mature the idea. There is no guarantee of stability nor long term presence in the platform until the solution matures. Such extensions are at the beginning of their maturation process.
Deprecated: backward compatibility and presence in the ecosystem is not guaranteed. Such extensions are likely to be replaced or removed in a future version of Quarkus.
You can find the extension status on quarkus.io/extensions or in the extension guides.
A equipe do Quarkus aceitará minha extensão?
Oh sim! Tivemos algumas extensões escritas fora da equipe "inicial" do Quarkus.
O Quarkus é um ecossistema aberto e esperamos ver todas as extensões que as pessoas precisam para escrever suas aplicações. Estamos trabalhando enquanto falamos para permitir que uma extensão seja publicada em repositórios separados e GAVs separados e, portanto, publicada em repositórios Maven independentemente do núcleo do Quarkus. Isso simplificará muito o processo de publicação. Aguarde novidades em breve.
The one current restriction is that extensions should work in both OpenJDK and GraalVM native executables. That is the guarantee we give Quarkus users (a cross compilation for their app). We have a maturity model to improve an extension to be fully "Quarked" and benefit from Quarkus, all done in incremental steps. Just hop on our mailing list to discuss your ideas and get help. And you can start reading our Writing extensions guide as well or more simply get inspiration from the existing ones.
What is GraalVM?
GraalVM é uma máquina virtual universal para executar aplicações escritas em várias linguagens diferentes, além de fornecer a capacidade de compilar bytecode JVM para um executável nativo (este executável nativo executa uma máquina virtual especial chamada SubstrateVM). Esses executáveis nativos iniciam muito mais rápido e podem usar muito menos memória do que uma JVM tradicional, no entanto, nem todos os recursos da JVM são suportados, e alguns são mais limitados do que o normal.
Por exemplo, por padrão, o uso de reflexão de classes no GraalVM não funcionará, a menos que uma classe/membro tenha sido explicitamente registrada para reflexão. Isso normalmente é obtido listando cada classe, método, campo e construtor em um arquivo JSON, e passando isso como um parâmetro para a compilação de imagem nativa. Isso obviamente fica bastante complicado para todos, exceto para os projetos mais triviais. O Quarkus fornece uma estrutura que facilita a solução dessas anotações e determina programaticamente o que deve ser registrado.