Você conhece o NanoID?

UUID é um dos identificadores universais mais comumente usados no desenvolvimento de software.

No entanto, nos últimos anos, outros padrões desafiaram a sua existência. Entre eles, o NanoID é um dos principais concorrentes do UUID.

Hoje irei lhe apresentar os recursos do NanoID, seus destaques e limitações para nos dar uma ideia melhor de porque e quando usá-lo.

Gerar um UUID ou NanoID é muito simples, ambos têm pacotes em praticamente todas as linguagens e frameworks.

A principal diferença entre os dois é simples, tudo se resume ao alfabeto usado para as calcular o resultado.

Ao contrário dos 36 caracteres do alfabeto UUID, o NanoID possui apenas 21 caracteres, o NanoID permite que os desenvolvedores usem alfabetos personalizados e possamos alterar o tamanho do texto/id.

Como o NanoID usa um alfabeto maior que o UUID, o resultado obtido é mais curto e pode ser usado para a mesma finalidade que o UUID mais longo.

O NanoID tem apenas 108 bytes de tamanho, 4,5 vezes menor em comparação com o UUID, em tamanho e não possui dependências de terceiros.

Esse tamanho afeta diretamente o tamanho dos dados. Por exemplo, objetos que usam NanoID são pequenos e compactos, obtendo assim mais performance ao ser usados para transmissão e armazenamento de dados. À medida que a aplicação cresce, esses números se tornam cada vez mais relevantes.

NanoID é 60% mais rápido que UUID.

O fato de o NanoID não ser facilmente legível por humanos é visto como uma desvantagem por muitos desenvolvedores, pois dificulta a depuração. No entanto, em comparação com os UUIDs, os NanoIDs são mais curtos e um pouco mais legíveis.

Além disso, o NanoID também pode ser chave primária de uma tabela, porem haverá problemas ao usar a mesma coluna como um índice clusterizado. Isso ocorre porque o NanoID não é contínuo.

NanoID está gradualmente se tornando um de ID exclusivo que possivelmente sucederá o UUID, com a maioria dos desenvolvedores preferindo-o como alternativa aos UUIDs.

O Nano ID é utilizado em várias tipos de aplicações como:

  • Aplicações de Banco de Dados: Criação de IDs únicos para registros.
  • Autenticação e Segurança: Geração de tokens aleatórios para autenticação de usuários.
  • Encurtamento de URLs: Criação de URLs curtas e únicas para recursos.
  • Gerenciamento de Arquivos: Geração de nomes únicos para arquivos ou diretórios.
  • Gerenciamento de Identidades: Atribuição de IDs únicos para usuários, dispositivos ou entidades.

Esses são apenas alguns exemplos, mas a flexibilidade do Nano ID permite muitas outras possibilidades dependendo das necessidades específicas.

Caso queira controlar ou otimizar a contagem de caracteres dos seus IDs para seu projeto, recomendo verificar a ferramenta Nano ID Collision Calculator. Usando essa ferramenta, você pode facilmente determinar a probabilidade de pelo menos uma colisão.

Para gerar alguns Nano IDs rapidamente, você pode usar o https://devgyver.tech/nanoid

Sobre Nicolau 37 Artigos
Fuçando o desenvolvimento de software desde 2013, sou da turma do código aberto, vivo pesquisando e garimpando a segurança na web. Sommelier de sucos e chocólatra de carteirinha. Hic svnt dracones.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*