[pitch]🔥 XPLPC - Projeto para usar C++ em Mobile, Desktop, Web, Flutter, Python, Kotlin e outras plataformas
Olá,
Fiz um projeto para usar C++ em Mobile, Desktop, Web, Flutter, Python, Kotlin e outras plataformas.
O repositório está aqui: https://github.com/xplpc/xplpc
Descrição:
XPLPC - Conectando Linguagens e Plataformas
O XPLPC é um projeto inovador que conecta diferentes linguagens e plataformas, permitindo a transferência de dados serializados entre elas sem a necessidade de um servidor. Em vez disso, utilizamos a memória do próprio dispositivo, tornando o processo extremamente eficiente. Esse conceito é conhecido como Lite Procedure Call.
Como funciona?
A classe Platform Proxy é responsável por conectar as linguagens e plataformas, facilitando a transferência de dados diretamente na memória do dispositivo, sem depender do protocolo HTTP. Isso torna a comunicação entre diferentes ambientes mais rápida e fluida.
Com o XPLPC, é possÃvel, por exemplo, chamar um procedimento escrito em C++ a partir de um aplicativo mobile, ou o inverso, de maneira simples e integrada. Isso abre inúmeras possibilidades para desenvolvedores que precisam integrar diversas linguagens e plataformas sem complicação.
Principais benefÃcios
- Integração facilitada: Sem necessidade de servidores intermediários.
- Alto desempenho: Utiliza a memória do dispositivo para comunicação eficiente.
- Simplicidade: Não exige geradores ou ferramentas extras.
- Plug & Play: A biblioteca pode ser adicionada ao seu projeto sem necessidade de reescrita de código.
Como usar?
Exemplo em C++:
auto request = Request{
"sample.login",
Param<std::string>{"username", "paulo"},
Param<std::string>{"password", "123456"},
Param<bool>{"remember", true},
};
Client::call<std::string>(request, [](const auto &response) {
std::cout << "Returned Value: " << (response ? response.value() : "Empty") << std::endl;
});
Exemplo em Kotlin:
val request = Request(
"sample.login",
Param("username", "paulo"),
Param("password", "123456"),
Param("remember", true)
)
Client.call<String>(request) { response ->
println("Returned Value: $response")
}
Exemplo em Swift:
let request = Request(
"sample.login",
Param("username", "paulo"),
Param("password", "123456"),
Param("remember", true)
)
Client.call(request) { (response: String?) in
print("Returned Value: \(response)")
}
Exemplo em WASM com Typescript:
const request = new XRequest(
"sample.login",
new XParam("username", "paulo"),
new XParam("password", "123456"),
new XParam("remember", true),
);
XClient.call<string>(request).then((response : string | undefined) => {
console.log("Returned Value: " + response);
});
Exemplo em Flutter (Dart):
var request = Request("sample.login", [
Param("username", "paulo"),
Param("password", "123456"),
Param("remember", true),
]);
Client.call<String>(request, (response) {
print(response);
});
Exemplo em Python:
request = Request(
"sample.login",
[
Param("username", "paulo"),
Param("password", "123456"),
Param("remember", True),
],
)
response = Client.call(request)
print(response)
Plataformas e Linguagens Suportadas
- C
- C++
- Kotlin (Android, Desktop)
- Swift (iOS, macOS, tvOS, watchOS, Catalyst)
- WebAssembly
- Flutter (iOS, Android, Desktop)
- Python
O XPLPC simplifica a integração entre linguagens e plataformas, proporcionando uma experiência otimizada para desenvolvedores. Explore essa tecnologia e leve seus projetos a um novo nÃvel! 🚀
Plataformas e Linguagens Suportadas
Web demo do XPLPC:
URL: https://xplpc.github.io/wasm-demo/
Projeto que usa o XPLPC:
Projeto pessoal que usa o XPLPC para gerar texto, imagem e vÃdeo (C++, ggml, ffmpeg, stablediff, whisper): https://paulocoutinho.pages.dev/aikit/apple/