user12 anos atrás2 anos atrásHá libs como este aqui, mas a maioria está desatualizada. Talvez estudando o código dessas libs você possa chegar em uma solução para o contexto que você precisa.