e071084ebe
govulncheck / govulncheck (push) Waiting to run
Harness (E2E) / Harnesses (mock LLM) (push) Waiting to run
Harness (E2E) / Provider harnesses (live LLM conformance) (push) Waiting to run
Lint / golangci-lint (push) Waiting to run
Run Tests / Unit Tests (push) Waiting to run
Run Tests / Etcd Integration Tests (push) Waiting to run
4.3 KiB
4.3 KiB
Quick Start
Get up and running with go-micro in under 5 minutes.
Install
The recommended way is the precompiled binary — no Go toolchain required:
curl -fsSL https://go-micro.dev/install.sh | sh
Or, if you have Go and prefer to build from source:
go install go-micro.dev/v6/cmd/micro@latest
If the installer finishes but your shell cannot find micro, open Install troubleshooting before creating your first service.
Create Your First Service
# Create a new service
micro new helloworld
cd helloworld
# Review the generated code
ls -la
# Run locally with hot reload
micro run
# Test it
curl -X POST http://localhost:8080/api/helloworld/Helloworld.Call \
-H "Content-Type: application/json" \
-d '{"name": "World"}'
Next Steps
You now have the service half of the services → agents → workflows lifecycle running locally. Keep the on-ramp going in this order:
- Install troubleshooting - verify the binary installer or
go install,PATH,micro --version, and the no-secret smoke path. micro agent demo- print the provider-free first-agent demo command and the next docs steps from the installed CLI.micro agent quickcheck(ormicro agent debug) - print the short recovery map when scaffold → run → chat → inspect stalls.micro examples- print the maintained provider-free runnable examples in copy/paste order.micro zero-to-hero- print the maintained one-command no-secret lifecycle harness and runnable examples.- Examples wayfinding index - choose the smallest no-secret first-agent, maintained 0→hero support reference, and next interop examples from one map.
- Smallest first-agent example - run a mock-model, no-secret agent before adding provider keys.
- No-secret first-agent transcript - run a useful support agent with a mock model before setting up a provider key.
- Your First Agent - turn this service into an agent-callable tool, chat with it, and learn the
micro agent preflight→micro run→micro chatloop. - Debugging your agent - use
micro inspect agent <name>to inspect service registration, tool calls, run history, memory, provider failures, and flow handoffs when the agent does something surprising. - 0→hero Reference - walk the maintained scaffold → run → chat → inspect → deploy dry-run path that proves services, agents, and workflows together.
After that first-agent path, branch out to:
- Full Tutorial - In-depth guide
- Examples - Runnable examples mapped to services, agents, and workflows
- API Reference - Complete API docs
- Deployment - Deploy to production
Common Patterns
RPC Service
package main
import (
"context"
"go-micro.dev/v6"
)
type Greeter struct{}
func (g *Greeter) Hello(ctx context.Context, req *Request, rsp *Response) error {
rsp.Message = "Hello " + req.Name
return nil
}
func main() {
service := micro.NewService("greeter")
service.Handle(new(Greeter))
service.Run()
}
Pub/Sub Event Handler
import (
"context"
"go-micro.dev/v6"
)
func main() {
service := micro.NewService("subscriber")
// Subscribe to events
micro.RegisterSubscriber("user.created", service.Server(),
func(ctx context.Context, event *UserCreatedEvent) error {
// Handle the event here.
return nil
},
)
service.Run()
}
Publishing Events
publisher := micro.NewEvent("user.created", client)
publisher.Publish(ctx, &UserCreatedEvent{
Email: "user@example.com",
})
Get Help
- Discord Community - Chat with other users
- GitHub Issues - Report bugs or request features
- Documentation - Complete docs