Artículo
· 2 hr atrás Lectura de 3 min

GORM e InterSystems IRIS: Presentando gorm-iris

Si pensabais que el soporte nativo de Go para IRIS era emocionante, esperad a ver lo que pasa cuando GORM entra en juego


Hace poco dimos la bienvenida al soporte nativo de GoLang para InterSystems IRIS con el lanzamiento de go-irisnative. Eso fue solo el comienzo. Ahora vamos un paso más allá con el lanzamiento de gorm-iris, un controlador GORM diseñado para llevar el poder del Object Relational Mapping (ORM) a vuestra combinación de IRIS + Go.

¿Por qué GORM?

GORM es una de las bibliotecas ORM más populares en el ecosistema de Go. Facilita la interacción con las bases de datos usando structs de Go en lugar de escribir SQL puro. Con funciones como migraciones automáticas, asociaciones y creación de consultas, GORM simplifica mucho el desarrollo de backend.

Así que, naturalmente, el siguiente paso después de permitir que Go se comunique de forma nativa con IRIS era hacer que GORM funcionara sin problemas con él. Y eso es exactamente lo que hace gorm-iris.


¿Qué es gorm-iris?

gorm-iris es un controlador GORM personalizado para InterSystems IRIS, construido sobre go-irisnative. Actúa como un puente que permite a los desarrolladores usar la sintaxis y los patrones familiares de GORM para interactuar con una base de datos IRIS, mientras que todo el trabajo pesado por detrás se gestiona mediante llamadas nativas a IRIS. 

Pensad en ello como lo mejor de ambos mundos:

  • Rendimiento y acceso a datos nativos a través de go-irisnative
  • Funcionalidades de ORM fáciles de usar gracias a GORM

Características clave

Esto es lo que podéis esperar de gorm-iris:

✅ Integración fluida entre GORM e IRIS
✅ Uso de structs nativos de Go para modelar vuestros datos en IRIS
✅ Operaciones básicas de CRUD listas para usar
✅ Comportamiento personalizable a través de interfaces de Go

Y por supuesto, todo es de código abierto.


Ejemplo rápido para empezar

¿Queréis empezar? Aquí tenéis una configuración mínima para mostrar cómo funciona:

package main

import (
	"fmt"
	iris "github.com/caretdev/gorm-iris"
	"gorm.io/gorm"
)

type User struct {
  ID    int
  Name  string
  Email string
}

func main() {
  dsn := "iris://_SYSTEM:SYS@localhost:1972/USER"
  db, err := gorm.Open(iris.Open(dsn), &gorm.Config{})
  if err != nil {
    panic("failed to connect to IRIS")
  }

	// Auto-migrate schema
  db.AutoMigrate(&User{})

  // Create
  db.Create(&[]User{
		{Name: "Johh", Email: "john@example.com"},
		{Name: "Johh1", Email: "john1@example.com"},
		{Name: "John2", Email: "john2@example.com"},
	})

  // Read
  var user User
  db.First(&user, "email = ?", "john1@example.com")
	fmt.Printf("Found: ID: %d; Name: %s\n", user.ID, user.Name)
}

Sí, eso es realmente todo.


¿Qué hay bajo el capó?

El controlador gorm-iris traduce las operaciones de GORM en llamadas nativas a través de go-irisnative. Esto significa que seguís teniendo la velocidad y eficiencia del acceso directo a IRIS, pero con una abstracción de más alto nivel para los casos de uso diarios.

Es ideal para desarrolladores que:

  • Quieren construir aplicaciones en Go con IRIS como backend
  • Prefieren el desarrollo al estilo ORM en lugar de la construcción directa de consultas
  • Buscan crear prototipos o aplicaciones a gran escala con código Go limpio y legible

Hacia dónde se dirige

Esto es solo la versión 0.1.1 — estamos trabajando activamente en mejorar la cobertura de funcionalidades, la optimización del rendimiento y el manejo de características más complejas de GORM.

Si lo usáis y tenéis comentarios o solicitudes de funciones — ¡los issues y PRs son bienvenidos!

👉 Echad un vistazo al repositorio: https://github.com/caretdev/gorm-iris 


Reflexiones finales

Con go-irisnative abrimos la puerta para que los desarrolladores de GoLang hablen con InterSystems IRIS. Con gorm-iris, les invitamos a quedarse a cenar.

Esta librería trata de hacer que IRIS se sienta como en casa en vuestro flujo de trabajo de desarrollo en Go. Es limpia, expresiva y aprovecha las herramientas que los desarrolladores de Go ya adoran.

Así que adelante — probadla, construid algo interesante y contadnos qué pensáis.

Comentarios (0)1
Inicie sesión o regístrese para continuar