go-mlx/mlx.go
Snider 4d1bff3d78 refactor(api): clean root package — interfaces only, metal auto-registered
Root package now contains only:
- mlx.go: package doc + go:generate directives
- textmodel.go: TextModel, Token, Message interfaces
- options.go: GenerateOption, LoadOption functional options
- backend.go: Backend interface, Register/Get/Default/LoadModel
- register_metal.go: build-tagged init() + adapter + memory delegates
- mlx_stub.go: non-darwin fallback

internal/metal/ has its own Token, GenerateConfig, Model types.
register_metal.go adapts between the two via metalAdapter.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-19 20:04:19 +00:00

20 lines
555 B
Go

// Package mlx provides Go bindings for Apple's MLX framework.
//
// Build mlx-c before use:
//
// go generate ./...
//
// Load a model and generate text:
//
// m, err := mlx.LoadModel("/path/to/model/")
// if err != nil { log.Fatal(err) }
// defer m.Close()
//
// for tok := range m.Generate(ctx, "What is 2+2?", mlx.WithMaxTokens(128)) {
// fmt.Print(tok.Text)
// }
package mlx
//go:generate cmake -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DCMAKE_BUILD_TYPE=Release
//go:generate cmake --build build --parallel
//go:generate cmake --install build