# XamiLib Go — Instalación

**XamiLib para Go** (`xamisdk-client-go`) es la librería que permite a tu aplicación Go
firmar a través del servicio local del xamiSDK. Tu aplicación habla con el servicio
local (nunca con Xami directamente); el documento no sale de tu red. Sin dependencias
externas: usa `net/http` y `encoding/json` de la stdlib.

## Requisitos

- Go 1.18 o superior.
- El servidor xamiSDK instalado, pareado y corriendo (`xamisdk serve`).
- Una credencial de aplicación (`xamisdk wrapper:create --name mi-app`), que te da un
  `wrapper_key` y un `wrapper_secret`.

## Instalación

Descarga el paquete desde https://sdk.xami.run/files/xamisdk-go-0.1.0.zip y
descomprímelo junto a tu módulo:

```bash
curl -O https://sdk.xami.run/files/xamisdk-go-0.1.0.zip
unzip xamisdk-go-0.1.0.zip
```

En el `go.mod` de tu aplicación, apunta el import a la carpeta local con `replace`:

```
require github.com/xami-run/xamisdk-client-go v0.1.0

replace github.com/xami-run/xamisdk-client-go => ./xamisdk-go
```

Luego resuelve el módulo:

```bash
go mod tidy
```

## Primer uso

```go
package main

import (
    "fmt"

    xamisdk "github.com/xami-run/xamisdk-client-go"
)

func main() {
    xami := xamisdk.New(xamisdk.Config{
        Endpoint:      "http://127.0.0.1:8300",
        WrapperKey:    "wrp_...",
        WrapperSecret: "wsec_...",
    })

    estado, err := xami.Health().Self()
    if err != nil {
        panic(err)
    }
    if pareado, _ := estado["paired"].(bool); pareado {
        fmt.Println("pareado")
    } else {
        fmt.Println("sin parear")
    }
}
```
