feat: build Go-based SearXNG-compatible search service

Implement an API-first Go rewrite with local engine adapters, upstream fallback, and Nix-based tooling so searches can run without matching the original UI while preserving response compatibility.

Made-with: Cursor
This commit is contained in:
Franz Kafka 2026-03-20 20:34:08 +01:00
parent 7783367c71
commit dc44837219
32 changed files with 3330 additions and 0 deletions

20
internal/search/types.go Normal file
View file

@ -0,0 +1,20 @@
package search
import "github.com/ashie/gosearch/internal/contracts"
// Re-export the JSON contract types so the rest of the code can stay in the
// `internal/search` namespace without creating an import cycle.
type OutputFormat = contracts.OutputFormat
const (
FormatHTML = contracts.FormatHTML // accepted for compatibility (not yet implemented)
FormatJSON = contracts.FormatJSON
FormatCSV = contracts.FormatCSV
FormatRSS = contracts.FormatRSS
)
type SearchRequest = contracts.SearchRequest
type SearchResponse = contracts.SearchResponse
type MainResult = contracts.MainResult