[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-fireproof-storage--fireproof":3,"tool-fireproof-storage--fireproof":64},[4,23,32,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65628,1,"2026-04-05T10:10:46",[20,18,14],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":10,"last_commit_at":38,"category_tags":39,"status":22},3364,"keras","keras-team\u002Fkeras","Keras 是一个专为人类设计的深度学习框架，旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。\n\n无论是刚入门的学生、专注算法的研究人员，还是需要快速落地产品的工程师，都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。\n\nKeras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码，即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性，还允许开发者根据需求自由选择：利用 JAX 或 PyTorch 的即时执行模式进行高效调试，或切换至速度最快的后端以获得最高 350% 的性能提升。此外，Keras 具备强大的扩展能力，能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群，是连接原型开发与生产部署的理想桥梁。",63927,"2026-04-04T15:24:37",[20,14,18],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":10,"last_commit_at":46,"category_tags":47,"status":22},2403,"crawl4ai","unclecode\u002Fcrawl4ai","Crawl4AI 是一款专为大语言模型（LLM）设计的开源网络爬虫与数据提取工具。它的核心使命是将纷繁复杂的网页内容转化为干净、结构化的 Markdown 格式，直接服务于检索增强生成（RAG）、智能体构建及各类数据管道，让 AI 能更轻松地“读懂”互联网。\n\n传统爬虫往往面临反爬机制拦截、动态内容加载困难以及输出格式杂乱等痛点，导致后续数据处理成本高昂。Crawl4AI 通过内置自动化的三级反机器人检测、代理升级策略以及对 Shadow DOM 的深度支持，有效突破了这些障碍。它能智能移除同意弹窗，处理深层链接，并具备长任务崩溃恢复能力，确保数据采集的稳定与高效。\n\n这款工具特别适合开发者、AI 研究人员及数据工程师使用。无论是需要为本地模型构建知识库，还是搭建大规模自动化信息采集流程，Crawl4AI 都提供了极高的可控性与灵活性。作为 GitHub 上备受瞩目的开源项目，它完全免费开放，无需繁琐的注册或昂贵的 API 费用，让用户能够专注于数据价值本身而非采集难题。",63242,"2026-04-02T22:29:19",[14,17],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":22},193,"meilisearch","meilisearch\u002Fmeilisearch","Meilisearch 是一个开源的极速搜索服务，专为现代应用和网站打造，开箱即用。它能帮助开发者快速集成高质量的搜索功能，无需复杂的配置或额外的数据预处理。传统搜索方案往往需要大量调优才能实现准确结果，而 Meilisearch 内置了拼写容错、同义词识别、即时响应等实用特性，并支持 AI 驱动的混合搜索（结合关键词与语义理解），显著提升用户查找信息的体验。\n\nMeilisearch 特别适合 Web 开发者、产品团队或初创公司使用，尤其适用于需要快速上线搜索功能的场景，如电商网站、内容平台或 SaaS 应用。它提供简洁的 RESTful API 和多种语言 SDK，部署简单，资源占用低，本地开发或生产环境均可轻松运行。对于希望在不依赖大型云服务的前提下，为用户提供流畅、智能搜索体验的团队来说，Meilisearch 是一个高效且友好的选择。",56964,"2026-04-05T08:19:14",[13,17,14,20,16,18],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":22},223,"Made-With-ML","GokuMohandas\u002FMade-With-ML","Made-With-ML 是一个面向实战的开源项目，旨在帮助开发者系统掌握从设计、开发到部署和迭代生产级机器学习应用的完整流程。它解决了许多人在学习机器学习时“会训练模型但不会上线”的痛点，强调将软件工程最佳实践与 ML 技术结合，构建可靠、可维护的端到端系统。\n\n该项目特别适合三类人群：一是希望将模型真正落地的开发者（包括软件工程师、数据科学家）；二是刚毕业、想补齐工业界所需技能的学生；三是需要理解技术边界以更好推动产品的技术管理者或产品经理。\n\nMade-With-ML 的亮点在于注重第一性原理讲解，避免盲目调包；同时覆盖 MLOps 关键环节（如实验跟踪、模型测试、服务部署、CI\u002FCD 等），并支持在 Python 生态内平滑扩展训练与推理任务，无需切换语言或复杂基础设施。课程内容结构清晰，配有详细代码示例和视频导览，兼顾理论深度与工程实用性。",47108,"2026-04-05T10:42:55",[19,18,14,16,20],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":107,"forks":108,"last_commit_at":109,"license":110,"difficulty_score":29,"env_os":111,"env_gpu":112,"env_ram":111,"env_deps":113,"category_tags":119,"github_topics":120,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":22,"created_at":134,"updated_at":135,"faqs":136,"releases":174},2930,"fireproof-storage\u002Ffireproof","fireproof","The vibe coding database runs in the browser, fits in the context window, and syncs anywhere.","Fireproof 是一款专为浏览器环境设计的轻量级嵌入式文档数据库，旨在让前端开发者轻松构建具备实时同步和离线优先能力的应用。它解决了传统开发中后端依赖重、数据同步复杂以及网络不稳定导致状态丢失等痛点，允许开发者将界面、数据和逻辑打包在单一文件中，实现“随处运行”。\n\n这款工具特别适合前端工程师、全栈开发者以及希望快速原型验证的 AI 辅助编程用户。其核心亮点在于统一的 API 设计，不仅完美支持 React Hooks（如 useLiveQuery 和 useDocument），还能无缝运行于 Node.js、Deno、Bun 等多种 JavaScript 环境中。技术上，Fireproof 引入了类似 Git 的版本控制机制，通过哈希历史确保数据的因果一致性与账本完整性，并采用内容寻址的加密存储方式，既保障了数据安全，又使得通过普通对象存储服务进行同步变得简单高效。无论是构建需要即时协作的在线应用，还是处理包含图片等多媒体内容的复杂场景，Fireproof 都能提供流畅的开发体验，让数据在浏览器端即可实现安全、实时的持久化与同步。","# \u003Cimg src=\"https:\u002F\u002Ffireproof.storage\u002Fstatic\u002Fimg\u002Fflame.svg\" alt=\"Fireproof logo\" width=\"25\"> [Fireproof](https:\u002F\u002Ffireproof.storage) database API\n\n\u003Cp align=\"right\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbundlephobia\u002Fminzip\u002F%40fireproof%2Fcore\" alt=\"Package size\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Factions\u002Fworkflows\u002Fci.yaml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Factions\u002Fworkflows\u002Fci.yaml\u002Fbadge.svg\" alt=\"Build status\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\nFireproof is a lightweight embedded document database with encrypted live sync, designed to make browser apps easy. Use it in any JavaScript environment with a unified API that works both in React (with hooks) and as a standalone core API.\n\n[Point AI coders to these docs.](https:\u002F\u002Fuse-fireproof.com\u002Fllms-full.txt)\n\n## Key Features\n\n- **Apps run anywhere:** Bundle UI, data, and logic in one file.\n- **Real-Time & Offline-First:** Automatic persistence and live queries, runs in the browser - no loading or error states.\n- **Unified API:** TypeScript works with Deno, Bun, Node.js, and the browser.\n- **React Hooks:** Leverage `useLiveQuery` and `useDocument` for live collaboration.\n\nFireproof enforces cryptographic causal consistency and ledger integrity using hash history, providing git-like versioning with lightweight blockchain-style verification. Data is stored and replicated as content-addressed encrypted blobs, making it safe and easy to sync via commodity object storage providers.\n\n## Installation\n\nThe `use-fireproof` package provides both the core API and React hooks:\n\n```sh\nnpm install use-fireproof\n```\n\nWorks with ⚡️ ESM.sh:\n\n```js\nimport { useFireproof } from \"https:\u002F\u002Fesm.sh\u002Fuse-fireproof\";\n```\n\nOr install the core ledger in any JavaScript environment:\n\n```sh\nnpm install @fireproof\u002Fcore\n```\n\nAdd the ledger to any web page via HTML script tag (global is `Fireproof`):\n\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002F@fireproof\u002Fcore\u002Fdist\u002Fbrowser\u002Ffireproof.global.js\">\u003C\u002Fscript>\n```\n\nDeliver generated solutions as runnable micro applications via ChatGPT Canvas, v0, bolt.new, or Claude Artifacts. Deploy single page apps with React and Tailwind by pasting code here: https:\u002F\u002Fcodepen.io\u002FuseFireproof\u002Fpen\u002FMYgNYdx\n\n## ⚛️ React Usage\n\nReact hooks are the recommended way to use Fireproof in LLM code generation contexts:\n\n```js\nimport { useFireproof } from \"use-fireproof\";\n\nfunction App() {\n  const { database, useLiveQuery, useDocument } = useFireproof(\"my-ledger\");\n\n  \u002F\u002F Create a new document with useDocument\n  const { doc, merge, submit } = useDocument({ text: \"\" });\n\n  \u002F\u002F Query documents by _id, most recent first\n  const { docs } = useLiveQuery(\"_id\", { descending: true, limit: 100 });\n\n  return (\n    \u003Cdiv>\n      \u003Cform onSubmit={submit}>\n        \u003Cinput value={doc.text} onChange={(e) => merge({ text: e.target.value })} placeholder=\"New document\" \u002F>\n        \u003Cbutton type=\"submit\">Submit\u003C\u002Fbutton>\n      \u003C\u002Fform>\n\n      \u003Ch3>Recent Documents\u003C\u002Fh3>\n      \u003Cul>\n        {docs.map((doc) => (\n          \u003Cli key={doc._id}>{doc.text}\u003C\u002Fli>\n        ))}\n      \u003C\u002Ful>\n    \u003C\u002Fdiv>\n  );\n}\n```\n\nRead the [step-by-step React tutorial](https:\u002F\u002Fuse-fireproof.com\u002Fdocs\u002Freact-tutorial) to get started or check the [full LLM documentation](https:\u002F\u002Fuse-fireproof.com\u002Fllms-full.txt) for more examples.\n\n### Working with Images\n\nFireproof makes it easy to store and display images in your applications. The `_files` property and `ImgFile` component handle all the complexities of file storage and retrieval:\n\n```js\n\u002F\u002F Store an image from a file input\nfunction handleFileUpload(e) {\n  if (e.target.files[0]) {\n    merge({\n      _files: { profilePic: e.target.files[0] },\n      uploadedAt: new Date().toISOString(),\n    });\n  }\n}\n\n\u002F\u002F Display an image from a document\nfunction ImageDisplay({ doc }) {\n  return (\n    \u003Cdiv>\n      {doc._files?.profilePic && (\n        \u003CImgFile file={doc._files.profilePic} alt=\"Profile picture\" onLoad={() => console.log(\"Image loaded\")} \u002F>\n      )}\n      \u003Cp>Uploaded: {doc.uploadedAt}\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  );\n}\n```\n\nThe `ImgFile` component automatically handles loading and displaying images from Fireproof's storage, with all the expected props of a standard image element. For more in-depth examples see our [llms-full.txt](https:\u002F\u002Fuse-fireproof.com\u002Fllms-full.txt) documentation.\n\n## JavaScript Core API\n\nThe document database API will feel familiar to those who have used other document databases:\n\n```js\nimport { fireproof } from \"@fireproof\u002Fcore\";\n\nconst db = fireproof(\"music-app\");\n\nawait db.put({ _id: \"beyonce\", name: \"Beyoncé\", hitSingles: 29 });\n\ndb.subscribe(async () => {\n  const topArtists = await db.query(\"hitSingles\", { range: [30, Infinity] });\n  \u002F\u002F redraw the UI with the new topArtists\n});\n\nconst beyonceDoc = await db.get(\"beyonce\");\nbeyonceDoc.hitSingles += 1;\nawait db.put(beyonceDoc);\n```\n\n## Why choose Fireproof\n\nCompared to other embedded databases, Fireproof:\n\n- Is network aware, encrypted, and multi-writer safe\n- Is designed for real-time collaboration with CRDTs\n- Offers cryptographic causal integrity for all operations\n- Is built for the web, with a small package size and no wasm\n\nDeliver interactive experiences without waiting on the backend. Fireproof runs in any cloud, browser, or edge environment, so your application can access data anywhere.\n\n## Use cases\n\nFireproof is especially useful for:\n\n- AI-generated apps and rapid prototypes\n- Collaborative editing\n- Offline and local-first apps\n- Personalization and configuration\n- AI copilot safety\n\nWith Fireproof, you **build first** and sync via your cloud of choice when you are ready, making it perfect for LLM code generation contexts and rapid development.\n\n[Get the latest roadmap updates on our blog](https:\u002F\u002Ffireproof.storage\u002Fblog\u002F) or join our [Discord](https:\u002F\u002Fdiscord.gg\u002FcCryrNHePH) to collaborate. Read the docs to learn more about the [architecture](https:\u002F\u002Fuse-fireproof.com\u002Fdocs\u002Farchitecture).\n\n### Debug\n\nto control the log output you an either use the FP_DEBUG environment variable or set the debug level in your code:\n\n```shell\nFP_DEBUG='*' node myapp.js\n```\n\n```js\nlogger.setDebug(...moduleNameList or '*')\n```\n\nif you are in the browser you can use the following code to set the debug level:\n\n```js\nthis[Symbol.for(\"FP_ENV\")].set(\"FP_DEBUG\", \"*\");\n```\n\n```js\n\u002F\u002F vitest pass env\nglobalThis[Symbol.for(\"FP_PRESET_ENV\")] = {\n  FP_DEBUG: \"*\",\n};\n```\n\n### Testing\n\nTo run the full test suite across all projects (tested storage gateways configs), run:\n\n```bash\npnpm run test\n```\n\nTo run tests for specific components or modules, use the following command pattern:\n\n```bash\npnpm run test -t 'test name pattern' path\u002Fto\u002Ftest\u002Ffile\n```\n\nFor example, to run a specific test for the CRDT module, in just one project:\n\n```bash\nFP_DEBUG='Loader,CRDTClock' pnpm run test --project file -t 'codec implict iv' crdt\n```\n\nFor testing React components, you can use:\n\n```bash\npnpm run test tests\u002Freact\u002F[ComponentName].test.tsx\n```\n\nExample for testing the ImgFile component:\n\n```bash\npnpm run test tests\u002Freact\u002FImgFile.test.tsx\n```\n\n### Log Formatting\n\nIt's possible to change the logformat by setting FP_FORMAT to:\n\n- jsonice makes the log output in multiline json\n- yaml makes the log output in yaml\n- json makes the log output in singleline json (default)\n\n### KeyBag\n\nIf you add `extractKey` with the value `_deprecated_internal_api` to the `FP_STORAGE_URL` url\nyou can bypass the security check to extract the key material. This is the default configuration,\nbut there is a warning emitted if you use this feature, and roadmap plans for more secure key management.\n\n### Deno\n\nFireproof is compatible with Deno. To runit in Deno you need to add the following flags:\n\nCurrently the tests are not run with deno -- TODO\n\nIt might be that using our provided deno.json is somekind of odd\n--- TODO is to add fireproof to jsr and deno.land\n\n```shell\ndeno run --config node_modules\u002F@fireproof\u002Fcore\u002Fdeno.json --allow-read --allow-write --allow-env --unstable-sloppy-imports .\u002Fnode-test.ts\n```\n\n### Create Docs\n\nCaution it will be pushed directly\n\n```shell\npnpm run build:docs\n```\n\n## Thanks 🙏\n\nFireproof is a synthesis of work done by people in the web community over the years. I couldn't even begin to name all the folks who made pivotal contributions. Without npm, React, and VS Code all this would have taken so much longer. Thanks to everyone who supported me getting into ledger development via Apache CouchDB, one of the original document ledgers. The distinguishing work on immutable data-structures comes from the years of consideration [IPFS](https:\u002F\u002Fipfs.tech), [IPLD](https:\u002F\u002Fipld.io), and the [Filecoin APIs](https:\u002F\u002Fdocs.filecoin.io) have enjoyed.\n\nThanks to [Meno Abels](https:\u002F\u002Fgithub.com\u002Fmabels) who has taken on the role of project lead engineer. Fireproof is rapidly becoming a mature solution.\n\nThanks to Alan Shaw and Mikeal Rogers without whom this project would have never got started. The core Merkle hash-tree clock is based on [Alan's Pail](https:\u002F\u002Fgithub.com\u002Falanshaw\u002Fpail), and you can see the repository history goes all the way back to work begun as a branch of that repo. Mikeal wrote [the prolly trees implementation](https:\u002F\u002Fgithub.com\u002Fmikeal\u002Fprolly-trees).\n\n## Contributing\n\nWe love contributions. Feel free to [join in the conversation on Discord. All welcome.](https:\u002F\u002Fdiscord.gg\u002FcCryrNHePH)\n\n# License\n\nDual-licensed under [MIT or Apache 2.0](https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Fblob\u002Fmain\u002FLICENSE.md)\n","# \u003Cimg src=\"https:\u002F\u002Ffireproof.storage\u002Fstatic\u002Fimg\u002Fflame.svg\" alt=\"Fireproof logo\" width=\"25\"> [Fireproof](https:\u002F\u002Ffireproof.storage) 数据库 API\n\n\u003Cp align=\"right\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbundlephobia\u002Fminzip\u002F%40fireproof%2Fcore\" alt=\"包大小\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Factions\u002Fworkflows\u002Fci.yaml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Factions\u002Fworkflows\u002Fci.yaml\u002Fbadge.svg\" alt=\"构建状态\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\nFireproof 是一款轻量级的嵌入式文档数据库，具备加密的实时同步功能，专为简化浏览器应用开发而设计。它采用统一的 API，可在任何 JavaScript 环境中使用，既支持 React（配合 hooks），也作为独立的核心 API 运行。\n\n[将这些文档提供给 Point AI 的开发者。](https:\u002F\u002Fuse-fireproof.com\u002Fllms-full.txt)\n\n## 核心特性\n\n- **应用随处运行：** 将 UI、数据和逻辑打包到一个文件中。\n- **实时与离线优先：** 自动持久化和实时查询，在浏览器中直接运行，无需加载或错误状态。\n- **统一 API：** TypeScript 兼容 Deno、Bun、Node.js 和浏览器。\n- **React Hooks：** 利用 `useLiveQuery` 和 `useDocument` 实现实时协作。\n\nFireproof 通过哈希历史记录强制执行加密的因果一致性与账本完整性，提供类似 Git 的版本控制，并结合轻量级区块链式的验证机制。数据以内容寻址的加密 Blob 形式存储和复制，从而确保安全，并可轻松通过通用对象存储服务提供商进行同步。\n\n## 安装\n\n`use-fireproof` 包同时提供了核心 API 和 React hooks：\n\n```sh\nnpm install use-fireproof\n```\n\n也可与 ⚡️ ESM.sh 配合使用：\n\n```js\nimport { useFireproof } from \"https:\u002F\u002Fesm.sh\u002Fuse-fireproof\";\n```\n\n或者在任意 JavaScript 环境中安装核心账本：\n\n```sh\nnpm install @fireproof\u002Fcore\n```\n\n还可以通过 HTML `\u003Cscript>` 标签将账本添加到任何网页中（全局变量为 `Fireproof`）：\n\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002F@fireproof\u002Fcore\u002Fdist\u002Fbrowser\u002Ffireproof.global.js\">\u003C\u002Fscript>\n```\n\n生成的解决方案可通过 ChatGPT Canvas、v0、bolt.new 或 Claude Artifacts 作为可运行的微型应用交付。只需将代码粘贴到此处即可部署带有 React 和 Tailwind 的单页应用：https:\u002F\u002Fcodepen.io\u002FuseFireproof\u002Fpen\u002FMYgNYdx\n\n## ⚛️ React 使用\n\n在 LLM 代码生成场景中，推荐使用 React hooks 来操作 Fireproof：\n\n```js\nimport { useFireproof } from \"use-fireproof\";\n\nfunction App() {\n  const { database, useLiveQuery, useDocument } = useFireproof(\"my-ledger\");\n\n  \u002F\u002F 使用 useDocument 创建新文档\n  const { doc, merge, submit } = useDocument({ text: \"\" });\n\n  \u002F\u002F 按 _id 查询文档，按最新时间排序\n  const { docs } = useLiveQuery(\"_id\", { descending: true, limit: 100 });\n\n  return (\n    \u003Cdiv>\n      \u003Cform onSubmit={submit}>\n        \u003Cinput value={doc.text} onChange={(e) => merge({ text: e.target.value })} placeholder=\"新文档\" \u002F>\n        \u003Cbutton type=\"submit\">提交\u003C\u002Fbutton>\n      \u003C\u002Fform>\n\n      \u003Ch3>最近文档\u003C\u002Fh3>\n      \u003Cul>\n        {docs.map((doc) => (\n          \u003Cli key={doc._id}>{doc.text}\u003C\u002Fli>\n        ))}\n      \u003C\u002Ful>\n    \u003C\u002Fdiv>\n  );\n}\n```\n\n阅读 [逐步 React 教程](https:\u002F\u002Fuse-fireproof.com\u002Fdocs\u002Freact-tutorial)，快速上手；或查看 [完整 LLM 文档](https:\u002F\u002Fuse-fireproof.com\u002Fllms-full.txt)，获取更多示例。\n\n### 图片处理\n\nFireproof 让你在应用中轻松存储和展示图片。借助 `_files` 属性和 `ImgFile` 组件，可以处理文件存储与检索的所有复杂性：\n\n```js\n\u002F\u002F 从文件输入框中存储图片\nfunction handleFileUpload(e) {\n  if (e.target.files[0]) {\n    merge({\n      _files: { profilePic: e.target.files[0] },\n      uploadedAt: new Date().toISOString(),\n    });\n  }\n}\n\n\u002F\u002F 从文档中显示图片\nfunction ImageDisplay({ doc }) {\n  return (\n    \u003Cdiv>\n      {doc._files?.profilePic && (\n        \u003CImgFile file={doc._files.profilePic} alt=\"头像\" onLoad={() => console.log(\"图片已加载\")} \u002F>\n      )}\n      \u003Cp>上传时间：{doc.uploadedAt}\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  );\n}\n```\n\n`ImgFile` 组件会自动处理 Fireproof 存储中的图片加载与显示，具备标准 `\u003Cimg>` 元素的所有属性。更多深入示例请参阅我们的 [llms-full.txt](https:\u002F\u002Fuse-fireproof.com\u002Fllms-full.txt) 文档。\n\n## JavaScript 核心 API\n\n对于熟悉其他文档数据库的用户来说，Fireproof 的文档数据库 API 应该会非常直观：\n\n```js\nimport { fireproof } from \"@fireproof\u002Fcore\";\n\nconst db = fireproof(\"music-app\");\n\nawait db.put({ _id: \"beyonce\", name: \"Beyoncé\", hitSingles: 29 });\n\ndb.subscribe(async () => {\n  const topArtists = await db.query(\"hitSingles\", { range: [30, Infinity] });\n  \u002F\u002F 使用新的顶级艺人重新渲染 UI\n});\n\nconst beyonceDoc = await db.get(\"beyonce\");\nbeyonceDoc.hitSingles += 1;\nawait db.put(beyonceDoc);\n```\n\n## 为什么选择 Fireproof\n\n与其他嵌入式数据库相比，Fireproof：\n\n- 具备网络感知能力、加密保护及多写者安全性；\n- 专为基于 CRDT 的实时协作而设计；\n- 为所有操作提供加密的因果完整性；\n- 面向 Web 构建，包体积小且无需 WebAssembly。\n\n无需等待后端即可交付交互式体验。Fireproof 可在任何云、浏览器或边缘环境中运行，因此你的应用可以在任何地方访问数据。\n\n## 使用场景\n\nFireproof 特别适用于以下场景：\n\n- AI 生成的应用和快速原型；\n- 协作编辑；\n- 离线优先与本地优先的应用；\n- 个性化与配置管理；\n- AI 助理的安全性。\n\n借助 Fireproof，你可以先快速搭建应用，待准备就绪后再通过你选择的云服务进行同步，非常适合 LLM 代码生成场景和快速开发。\n\n[在我们的博客上获取最新的路线图更新](https:\u002F\u002Ffireproof.storage\u002Fblog\u002F) 或加入我们的 [Discord](https:\u002F\u002Fdiscord.gg\u002FcCryrNHePH) 进行协作。阅读文档了解更多关于 [架构](https:\u002F\u002Fuse-fireproof.com\u002Fdocs\u002Farchitecture) 的信息。\n\n### 调试\n\n要控制日志输出，可以使用 `FP_DEBUG` 环境变量，或在代码中设置调试级别：\n\n```shell\nFP_DEBUG='*' node myapp.js\n```\n\n```js\nlogger.setDebug(...moduleNameList 或 '*')\n```\n\n如果你在浏览器中，可以使用以下代码来设置调试级别：\n\n```js\nthis[Symbol.for(\"FP_ENV\")].set(\"FP_DEBUG\", \"*\");\n```\n\n```js\n\u002F\u002F vitest 传递环境变量\nglobalThis[Symbol.for(\"FP_PRESET_ENV\")] = {\n  FP_DEBUG: \"*\",\n};\n```\n\n### 测试\n\n要在所有项目中运行完整的测试套件（已测试的存储网关配置），请运行：\n\n```bash\npnpm run test\n```\n\n要针对特定组件或模块运行测试，请使用以下命令模式：\n\n```bash\npnpm run test -t '测试名称模式' 测试文件路径\n```\n\n例如，仅在一个项目中为 CRDT 模块运行特定测试：\n\n```bash\nFP_DEBUG='Loader,CRDTClock' pnpm run test --project file -t 'codec implict iv' crdt\n```\n\n对于 React 组件的测试，可以使用：\n\n```bash\npnpm run test tests\u002Freact\u002F[ComponentName].test.tsx\n```\n\n以测试 ImgFile 组件为例：\n\n```bash\npnpm run test tests\u002Freact\u002FImgFile.test.tsx\n```\n\n### 日志格式化\n\n可以通过设置 FP_FORMAT 来更改日志格式：\n\n- `jsonice` 会将日志输出为多行 JSON 格式。\n- `yaml` 会将日志输出为 YAML 格式。\n- `json` 会将日志输出为单行 JSON 格式（默认）。\n\n### KeyBag\n\n如果在 `FP_STORAGE_URL` URL 中添加 `extractKey` 参数，并将其值设置为 `_deprecated_internal_api`，则可以绕过安全检查以提取密钥材料。这是默认配置，但使用此功能时会发出警告，并且未来计划实现更安全的密钥管理方案。\n\n### Deno\n\nFireproof 与 Deno 兼容。要在 Deno 中运行，需要添加以下标志：\n\n目前尚未使用 Deno 运行测试——待办事项。\n\n使用我们提供的 `deno.json` 文件可能会有些奇怪——待办事项是将 Fireproof 添加到 jsr 和 deno.land。\n\n```shell\ndeno run --config node_modules\u002F@fireproof\u002Fcore\u002Fdeno.json --allow-read --allow-write --allow-env --unstable-sloppy-imports .\u002Fnode-test.ts\n```\n\n### 创建文档\n\n请注意，这将直接推送。\n\n```shell\npnpm run build:docs\n```\n\n## 感谢 🙏\n\nFireproof 是多年来网络社区中各位同仁共同努力的结晶。我甚至无法一一列举所有做出关键贡献的人。如果没有 npm、React 和 VS Code，这一切都会花费更多的时间。感谢所有通过 Apache CouchDB——最早的文档账本之一——支持我进入账本开发领域的人。我们在不可变数据结构方面的独特工作，得益于对 [IPFS](https:\u002F\u002Fipfs.tech)、[IPLD](https:\u002F\u002Fipld.io) 以及 [Filecoin APIs](https:\u002F\u002Fdocs.filecoin.io) 多年来的深入思考。\n\n感谢 [Meno Abels](https:\u002F\u002Fgithub.com\u002Fmabels)，他担任了项目的首席工程师。Fireproof 正在迅速发展成为一个成熟的解决方案。\n\n还要感谢 Alan Shaw 和 Mikeal Rogers，没有他们，这个项目根本不可能启动。核心的 Merkle 哈希树时钟基于 [Alan 的 Pail](https:\u002F\u002Fgithub.com\u002Falanshaw\u002Fpail)，而仓库的历史可以追溯到该仓库的一个分支。Mikeal 编写了 [prolly 树的实现](https:\u002F\u002Fgithub.com\u002Fmikeal\u002Fprolly-trees)。\n\n## 贡献\n\n我们非常欢迎贡献。欢迎随时加入 Discord 上的讨论，所有人皆可参与。[Discord 邀请链接](https:\u002F\u002Fdiscord.gg\u002FcCryrNHePH)\n\n# 许可证\n\n采用双许可协议，即 [MIT 或 Apache 2.0](https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Fblob\u002Fmain\u002FLICENSE.md)","# Fireproof 快速上手指南\n\nFireproof 是一个轻量级的嵌入式文档数据库，支持加密实时同步，专为浏览器应用设计。它具备离线优先、实时协作和统一 API 特性，适用于 React、Node.js、Deno 等多种 JavaScript 环境。\n\n## 环境准备\n\n- **系统要求**：支持任何现代浏览器、Node.js、Deno 或 Bun 环境。\n- **前置依赖**：\n  - Node.js (推荐 v18+) 或现代浏览器\n  - npm、pnpm 或 yarn 包管理器\n  - 若使用 React，需安装 React 18+\n\n## 安装步骤\n\n### 方式一：安装完整包（含 React Hooks）\n\n```sh\nnpm install use-fireproof\n```\n\n### 方式二：仅安装核心库（适用于非 React 项目）\n\n```sh\nnpm install @fireproof\u002Fcore\n```\n\n### 方式三：通过 CDN 直接在 HTML 中使用\n\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002F@fireproof\u002Fcore\u002Fdist\u002Fbrowser\u002Ffireproof.global.js\">\u003C\u002Fscript>\n```\n\n### 方式四：使用 ESM.sh（无需安装）\n\n```js\nimport { useFireproof } from \"https:\u002F\u002Fesm.sh\u002Fuse-fireproof\";\n```\n\n> 💡 国内开发者如遇网络问题，可尝试使用镜像源：\n> ```sh\n> npm config set registry https:\u002F\u002Fregistry.npmmirror.com\n> ```\n\n## 基本使用\n\n### React 项目示例（推荐）\n\n```js\nimport { useFireproof } from \"use-fireproof\";\n\nfunction App() {\n  const { database, useLiveQuery, useDocument } = useFireproof(\"my-ledger\");\n\n  \u002F\u002F 创建或编辑文档\n  const { doc, merge, submit } = useDocument({ text: \"\" });\n\n  \u002F\u002F 查询最新 100 条文档\n  const { docs } = useLiveQuery(\"_id\", { descending: true, limit: 100 });\n\n  return (\n    \u003Cdiv>\n      \u003Cform onSubmit={submit}>\n        \u003Cinput \n          value={doc.text} \n          onChange={(e) => merge({ text: e.target.value })} \n          placeholder=\"输入内容\" \n        \u002F>\n        \u003Cbutton type=\"submit\">提交\u003C\u002Fbutton>\n      \u003C\u002Fform>\n\n      \u003Ch3>最近文档\u003C\u002Fh3>\n      \u003Cul>\n        {docs.map((doc) => (\n          \u003Cli key={doc._id}>{doc.text}\u003C\u002Fli>\n        ))}\n      \u003C\u002Ful>\n    \u003C\u002Fdiv>\n  );\n}\n```\n\n### 纯 JavaScript \u002F Node.js 示例\n\n```js\nimport { fireproof } from \"@fireproof\u002Fcore\";\n\nconst db = fireproof(\"music-app\");\n\n\u002F\u002F 写入文档\nawait db.put({ _id: \"beyonce\", name: \"Beyoncé\", hitSingles: 29 });\n\n\u002F\u002F 订阅数据变化\ndb.subscribe(async () => {\n  const topArtists = await db.query(\"hitSingles\", { range: [30, Infinity] });\n  console.log(\"热门艺术家:\", topArtists);\n});\n\n\u002F\u002F 读取并更新文档\nconst beyonceDoc = await db.get(\"beyonce\");\nbeyonceDoc.hitSingles += 1;\nawait db.put(beyonceDoc);\n```\n\n### 图片上传与展示\n\n```js\n\u002F\u002F 上传图片\nfunction handleFileUpload(e) {\n  if (e.target.files[0]) {\n    merge({\n      _files: { profilePic: e.target.files[0] },\n      uploadedAt: new Date().toISOString(),\n    });\n  }\n}\n\n\u002F\u002F 展示图片\nfunction ImageDisplay({ doc }) {\n  return (\n    \u003Cdiv>\n      {doc._files?.profilePic && (\n        \u003CImgFile file={doc._files.profilePic} alt=\"头像\" \u002F>\n      )}\n      \u003Cp>上传时间：{doc.uploadedAt}\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  );\n}\n```\n\nFireproof 自动处理文件存储、加密与同步，开发者只需关注业务逻辑。","一位独立开发者正在构建一款支持多人实时协作的离线优先笔记应用，希望用户能在无网络环境下顺畅编辑，并在恢复连接后自动同步数据。\n\n### 没有 fireproof 时\n- **架构复杂沉重**：开发者需分别搭建前端本地存储（如 IndexedDB）和后端数据库，并编写大量样板代码处理两者间的数据同步逻辑。\n- **离线体验割裂**：用户在断网时无法保存新内容或看到他人更新，必须手动处理“加载中”和“错误”状态，交互流程繁琐。\n- **协作冲突难解**：实现多端实时协同需要引入复杂的 OT 或 CRDT 算法，极易出现数据覆盖或版本不一致的问题。\n- **部署维护成本高**：应用依赖专用后端服务器和云数据库，无法简单打包成静态文件部署，增加了运维负担。\n\n### 使用 fireproof 后\n- **全栈轻量嵌入**：fireproof 将数据库直接运行在浏览器中，UI、数据和逻辑可打包进单一文件，无需单独的后端数据库服务。\n- **原生离线优先**：凭借自动持久化和实时查询能力，用户在断网时可无缝读写数据，网络恢复后自动同步，彻底消除了加载与错误状态。\n- **内置一致性保障**：fireproof 通过加密因果一致性和哈希历史机制，像 Git 一样自动处理版本冲突，确保多端协作时的数据完整性。\n- **随处运行部署**：应用可轻松部署到任何静态托管平台甚至本地文件系统中，真正实现了“一次编写，随处运行”。\n\nfireproof 让开发者仅需关注业务逻辑，即可低成本构建出具备企业级同步能力和极致离线体验的现代化 Web 应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffireproof-storage_fireproof_e4694f27.png","fireproof-storage","Fireproof","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffireproof-storage_5c1dcfcd.png","Live database for the web",null,"https:\u002F\u002Fuse-fireproof.com","https:\u002F\u002Fgithub.com\u002Ffireproof-storage",[83,87,91,95,99,103],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",97.1,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",2.1,{"name":92,"color":93,"percentage":94},"CSS","#663399",0.5,{"name":96,"color":97,"percentage":98},"Shell","#89e051",0.3,{"name":100,"color":101,"percentage":102},"HTML","#e34c26",0.1,{"name":104,"color":105,"percentage":106},"Python","#3572A5",0,958,56,"2026-04-03T12:10:14","Apache-2.0","未说明","不需要 GPU",{"notes":114,"python":115,"dependencies":116},"该工具是一个基于 JavaScript\u002FTypeScript 的嵌入式文档数据库，无需 Python 环境。支持在任何 JavaScript 环境中运行，包括浏览器、Node.js、Deno 和 Bun。在 Deno 环境下运行时需添加特定标志（如 --allow-read, --allow-write, --unstable-sloppy-imports）。无 GPU 需求，具体内存需求取决于应用规模但未在文档中明确说明。","不适用",[117,118],"use-fireproof","@fireproof\u002Fcore",[14],[121,122,123,124,125,126,127,128,129,130,131,132,133],"crdt","database","javascript","npm","react","immutable","ipfs","json","edge","local-first","merkle","p2p","state-management","2026-03-27T02:49:30.150509","2026-04-06T05:15:57.193943",[137,142,147,152,156,160,165,169],{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},13544,"Fireproof 应用如何通过 AI 工具快速生成和定制？","可以使用 ChatGPT Canvas、V0 或 Lovable 等 AI 工具创建可分叉（forkable）的 Fireproof 应用。应用应有效使用 Fireproof API，在主屏幕显示使用说明，并托管在公共 URL 上。代码库应设计为易于通过 AI 工具修改，作为单用户本地应用运行。","https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Fissues\u002F613",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},13537,"PartyKit 连接器是否支持数据存储，而不仅仅是元数据？","是的，PartyKit 连接器现在可以处理存储。这使得开发者只需部署 PartyKit 应用，而无需额外配置 S3 或 Netlify。实现方式是通过 REST 端点进行 PUT 和 GET 操作，这种方式更简单且更具缓存性，类似于 Netlify 数据存储的工作方式。","https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Fissues\u002F45",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},13538,"在使用 PartyKit 存储进行负载测试时遇到'Values cannot be larger than 131072 bytes'错误，如何解决？","该错误是因为存储引擎的单块大小超过了限制（131072 字节）。解决方案是将加密的 blockstore 中超过阈值的大块进行分割。此问题已通过相关 PR 修复，确保在特定配置下自动分块以符合存储限制。","https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Fissues\u002F73",{"id":153,"question_zh":154,"answer_zh":155,"source_url":151},13539,"如何在微信小程序中集成 Fireproof，需要注意哪些存储限制？","微信小程序对存储有严格限制：每个键值对最大 1MB，总存储限制为 10MB。集成时必须调整加密 blockstore 的分块大小以符合这些限制。建议参考微信小程序官方文档中的存储能力指南进行配置。",{"id":157,"question_zh":158,"answer_zh":159,"source_url":141},13540,"如何提交 Fireproof 相关的赏金任务（Bounty）作品？","提交赏金任务作品需遵循以下指南：代码必须文档齐全；必须提交可运行的演示供审查；需提供设置说明（如 Google Cloud 项目配置）；实现必须符合安全最佳实践。对于视频类任务，还需上传横竖屏视频到 YouTube 并添加特定标签，同时提供截图并完成调查问卷。",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},13541,"Fireproof 赏金任务的评审和支付流程是怎样的？","开发完成后，Fireproof 团队将进行为期 7 天的审查。审查通过后，款项将在 7 天内支付。只有第一个完全满足验收标准的提交者才有资格获得赏金。参与者可以在等待审查期间并行完成多个赏金任务。","https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Fissues\u002F542",{"id":166,"question_zh":167,"answer_zh":168,"source_url":164},13542,"如何利用 Fireproof 构建支持实时协作的电子表格可视化应用？","可以使用 Fireproof 的 live ledger 功能存储上传的电子表格元数据、生成的可视化配置及用户偏好。通过 `useLiveQuery` 实现响应式 UI 更新，利用 Fireproof 的文件附件功能上传 CSV\u002FXLS 文件，并启用多用户协作同步。结合代码解释器生成可视化结果并存入 Fireproof。",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},13543,"如何实现 Fireproof 与 Google Drive 的集成以支持多设备同步？","需要配置 Google Cloud 项目并启用 Drive API 权限，实现 OAuth2 认证流程。在用户 Google Drive 中创建专用目录存储 Fireproof 数据，利用 Fireproof 0.20 connect API 实现本地与 Drive 之间的数据同步。需确保数据结构安全并提供清晰的同步状态反馈。","https:\u002F\u002Fgithub.com\u002Ffireproof-storage\u002Ffireproof\u002Fissues\u002F579",[]]