![Como usar a função Python zip()](https://optimuscloud.com.br/wp-content/uploads/2024/02/1708913084_Como-usar-a-funcao-Python-zip-150x150.png)
Como usar a função Python zip()
25 de fevereiro de 2024![Modelagem de dados NoSQL na prática: streaming de vídeo](https://optimuscloud.com.br/wp-content/uploads/2024/02/Modelagem-de-dados-NoSQL-na-pratica-streaming-de-video-150x150.jpg)
Modelagem de dados NoSQL na prática: streaming de vídeo
26 de fevereiro de 2024CheerpJ 3.0 apresenta uma manifestação interessante do WebAssembly para o navegador, demonstrando seu potencial para implantar e operar aplicativos complexos e tempos de execução escritos em Java. Os desenvolvedores podem criar aplicativos em qualquer linguagem e implantá-los com apenas um clique – empacotados e distribuídos para disponibilidade em testes e uso pelos usuários finais.
Embora o desenvolvimento do CheerpJ 3.0 continue em andamento, ele representa um avanço significativo na implantação de aplicativos no navegador com WebAssembly, especialmente com Java. Isso complementa outros projetos focados em criptografia e na capacidade de implantar aplicativos escritos em C++ para uso em navegadores.
Com o CheerpJ 3.0 – marcando seu lançamento geralmente disponível – aplicativos cliente Java, como Java Applets, aplicativos Java Web Start e aplicativos Java independentes, podem ser executados sem modificações em navegadores modernos, sem uma instalação Java local, diz a empresa. A ideia é tornar os tempos de execução — neste caso Java — mais capazes de rodar como se o usuário tivesse os recursos do servidor endpoint à sua disposição — no navegador.
“Da mesma forma que o Docker permite executar contêineres de binários em sua máquina, você precisa ter a tecnologia e ele possui tecnologia que permite fazer o mesmo para executar cargas de trabalho binárias no navegador da mesma maneira que você pode fazer isso normalmente em um sistema operacional de plataforma normal”, disse Stefano Marco Maria De Rossi, CEO e fundador da Leaning Technologies, que criou o CheerpJ, ao The New Stack.
A configuração do CheerpJ 3.0 é razoavelmente simples, com etapas claramente descritas na documentação, e é compatível com praticamente qualquer navegador, afirma a empresa. No aspecto de playground, mesclar arquivos PDF é extremamente simples com o CheerpJ iText. Com ele, os usuários inserem seus arquivos PDF na API e, com alguns cliques, os arquivos são mesclados “tudo feito no navegador”. Você começa acessando a página de demonstração do iText:
Faça upload dos arquivos PDF que deseja mesclar e mesclar os documentos são indicados:
Mescle os arquivos PDF conforme indicado e pronto:
Como no exemplo acima, Java pode ser escrito e implementado no módulo WebAssembly do CheerpJ 3.0 para distribuição e execução em navegadores de – pelo menos em teoria – qualquer aplicativo escrito em Java. Deve haver muitos outros aplicativos interessantes rodando com CheerpJ para o navegador em um futuro próximo.
Um dos exemplos mais engraçados que a Leaning Technologies oferece para mostrar como permite que o Java seja executado no navegador com CheerpJ é o Browsercraft, que permite que o jogo Minecraft seja executado no navegador para que um usuário possa jogar diretamente (e de graça):
Debaixo do capô
Descrita como uma máquina virtual Java WebAssembly para o navegador que compila bytecode Java JIT em JavaScript (conforme mencionado acima), os componentes do CheerpJ 3.0, de acordo com a documentação, incluem:
- Um JVM WebAssembly e um compilador Just-In-Time para bytecode Java. O código contido nos arquivos de classe é compilado e otimizado. O compilador JIT oferece suporte a otimizações avançadas, como inlining e desvirtualização dinâmica.
- Uma versão completa e não modificada do OpenJDK.
- Uma camada de sistema virtualizado, incluindo:
- Sistemas de arquivos virtualizados, fornecendo acesso a ativos por HTTP, armazenamento R/W persistente local via IndexedDB e interação com dados JavaScript via /str/.
- Suporte de rede virtualizada via Tailscale. São suportados aplicativos de servidor e cliente.
Como observou De Rossi, quando não usam WebAssembly, os desenvolvedores devem usar x86, Linux ou outras arquiteturas de destino separadamente, seja criando código de tempo de execução em Rust, C++, Python, Java ou qualquer outra linguagem. O código é compilado para rodar em diferentes plataformas. Mas Wasm representa um alvo unificado. “A principal diferença é que o Wasm é único e não importa se o seu navegador é Chrome no Linux ou Safari no macOS ou Firefox no Windows”, disse De Rossi. “Eventualmente, Wasm criou essa abstração que permite aos fabricantes de ferramentas criar ferramentas para praticamente qualquer linguagem. Sim, mais e mais idiomas surgirão no futuro simplesmente porque o Wasm está se tornando cada vez mais poderoso, cada vez mais semelhante a uma plataforma nativa.”
A postagem CheerpJ 3.0: execute aplicativos no navegador com WebAssembly apareceu pela primeira vez em The New Stack.