{"id":15442542,"url":"https://github.com/langstream/langstream","last_synced_at":"2025-04-12T16:43:52.060Z","repository":{"id":189148622,"uuid":"659786592","full_name":"LangStream/langstream","owner":"LangStream","description":"LangStream. Event-Driven Developer Platform for Building and Running LLM AI Apps. Powered by Kubernetes and Kafka.","archived":false,"fork":false,"pushed_at":"2024-07-03T19:47:17.000Z","size":124002,"stargazers_count":414,"open_issues_count":67,"forks_count":33,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-03T19:12:42.899Z","etag":null,"topics":["genai","gpt-4","huggingface","kafka","kafka-connect","kubernetes","langchain","llamaindex","llm","openai","python","vectordb"],"latest_commit_sha":null,"homepage":"https://langstream.ai","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LangStream.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}},"created_at":"2023-06-28T14:56:51.000Z","updated_at":"2025-03-20T17:16:45.000Z","dependencies_parsed_at":"2023-09-23T10:38:43.084Z","dependency_job_id":"b80c3ff6-f5d7-4acc-b5c6-843ba7640154","html_url":"https://github.com/LangStream/langstream","commit_stats":{"total_commits":735,"total_committers":15,"mean_commits":49.0,"dds":0.5659863945578232,"last_synced_commit":"88793bcf759607a88c223f6eb69688c44da8c5a0"},"previous_names":["langstream/langstream"],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangStream%2Flangstream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangStream%2Flangstream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangStream%2Flangstream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangStream%2Flangstream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LangStream","download_url":"https://codeload.github.com/LangStream/langstream/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248599870,"owners_count":21131381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["genai","gpt-4","huggingface","kafka","kafka-connect","kubernetes","langchain","llamaindex","llm","openai","python","vectordb"],"created_at":"2024-10-01T19:28:25.707Z","updated_at":"2025-04-12T16:43:52.033Z","avatar_url":"https://github.com/LangStream.png","language":"Java","readme":"# LangStream\n\n\u003cdiv class=\"column\" align=\"middle\"\u003e\n \u003cimg src=\"https://avatars.githubusercontent.com/u/142052382?s=200\u0026v=4\" alt=\"banner\"\u003e\n\u003c/div\u003e\n\u003cdiv class=\"column\" align=\"middle\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/LangStream/langstream\" alt=\"license\"/\u003e \n  \u003cimg alt=\"GitHub release (with filter)\" src=\"https://img.shields.io/github/v/release/LangStream/langstream\"\u003e\n   \u003ca href=\"https://join.slack.com/t/langstream/shared_invite/zt-21leloc9c-lNaGLdiecHuWU5N31L2AeQ\"\u003e\u003cimg src=\"https://img.shields.io/badge/Join-Slack-blue?logo=slack\u0026amp;logoColor=white\u0026style=flat-square\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\nCheck out our [website](https://langstream.ai).\n\nHave a question? Join our community on [Slack](https://join.slack.com/t/langstream/shared_invite/zt-21leloc9c-lNaGLdiecHuWU5N31L2AeQ) or [Linen](https://www.linen.dev/invite/langstream)!\n\nFor the complete documentation, go [here](https://docs.langstream.ai).\n\nGet the LangStream VS Code extension [here](https://marketplace.visualstudio.com/items?itemName=DataStax.langstream).\n\n\n## Contents\n\n* [LangStream](#langstream)\n  * [CLI](#cli)\n  * [Try the sample application](#try-the-sample-application)\n  * [Create your own application](#create)\n  * [Run LangStream on Kubernetes](#run-langstream-on-kubernetes)\n    * [Production-ready deployment](#production-ready-deployment)\n    * [Local deployment](#local-deployment)\n  * [Development](#development)\n\n## CLI\n\n\u003e **Warning**\n\u003e CLI requires Java 11+ to be already installed on your machine.\n\n### Installation\nThere are multiple ways to install the CLI.\n\n- MacOS:\n  - Homebrew\n  ```\n  brew install LangStream/langstream/langstream\n  ```\n  - Binary with curl\n  ```\n  curl -Ls \"https://raw.githubusercontent.com/LangStream/langstream/main/bin/get-cli.sh\" | bash\n  ```  \n\n- Unix:\n  - Binary with curl\n  ```\n  curl -Ls \"https://raw.githubusercontent.com/LangStream/langstream/main/bin/get-cli.sh\" | bash\n  ```  \n\nVerify the binary is available:\n```\nlangstream -V\n```\n\nRefer to the [CLI documentation](https://docs.langstream.ai/installation/langstream-cli) to learn more.\n\n\n## Try the sample application\n\nRun the sample Chat Completions application on-the-fly:\n```bash\nexport OPEN_AI_ACCESS_KEY=your-key-here\nlangstream docker run test \\\n   -app https://github.com/LangStream/langstream/blob/main/examples/applications/openai-completions \\\n   -s https://github.com/LangStream/langstream/blob/main/examples/secrets/secrets.yaml\n```\n\nIn a different terminal window:\n\n```bash\nlangstream gateway chat test -cg consume-output -pg produce-input -p sessionId=$(uuidgen)\n```\n\n![chat](https://langstream.ai/images/chatbot-us-presidents.gif)\n\n\nSee more sample applications in the [examples](https://github.com/LangStream/langstream/blob/main/examples/applications) folder.\n\n## Create your own application\n\nTo create your own application, refer to the [developer documentation](https://docs.langstream.ai/building-applications/development-environment).\n\n\n## Run LangStream on Kubernetes\nLangStream is production-ready, and it's highly suggested deploying it on a Kubernetes cluster.\nThe following Kubernetes distributions are supported:\n* Amazon EKS\n* Azure AKS\n* Google GKE\n* Minikube\n\nTo run a LangStream cluster, you need to the following *external* components:\n- Apache Kafka or Apache Pulsar cluster\n- S3 API-compatible storage or Azure Blob Storage (Amazon S3, Google Cloud Storage, Azure Blob Storage, MinIO)\n\n\n### Production-ready deployment\nTo install LangStream, you can use the `langstream` Helm chart:\n\n```\nhelm repo add langstream https://langstream.ai/charts\nhelm repo update\n```\n\nThen create the values file. At this point you already need the storage service to be up and running.\n\nIn case you're using S3, you can use the following values:\n```yaml\ncodeStorage:\n  type: s3\n  configuration:\n    access-key: \u003caws-access-key\u003e\n    secret-key: \u003caws-secret-key\u003e\n```\n\nFor Azure:\n```yaml\ncodeStorage:\n  type: azure\n  configuration:\n    endpoint: https://\u003cstorage-account\u003e.blob.core.windows.net\n    container: langstream\n    storage-account-name: \u003cstorage-account\u003e\n    storage-account-key: \u003cstorage-account-key\u003e\n```\n\nNow install LangStream with it:\n```\nhelm install -n langstream --create-namespace langstream langstream/langstream --values values.yaml\nkubectl wait -n langstream deployment/langstream-control-plane --for condition=available --timeout=300s\n```\n\n### Local deployment\n\nTo create a local LangStream cluster, it's recommended to use [minikube](https://minikube.sigs.k8s.io/docs/start/).\n`mini-langstream` comes in help for installing and managing your local cluster.\n\nTo install `mini-langstream`:\n- MacOS:\n```bash\nbrew install LangStream/langstream/mini-langstream\n```\n\n- Unix:\n```bash\ncurl -Ls \"https://raw.githubusercontent.com/LangStream/langstream/main/mini-langstream/get-mini-langstream.sh\" | bash\n```\n\nThen startup the cluster:\n```bash\nmini-langstream start\n```\n\nDeploy an application:\n```bash\nexport OPEN_AI_ACCESS_KEY=\u003cyour-openai-api-key\u003e\nmini-langstream cli apps deploy my-app -app https://github.com/LangStream/langstream/tree/main/examples/applications/openai-completions -s https://github.com/LangStream/langstream/blob/main/examples/secrets/secrets.yaml\n```\n\n\nTo stop the cluster:\n```bash\nmini-langstream delete\n```\n\nRefer to the [mini-langstream documentation](https://docs.langstream.ai/installation/get-started-minikube) to learn more.\n\n\n## Development\n\n\nRequirements for building the project:\n* Docker\n* Java 17\n* Git\n* Python 3.11+ and PIP\n\nIf you want to test local code changes, you can use `mini-langstream`.\n\n```bash\nmini-langstream dev start\n```\n\nThis command will build the images in the `minikube` context and install all the LangStream services with the snapshot image.\n\nOnce the cluster is running, if you want to build abd load a new version of a specific service you can run:\n\n```bash\nmini-langstream dev build \u003cservice\u003e\n```\n\nor for all the services\n```bash\nmini-langstream dev build\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flangstream%2Flangstream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flangstream%2Flangstream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flangstream%2Flangstream/lists"}