Langflow is a powerful tool for building and deploying AI-powered agents and workflows.
http://www.langflow.org
* ✨ (NodeOutputfield/index.tsx): Introduce memoization for IconComponent, Button components, and OutputComponent for performance optimization 🔧 (NodeOutputfield/index.tsx): Change the import of 'useEffect' to 'useCallback' for better performance and to prevent unnecessary re-renders 🔧 (NodeOutputfield/index.tsx): Refactor the 'NodeOutputField' component to use useMemo for selective store subscriptions and computed values to improve performance and avoid unnecessary recalculations 🔧 (NodeOutputfield/index.tsx): Refactor the 'handleUpdateOutputHide' function to use useCallback for better performance and to prevent unnecessary re-renders 🔧 (NodeOutputfield/index.tsx): Refactor the 'useEffect' hook to include dependencies and prevent unnecessary re-renders 🔧 (NodeOutputfield/index.tsx): Refactor the 'Handle' component to use useMemo for memoization and performance optimization ✨ (NodeOutputfield/index.tsx): Refactor NodeOutputField component to improve readability and maintainability by extracting button and tooltip components into separate reusable components, and optimizing the structure of the output field rendering. 📝 (RenderInputParameters/index.tsx): Move sortToolModeFields import to the top of the file for better organization and readability. ✨ (GenericNode/index.tsx): Introduce memoization to optimize rendering performance by memoizing components and values 🔧 (GenericNode/index.tsx): Add useCallback to handleUpdateCode and handleUpdateCodeWShortcut functions for better performance and prevent unnecessary re-renders 📝 (GenericNode/index.tsx): Refactor code to use useEffect and useCallback hooks for better performance and readability 📝 (GenericNode/index.tsx): Refactor code to improve component structure and readability by extracting repeated logic into separate functions using useCallback 📝 (GenericNode/index.tsx): Refactor code to optimize rendering logic and improve maintainability by using memoization with React.memo ✨ (sort-tool-mode-field.ts): introduce a new helper function sortToolModeFields to sort fields based on tool mode status and field order array * 📝 (NodeOutputfield/index.tsx): add missing newline before ShadTooltip component for better code readability ✨ (handleRenderComponent/index.tsx): Add memoization to HandleContent component for performance optimization ♻️ (handleRenderComponent/index.tsx): Refactor HandleContent component to use useCallback and useMemo hooks for better code readability and maintainability 🔧 (handleRenderComponent/index.tsx): Refactor code to improve readability and maintainability by updating function signatures, using hooks more efficiently, and organizing code structure. ✨ (file.ts): refactor handleMouseDown function to use useCallback hook for better performance and memoization ♻️ (file.ts): refactor handleClick function to use useCallback hook for better performance and memoization ♻️ (handleRenderComponent/index.tsx): Refactor handleRenderComponent to improve code readability and maintainability by extracting callback functions into separate useCallback hooks and using memoization for validation function. * improve memo in several components * ✨ (handleRenderComponent/index.tsx): add data-testid attribute to handle element for improved testing and accessibility * ✨ (toolbar-button.tsx): add data-testid prop to ToolbarButton component for better testing capabilities 📝 (index.tsx): add data-testid attribute to various ToolbarButton components for better testability * ✨ (NodeOutputfield/index.tsx): Add onClick event handler to the InspectButton component to trigger a function when the button is clicked. * ✅ (freeze.spec.ts): add test case for clicking on "Close" button in the modal to ensure proper functionality * 📝 (nodeToolbarComponent/index.tsx): remove unnecessary dataTestId attribute from freeze-path-button to clean up code and improve readability * 🐛 (GenericNode/index.tsx): Fix potential error when outputs is null or undefined by adding optional chaining 🐛 (auto-save-off.spec.ts): Update selector for "Saved" text to target the last occurrence 🐛 (auto-save-off.spec.ts): Update selector for "Unsaved changes will be permanently lost." text to handle dynamic rendering 🐛 (auto-save-off.spec.ts): Update selector for "NVIDIA" text to ensure it is not visible 🐛 (auto-save-off.spec.ts): Update drag and drop logic for NVIDIA model to ensure correct behavior 🐛 (auto-save-off.spec.ts): Update hover logic and add component button handling for NVIDIA model to ensure correct behavior * ✨ (parameterRenderComponent/index.tsx): Refactor ParameterRenderComponent to improve performance by memoizing components and props, and using useCallback and useMemo for better optimization. 📝 (ui/disclosure.tsx): Update imports and add new React hooks for better code organization and performance 📝 (ui/disclosure.tsx): Refactor DisclosureProvider component to use useCallback and useMemo for better performance 📝 (ui/disclosure.tsx): Refactor DisclosureTrigger component to use useCallback and useMemo for better performance 📝 (ui/disclosure.tsx): Refactor DisclosureContent component to use useCallback and useMemo for better performance 📝 (ui/disclosure.tsx): Refactor Disclosure component to use memo for better performance 📝 (ui/disclosure.tsx): Refactor DisclosureTrigger component to use memo for better performance 📝 (ui/disclosure.tsx): Refactor DisclosureContent component to use memo for better performance 📝 (ui/disclosure.tsx): Refactor DisclosureProvider component to use memo for better performance 📝 (nodeToolbarComponent/index.tsx): Refactor NodeToolbarComponent to use useCallback and useMemo for better performance * ✨ (use-handle-new-value.tsx): Memoize postTemplateValue and updateNodeState functions to prevent unnecessary re-renders and improve performance 📝 (use-handle-new-value.tsx): Memoize handleOnNewValue function to optimize performance by preventing unnecessary re-renders and improve code readability --------- Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com> |
||
|---|---|---|
| .devcontainer | ||
| .github | ||
| .vscode | ||
| deploy | ||
| docker | ||
| docker_example | ||
| docs | ||
| scripts | ||
| src | ||
| test-results | ||
| .env.example | ||
| .eslintrc.json | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| DEVELOPMENT.md | ||
| eslint.config.js | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| README.ES.md | ||
| README.FR.md | ||
| README.ja.md | ||
| README.KR.md | ||
| README.md | ||
| README.PT.md | ||
| README.zh_CN.md | ||
| render.yaml | ||
| uv.lock | ||
Langflow is a low-code app builder for RAG and multi-agent AI applications. It’s Python-based and agnostic to any model, API, or database.
Docs - Free Cloud Service - Self Managed
✨ Core features
- Python-based and agnostic to models, APIs, data sources, or databases.
- Visual IDE for drag-and-drop building and testing of workflows.
- Playground to immediately test and iterate workflows with step-by-step control.
- Multi-agent orchestration and conversation management and retrieval.
- Free cloud service to get started in minutes with no setup.
- Publish as an API or export as a Python application.
- Observability with LangSmith, LangFuse, or LangWatch integration.
- Enterprise-grade security and scalability with free DataStax Langflow cloud service.
- Customize workflows or create flows entirely just using Python.
- Ecosystem integrations as reusable components for any model, API or database.
📦 Quickstart
- Install with uv (recommended) (Python 3.10 to 3.12):
uv pip install langflow
- Install with pip (Python 3.10 to 3.12):
pip install langflow
- Cloud: DataStax Langflow is a hosted environment with zero setup. Sign up for a free account.
- Self-managed: Run Langflow in your environment. Install Langflow to run a local Langflow server, and then use the Quickstart guide to create and execute a flow.
- Hugging Face: Clone the space using this link to create a Langflow workspace.
⭐ Stay up-to-date
Star Langflow on GitHub to be instantly notified of new releases.
👋 Contribute
We welcome contributions from developers of all levels. If you'd like to contribute, please check our contributing guidelines and help make Langflow more accessible.

