# SOM

SurrealDB Object Mapper & Query Builder for Go

The GitHub repository can be found [here](https://github.com/go-surreal/som).

## What is SOM?

SOM is an ORM and query builder for [SurrealDB](https://surrealdb.com/) with built-in model mapping and type-safe query operation generator. It provides an easy and sophisticated database access layer for Go applications.

## Key Features

* **Type-safe queries**: Compile-time checked queries prevent runtime errors
* **Code generation**: Automatically generates repository and query builder code from your Go models
* **Native Go experience**: Work with your domain models directly, no manual mapping required
* **Graph support**: First-class support for SurrealDB's graph capabilities via edges

## Quick Links

* [Installation](/som/getting-started/getting_started/01_installation.md)
* [Quick Start](/som/getting-started/getting_started/02_quick_start.md)
* [API Reference](/som/api-reference/api_reference.md)

## Status

This library is currently considered **experimental** and under active development. See the [FAQ](/som/appendix/appendix/01_faq.md) for more details.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://go-surreal.gitbook.io/som/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
