Un sistema de identificadores de 256 bits, disponible en C# / .NET y PHP, con formatos N / D, validación, análisis sintáctico, JSON, Symfony, Doctrine DBAL y configuración de la aplicación.
GsId es un sistema de identificadores de 256 bits diseñado para los proyectos ⋞Galactic-Shrine⋟.
Ofrece una alternativa personalizada a los identificadores clásicos de tipo GUID/UUID, con el doble de tamaño:
GUID / UUIDclásico: 128 bits, 32 caracteres hexadecimales sin guiones;GsId: 256 bits, 64 caracteres hexadecimales sin guiones.
El proyecto ofrece dos implementaciones sincronizadas:
- una versión C# / .NET 8;
- una versión PHP >= 8.3 con integraciones Symfony y Doctrine DBAL.
| Campo | Valor |
|---|---|
| Organización | ⋞Galactic-Shrine⋟ |
| Proyecto | GsId |
| Nombre oficial | ⋞Galactic-Shrine⋟ GsId |
| Categoría | Sistema de identificación de 256 bits |
| Lenguajes | C# / PHP |
| Licencia | MPL-2.0 |
| Estado | Producción / 1.0.2 |
Formato compacto, sin guiones.
9F2A6C1E8D4B7A90A13F9C2DE88B421091AF77CB4D6E39A2FC018AD92E7B5C64
Formato legible con 5 guiones según el patrón 16-8-8-8-8-16.
9F2A6C1E8D4B7A90-A13F9C2D-E88B4210-91AF77CB-4D6E39A2-FC018AD92E7B5C64
| Formato | Descripción | Longitud |
|---|---|---|
N |
Sin guiones | 64 |
D |
Con 5 guiones | 69 |
- Identificadores de 256 bits
- Generación aleatoria segura
- Análisis sintáctico estricto
- Validación de formato
- Formatos
NyD - Salida en mayúsculas o minúsculas
- Opciones globales mediante
GsIdOptions - Bloqueo de configuración
- Compatibilidad con JSON en C#
- Puente Symfony en PHP
- Tipo Doctrine DBAL en PHP
- Configuración de la aplicación en C# mediante
appsettings.json - Configuración de Symfony mediante YAML o bundle
- Pruebas unitarias en C# con xUnit
- Pruebas unitarias en PHP con PHPUnit
La V4 centraliza los comportamientos predeterminados con GsIdOptions.
| Opción | Función | Predeterminado |
|---|---|---|
DefaultCase |
Mayúsculas/minúsculas predeterminadas | Upper |
DefaultTextFormat |
Formato de ToString() / toString() |
D |
DefaultJsonFormat |
Formato JSON predeterminado | D |
DefaultDatabaseFormat |
Formato de almacenamiento en base de datos | N |
Lock |
Bloqueo de opciones | false |
using GalacticShrine.GsId;
GsIdOptions.Configure(
DefaultCase: GsIdCase.Lower,
DefaultTextFormat: GsIdFormat.N,
DefaultJsonFormat: GsIdFormat.D,
DefaultDatabaseFormat: GsIdFormat.N);
GsIdOptions.Lock();
GsId id = GsId.NewGsId();
string value = id.ToString();use GalacticShrine\GsId\GsId;
use GalacticShrine\GsId\GsIdCase;
use GalacticShrine\GsId\GsIdFormat;
use GalacticShrine\GsId\GsIdOptions;
GsIdOptions::configure(
defaultCase: GsIdCase::Lower,
defaultTextFormat: GsIdFormat::N,
defaultJsonFormat: GsIdFormat::D,
defaultDatabaseFormat: GsIdFormat::N,
);
GsIdOptions::lock();
$id = GsId::newGsId();
$value = $id->toString();{
«GsId»: {
«DefaultCase»: «Lower»,
«DefaultTextFormat»: «N»,
«DefaultJsonFormat»: «D»,
«DefaultDatabaseFormat»: «N»,
«Lock»: true
}
}gsid:
default_case: Lower
default_text_format: N
default_json_format: D
default_database_format: N
lock: trueGsId/
├─ csharp/
│ ├─ src/
│ ├─ tests/
│ └─ examples/
├─ php/
│ ├─ src/
│ ├─ tests/
│ └─ config/
├─ README.md
├─ CHANGELOG.md
├─ LICENSE.md
└─ .gitignore
dotnet test csharp/tests/GalacticShrine.GsId.Tests/GalacticShrine.GsId.Tests.csprojResultado validado localmente: 14 / 14 pruebas superadas.
cd php
composer install
composer testResultado validado localmente: 23 / 23 pruebas superadas.
Este proyecto se distribuye bajo la licencia Mozilla Public License 2.0.
Ver LICENSE.md.
- Organización: ⋞Galactic-Shrine⋟
- YouTube: @Galactic-Shrine
- Discord: ⋞Comunidad Galactic-Shrine⋟
⋞Galactic-Shrine⋟ GsId
Sistema de identificación de 256 bits
C# · PHP · Symfony · Doctrine