Gerador e Decodificador de Snowflake ID

Gere e decodifique Snowflake IDs de 64 bits com épocas do Twitter ou do Discord, direto no seu navegador. Nada que você digita sai do seu dispositivo.

O Gerador de Snowflake ID roda inteiramente no seu navegador. Os IDs, timestamps e valores de campo que você digita ou decodifica nunca saem do seu dispositivo e nada é enviado à ArrayKit.

Abrir o Gerador de ULID

Sobre Gerador de Snowflake ID

O Gerador de Snowflake ID monta Snowflake IDs de 64 bits do jeito que o Twitter e o Discord fazem: um timestamp em milissegundos, um worker id, um process id, e uma sequência por milissegundo empacotados em um único BigInt. Escolha a predefinição de época do Discord ou do Twitter, ou digite sua própria época em milissegundos Unix, depois defina o timestamp e os valores dos campos para cunhar um ID. Mude para Decodificar para colar qualquer Snowflake e ver o timestamp exato em milissegundos, seu horário ISO, e os bits de worker, processo e sequência sob a época que você escolheu. É útil para descobrir por engenharia reversa quando uma mensagem do Discord foi postada, reproduzir um ID em um fixture de teste, ou conferir a sanidade de um esquema de id distribuído. Todo o deslocamento de bits acontece no seu dispositivo; os IDs e timestamps que você digita nunca são enviados.

Recursos

Como usar Gerador de Snowflake ID

  1. Escolha Discord, Twitter ou uma época personalizada
  2. Em Gerar, defina o timestamp e os valores de worker, processo e sequência
  3. Copie o Snowflake ID de 64 bits resultante
  4. Mude para Decodificar e cole um Snowflake para ler de volta seu timestamp e campos

Exemplo

Entrada

175928847299117063  (Discord epoch)

Saída

timestamp: 2016-04-30T11:18:25.796Z
worker: 1  process: 0  sequence: 7

Decodificar um Snowflake do Discord recupera quando ele foi criado e seus bits de campo.

Erros comuns e solução de problemas

Perguntas frequentes

O que é um Snowflake ID?
Um Snowflake é um id de 64 bits usado pelo Twitter e pelo Discord que empacota um timestamp em milissegundos, um id de worker (máquina), um id de processo e uma sequência por milissegundo em um único número ordenável, para que os ids sejam únicos e mais ou menos ordenados no tempo sem um contador central.
Como descubro quando uma mensagem do Discord foi enviada a partir de seu ID?
Cole o id da mensagem ou do usuário em Decodificar com a época do Discord selecionada. A ferramenta desloca os 42 bits de timestamp, soma a época do Discord (1420070400000 ms), e mostra o horário exato de criação como ISO e milissegundos Unix.
Qual é a diferença entre as épocas do Twitter e do Discord?
Ambos os layouts têm as mesmas larguras de bits, mas contam milissegundos a partir de pontos de início diferentes: o Twitter usa 1288834974657 (nov 2010) e o Discord usa 1420070400000 (jan 2015). Decodificar com a errada desloca cada timestamp por essa diferença.
Por que worker e processo são limitados a 31 e a sequência a 4095?
O layout dá 5 bits cada a worker e processo (2^5 − 1 = 31) e 12 bits à sequência (2^12 − 1 = 4095). Valores acima desses limites estourariam para o próximo campo, então o gerador os rejeita.
Posso usar uma época personalizada para o meu próprio serviço?
Sim. Escolha a predefinição Personalizada e digite sua época em milissegundos Unix. Gerar e Decodificar então usam esse valor, o que permite trabalhar com qualquer esquema estilo Snowflake que mantenha o layout de bits 42/5/5/12.
Os IDs que eu gero ou decodifico são enviados para algum lugar?
Não. Cada deslocamento de bits roda no seu navegador com BigInt. Os timestamps, ids e valores de campo que você digita ou cola nunca saem do seu dispositivo e não são enviados à ArrayKit.

Ferramentas relacionadas

Todas as ferramentas de ArrayKit