Boa tarde amigos. Estou muito em dúvida pra tomar uma decisão de design e queria ajuda de vocês nisso.
Um colega na empresa criou um algoritmo de similaridade chamado TLSH [1]. É uma biblioteca em C++. Ele fez wrappers para Python também (pip install tlsh) aí é só importar e usar.
Com este algoritmo disponível, eu criei um outro que chamei de Telfhash [2], mas fiz em Python (usando os wrappers dele). Para atingir meu objetivo, no meu código em Python também uso uma lib chamada Capstone (para disassemblar) e uma outra chamada pyelftools (para parsear binários ELF). Como resultado, minha lib em Python depende de 3 libs (TLSH, Capstone e pyelftools).
Isso não tá muito portável e recebi um pedido do time de reescrever minha lib (Telfhash) em C/C++. Comecei a desenhar a API, mas fiquei com algumas dúvidas:
Perdão pelo excesso de perguntas. É que pra mim tá muito confuso ainda, mas espero ter sido claro pelo menos nas dúvidas.
Obrigado desde já!
Fernando
[1] https://github.com/trendmicro/tlsh
[2] https://github.com/trendmicro/telfhash
--
http://ccppbrasil.github.io/
https://twitter.com/ccppbrasil
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "ccppbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para ccppbrasil+...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/ccppbrasil/77587778-8dfa-43c6-a6b4-33f79ca343ebn%40googlegroups.com.
Todas as considerações são muito valiosas, gente. Obrigado!
Alguns pontos:
Por que não deixar em Python?
Tem dois motivos: eu preciso integrar esse código em outros sistemas, que não são em Python. E tem um “cliente” que quer um binário estático. Esse último ponto até resolveria com algo tipo https://github.com/py2exe/py2exe, mas não sei quão confiável é esse projeto para produção.
Aplicação dependente de bibliotecas
Na verdade, eu me referia à minha biblioteca ser dependente de outras bibliotecas. Não a aplicação. Mas também entendi que é tão comum quanto.
Li atentamente todas as respostas aqui e creio que o melhor caminho seja então:
Muito obrigado, gente. Eu tenho uma linha para seguir agora. Além disso, vou precisar estudar C++, o que é bom. Sempre quis ter um motivo para tal. hehe
Abraços,
Fernando
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/ccppbrasil/CAFE8KLeNa_XaxENU_xKCxnjuf%2B0mL7cfr7sK%3Diq2ReNA%2B%3D9zxg%40mail.gmail.com.
Bom ponto também, Thiago. Só pra confirmer, tua sugestão é separar no código (tipo mylib.h, mylib.cpp e myapp.cpp) e simplesmente compilar, certo? É isso que chama de “single file” lib? “Amalgamated version” é sinônimo disso? Só curiosidade pra eu entender melhor hehe.
Abraço,
Fernando
--
http://ccppbrasil.github.io/
https://twitter.com/ccppbrasil
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "ccppbrasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para ccppbrasil+...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/ccppbrasil/33528db0-db26-42cc-9779-c3e9bcb11f37n%40googlegroups.com.
Bom ponto também, Thiago. Só pra confirmer, tua sugestão é separar no código (tipo mylib.h, mylib.cpp e myapp.cpp) e simplesmente compilar, certo?
É isso que chama de “single file” lib? “Amalgamated version” é sinônimo disso? Só curiosidade pra eu entender melhor hehe.