{"id":34890182,"url":"https://github.com/turboline-ai/turbostream","last_synced_at":"2026-01-31T05:04:08.004Z","repository":{"id":328682399,"uuid":"1099828533","full_name":"turboline-ai/turbostream","owner":"turboline-ai","description":"Analyze your realtime streaming data with LLM","archived":false,"fork":false,"pushed_at":"2026-01-24T19:13:17.000Z","size":20006,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-25T08:19:25.236Z","etag":null,"topics":["ai","golang","llm","real-time","realtime","streaming"],"latest_commit_sha":null,"homepage":"https://turboline.ai/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/turboline-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-19T13:50:47.000Z","updated_at":"2026-01-24T19:13:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/turboline-ai/turbostream","commit_stats":null,"previous_names":["turboline-ai/turbostream"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/turboline-ai/turbostream","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turboline-ai%2Fturbostream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turboline-ai%2Fturbostream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turboline-ai%2Fturbostream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turboline-ai%2Fturbostream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/turboline-ai","download_url":"https://codeload.github.com/turboline-ai/turbostream/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turboline-ai%2Fturbostream/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28929865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","golang","llm","real-time","realtime","streaming"],"created_at":"2025-12-26T05:00:36.330Z","updated_at":"2026-01-31T05:04:07.998Z","avatar_url":"https://github.com/turboline-ai.png","language":"Go","funding_links":[],"categories":["The Data Science Toolbox","Table of Contents"],"sub_categories":["Miscellaneous Tools"],"readme":"# TurboStream\n\n[![License: MPL 2.0](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)\n\n**Real-time data streaming backend with AI-powered analysis**\n\nHigh-performance Go backend providing REST APIs and WebSocket streaming for monitoring high-velocity data streams with LLM analysis.\n\n---\n\n## Quick Start Video\n\n\u003e 📹 **Coming Soon:** Watch our quick start guide on YouTube\n\n---\n\n## Get Started in 3 Steps\n\n### 1. Clone \u0026 Configure\n\n```bash\ngit clone https://github.com/turboline-ai/turbostream.git\ncd turbostream\ncp .env.local.example .env.local\n```\n\n### 2. Set Up Your Environment\n\nEdit `.env.local` with your credentials:\n\n```bash\n# Database (Required)\nMONGODB_URI=your-mongodb-connection-string\nMONGODB_DB_NAME=turbostream\n\n# Security (Required)\nJWT_SECRET=$(openssl rand -hex 64)\nENCRYPTION_KEY=$(openssl rand -hex 32)\n\n# LLM Provider (Choose one)\nDEFAULT_AI_PROVIDER=anthropic\nANTHROPIC_API_KEY=sk-ant-your-key\n```\n\n**Need MongoDB?** Get a free cluster at [mongodb.com/cloud/atlas](https://www.mongodb.com/cloud/atlas)\n\n**Need an LLM API key?** See [LLM Providers](#llm-providers) below\n\n### 3. Run the Server\n\n```bash\ngo run ./cmd/server\n```\n\nServer starts at `http://localhost:7210` ✨\n\n---\n\n## LLM Providers\n\nTurboStream supports **Bring Your Own Model (BYOM)**. Configure any provider by setting environment variables:\n\n| Provider | Get API Key | Env Vars |\n|----------|-------------|----------|\n| **Anthropic (Claude)** | [console.anthropic.com](https://console.anthropic.com/) | `ANTHROPIC_API_KEY`, `ANTHROPIC_MODEL` |\n| **OpenAI** | [platform.openai.com](https://platform.openai.com/api-keys) | `OPENAI_API_KEY`, `OPENAI_MODEL` |\n| **Azure OpenAI** | [portal.azure.com](https://portal.azure.com) | `AZURE_OPENAI_*` |\n| **Google Gemini** | [aistudio.google.com](https://aistudio.google.com/apikey) | `GOOGLE_API_KEY`, `GOOGLE_MODEL` |\n| **Mistral** | [console.mistral.ai](https://console.mistral.ai/) | `MISTRAL_API_KEY`, `MISTRAL_MODEL` |\n| **xAI (Grok)** | [console.x.ai](https://console.x.ai/) | `XAI_API_KEY`, `XAI_MODEL` |\n| **Ollama (Local)** | [ollama.com](https://ollama.com/) | `OLLAMA_BASE_URL`, `OLLAMA_MODEL` |\n\n**Example** (Anthropic):\n```bash\nDEFAULT_AI_PROVIDER=anthropic\nANTHROPIC_API_KEY=sk-ant-your-key-here\nANTHROPIC_MODEL=claude-3-5-sonnet-20241022\n```\n\n---\n\n## Deploy to Production\n\n### Railway (Recommended)\n\n\u003e 📹 **Coming Soon:** Watch our Railway deployment guide\n\n1. **Push your code** to GitHub\n2. **Connect to Railway**: [railway.app](https://railway.app)\n3. **Add environment variables** in Railway dashboard\n4. **Deploy** - Railway auto-detects your `Dockerfile`\n\n[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/new/template?template=https://github.com/turboline-ai/turbostream)\n\n**Need help?** See our [deployment guide](https://turboline.ai/docs/deployment)\n\n### Docker\n\n```bash\n# Build\ndocker build -t turbostream .\n\n# Run\ndocker run -p 7210:7210 --env-file .env.local turbostream\n```\n\n---\n\n## API Documentation\n\n📚 **Complete API Reference**: [turboline.ai/docs/api](https://turboline.ai/docs/api)\n\n### Quick Reference\n\n**Authentication:**\n- `POST /api/auth/register` - Register new user\n- `POST /api/auth/login` - Login and get JWT token\n\n**LLM:**\n- `POST /api/llm/query` - Query LLM with feed data\n- `POST /api/llm/query/stream` - Stream LLM responses (SSE)\n- `GET /api/llm/providers` - List available LLM providers\n\n**Marketplace:**\n- `GET /api/marketplace` - List all feeds\n- `POST /api/marketplace` - Create new feed (requires auth)\n\n**WebSocket:**\n- `ws://localhost:7210/ws` - Real-time streaming\n\nFor detailed API docs, examples, and WebSocket protocol, visit [turboline.ai/docs/api](https://turboline.ai/docs/api)\n\n---\n\n## Features\n\n### Core Capabilities\n- **JWT Authentication** - Secure user management with 2FA support\n- **WebSocket Streaming** - Real-time data and LLM token streaming\n- **Multi-Provider LLM** - Support for 7+ LLM providers (BYOM)\n- **Feed Marketplace** - Discover and manage data feeds\n- **Topic Routing** - Isolated LLM intelligence per topic (e.g., BTC-USD, ETH-USD)\n- **Context Management** - Intelligent data accumulation for AI analysis\n- **Token Optimization** - TSLN format reduces tokens by 40-60%\n\n### Security\n- JWT-based authentication\n- 2FA with TOTP and backup codes\n- Encrypted sensitive data\n- Session management\n- Login activity tracking\n\n---\n\n## Clients\n\n### Terminal UI\n\nA keyboard-driven terminal interface for TurboStream:\n\n**Repository:** [github.com/turboline-ai/turbostream-tui](https://github.com/turboline-ai/turbostream-tui)\n\n```bash\ngit clone https://github.com/turboline-ai/turbostream-tui.git\ncd turbostream-tui\ngo run .\n```\n\n### Web Frontend (Commercial)\n\nModern web interface with responsive design and user management.\n\n**Contact:** [turboline.ai](https://turboline.ai) for commercial licensing\n\n---\n\n## Development\n\n### Project Structure\n\n```\nturbostream/\n├── cmd/server/          # Main application entry point\n├── internal/\n│   ├── config/          # Configuration loading\n│   ├── db/              # MongoDB client\n│   ├── http/            # HTTP handlers and routing\n│   ├── models/          # Data models\n│   ├── services/        # Business logic (auth, LLM, etc.)\n│   └── socket/          # WebSocket manager\n├── Dockerfile\n├── railway.toml\n└── go.mod\n```\n\n### Running Tests\n\n```bash\ngo test ./...              # Run all tests\ngo test -cover ./...       # With coverage\ngo test ./internal/services # Specific package\n```\n\n### Code Quality\n\n```bash\ngo fmt ./...               # Format code\ngolangci-lint run          # Lint\ngosec ./...                # Security scan\n```\n\n---\n\n## Environment Variables Reference\n\n### Required\n\n```bash\nMONGODB_URI=mongodb://...           # MongoDB connection string\nMONGODB_DB_NAME=turbostream         # Database name\nJWT_SECRET=...                      # Generate with: openssl rand -hex 64\nENCRYPTION_KEY=...                  # Generate with: openssl rand -hex 32\nDEFAULT_AI_PROVIDER=anthropic       # Choose your LLM provider\nANTHROPIC_API_KEY=sk-ant-...        # Your provider's API key\n```\n\n### Optional\n\n```bash\nPORT=7210                           # Server port (Railway sets this)\nCORS_ORIGIN=http://localhost:3000   # Frontend URL\nLLM_MAX_TOKENS=1024                 # Max LLM response tokens\nLLM_TEMPERATURE=0.7                 # LLM creativity (0.0-2.0)\nLLM_CONTEXT_LIMIT=50                # Max feed entries in context\nREQUEST_TIMEOUT_MS=15000            # Request timeout\nTOKEN_QUOTA_PER_MONTH=1000000       # Token usage quota\n```\n\n**Full configuration guide:** [turboline.ai/docs/configuration](https://turboline.ai/docs/configuration)\n\n---\n\n## Resources\n\n- 📚 **API Documentation**: [turboline.ai/docs/api](https://turboline.ai/docs/api)\n- 🚀 **Deployment Guide**: [turboline.ai/docs/deployment](https://turboline.ai/docs/deployment)\n- 🔧 **Configuration Guide**: [turboline.ai/docs/configuration](https://turboline.ai/docs/configuration)\n- 💬 **Community Discussions**: [GitHub Discussions](https://github.com/turboline-ai/turbostream/discussions)\n- 🐛 **Report Issues**: [GitHub Issues](https://github.com/turboline-ai/turbostream/issues)\n- 📺 **Video Tutorials**: [YouTube](https://youtube.com/@turboline-ai)\n\n---\n\n## License\n\nLicensed under the **Mozilla Public License 2.0 (MPL-2.0)**.\n\nSee [LICENSE](LICENSE) for details.\n\n---\n\n## Contributing\n\nWe welcome contributions! Please:\n\n1. Fork the repository\n2. Create a feature branch from `main`\n3. Make your changes with clear commit messages\n4. Test thoroughly\n5. Submit a pull request\n\n**Contribution guide:** [turboline.ai/docs/contributing](https://turboline.ai/docs/contributing)\n\n---\n\n**Made with ❤️ by [Turboline AI](https://turboline.ai)**\n\nCopyright 2024-2026 Turboline AI. All rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturboline-ai%2Fturbostream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fturboline-ai%2Fturbostream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturboline-ai%2Fturbostream/lists"}