{"data":{"slug":"unstructured-io-unstructured","name":"unstructured","tagline":"Convert documents to structured data effortlessly","github_url":"https://github.com/Unstructured-IO/unstructured","owner":"Unstructured-IO","repo":"unstructured","owner_avatar_url":"https://avatars.githubusercontent.com/u/108372208?v=4","primary_language":"HTML","stars":15446,"forks":1330,"topics":["data-pipelines","deep-learning","document-image-analysis","document-image-processing","document-parser","document-parsing","docx","donut","information-retrieval","langchain","llm","machine-learning","ml","natural-language-processing","nlp","ocr","pdf","pdf-to-json","pdf-to-text","preprocessing"],"archived":false,"github_pushed_at":"2026-09-15T00:40:11+00:00","maintenance_label":"Very active","stars_delta_30d":208,"url":"https://www.graphcanon.com/tools/unstructured-io-unstructured","markdown_url":"https://www.graphcanon.com/tools/unstructured-io-unstructured.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/unstructured-io-unstructured","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=unstructured-io-unstructured","description":"Convert documents to structured data effortlessly. Unstructured is open-source ETL solution for transforming complex documents into clean, structured formats for language models.  Visit our website to learn more about our enterprise grade Platform product for production grade workflows, partitioning, enrichments, chunking and embedding.","homepage_url":"https://www.unstructured.io/","license":"Apache-2.0","open_issues":309,"watchers":78,"ai_summary":"Unstructured is an open-source ETL solution for transforming complex documents into clean, structured formats for language models, supporting workflows like partitioning, enrichments, chunking, and embedding.","readme_excerpt":"## :eight_pointed_black_star: Quick Start\n\nThere are several ways to use the `unstructured` library:\n* [Run the library in a container](https://github.com/Unstructured-IO/unstructured#run-the-library-in-a-container) or\n* Install the library\n    1. [Install from PyPI](https://github.com/Unstructured-IO/unstructured#installing-the-library)\n    2. [Install for local development](https://github.com/Unstructured-IO/unstructured#installation-instructions-for-local-development)\n* For installation with `conda` on Windows system, please refer to the [documentation](https://unstructured-io.github.io/unstructured/installing.html#installation-with-conda-on-windows)\n\n---\n\n# this will drop you into a bash shell where the Docker image is running\ndocker exec -it unstructured bash\n```\n\nYou can also build your own Docker image. Note that the base image is `wolfi-base`, which is\nupdated regularly. If you are building the image locally, it is possible `docker-build` could\nfail due to upstream changes in `wolfi-base`.\n\nIf you only plan on parsing one type of data you can speed up building the image by commenting out some\nof the packages/requirements necessary for other data types. See Dockerfile to know which lines are necessary\nfor your use case.\n\n```bash\nmake docker-build\n\n---\n\n# this will drop you into a bash shell where the Docker image is running\nmake docker-start-bash\n```\n\nOnce in the running container, you can try things directly in Python interpreter's interactive mode.\n```bash\n\n---\n\n### Installation Instructions for Local Development\n\nThe following instructions are intended to help you get up and running with `unstructured`\nlocally if you are planning to contribute to the project.\n\nThis project uses [uv](https://docs.astral.sh/uv/) for dependency management. Install it first:\n\n```bash","github_created_at":"2022-09-26T21:53:41+00:00","created_at":"2026-07-07T22:37:07.76596+00:00","updated_at":"2026-09-20T04:28:36.485655+00:00","categories":[{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"},{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"}],"tags":[{"slug":"data-pipelines","name":"data-pipelines"},{"slug":"deep-learning","name":"deep-learning"},{"slug":"document-image-analysis","name":"document-image-analysis"},{"slug":"document-image-processing","name":"document-image-processing"},{"slug":"document-parser","name":"document-parser"},{"slug":"document-parsing","name":"document-parsing"},{"slug":"docx","name":"docx"},{"slug":"donut","name":"donut"}],"trust":{"provenance":{"is_fork":false,"github_id":541798154,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-18T08:08:20.171Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":8,"days_since_push":3,"last_release_at":"2026-09-14T16:28:12Z","stars_delta_30d":208,"open_issues_delta_30d":32},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-09-18T08:08:22.585Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-18T08:08:18.980Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-09-18T08:08:18.980Z","managed_saas":false},"has_cli":{"value":true,"source":"pyproject.toml:[project.scripts]","observed_at":"2026-09-18T08:08:18.980Z"},"languages":{"value":["html","python"],"source":"github.language+pyproject.toml","observed_at":"2026-09-18T08:08:18.980Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-09-18T08:08:18.980Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-09-18T08:08:18.980Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["When you need to convert a variety of document types, including PDFs and images, into structured data formats suitable for language models.","If your workflow involves preprocessing documents for machine learning tasks, such as information retrieval or natural language processing.","For enterprise-grade workflows that require partitioning, enrichments, chunking, and embedding of documents.","When you prefer an open-source solution and want to customize the tool for specific document types by modifying the Dockerfile."],"when_not_to_use":["If you are working with simple text files that do not require complex parsing or enrichment processes.","When you need a tool that supports real-time document processing, as Unstructured is optimized for batch processing and may not be suitable for real-time applications.","If you are looking for a solution that does not require setting up a Docker environment or managing dependencies with uv.","When you need a tool that supports a wider range of document types beyond PDFs and images, as Unstructured may not cover all your document format needs."],"source":"enrich:decision_facts","observed_at":"2026-09-18T11:49:28.001Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"Unstructured is an open-source ETL solution for transforming complex documents into clean, structured formats for language models, supporting workflows like partitioning, enrichments, chunking, and embedding."}]}}