幾乎每個開發人員都會使用開源工具,無論是在學習編碼還是建立實際應用程式時。
Python 最近超越 JavaScript 成為 GitHub 上最受歡迎的語言。現在,兩者都是開源領域中排名前兩位的程式語言。
在本文中,我將向 Python 和 JavaScript 開發人員分享 7 個開源工具,它們可以幫助您建立更好的專案。
讓我們深入了解一下吧! 🚀
您可以在您的專案中使用這些工具,甚至可以為它們做出貢獻以使其變得更好。
Crawlee是一個用於網頁抓取和瀏覽器自動化的開源程式庫。它支援 HTTP 請求和使用 Puppeteer 和 Playwright 等工具進行無頭瀏覽器爬行。
其反屏蔽功能,例如代理輪換和瀏覽器指紋辨識,可以更輕鬆地避免檢測。 Crawlee 還可以自動擴展並支援 TypeScript,使其能夠可靠且有效率地完成任何規模的任務。
最好的部分? Crawlee 可以與Node.js和Python無縫協作。如果網站需要 JavaScript 渲染,您可以輕鬆切換到基於瀏覽器的爬蟲。稍後,如果您發現更快的 API 可以滿足您的需求,只需切換回 HTTP 抓取即可,無需重寫您的專案
若要執行 Crawlee 快速啟動,請安裝 Crawlee CLI 以及必要的依賴項和樣板程式碼:
npx crawlee create my-crawler
Crawlee 提供了三個主要的爬蟲類: CheerioCrawler
、 PuppeteerCrawler
和PlaywrightCrawler
,它們具有相同的介面。
您可以使用以下命令在專案中執行 Crawlee:
npm install crawlee
讓我們看一下使用 Crawlee “抓取網站上的所有連結”的範例:
import { PlaywrightCrawler } from 'crawlee';
const crawler = new PlaywrightCrawler({
async requestHandler({ request, enqueueLinks, log }) {
log.info(request.url);
// Add all links from page to RequestQueue
await enqueueLinks();
},
maxRequestsPerCrawl: 10, // Limitation for only 10 requests (do not use if you want to crawl all links)
});
// Run the crawler with initial request
await crawler.run(['https://crawlee.dev']);
此範例使用enqueueLinks()
方法在爬網程式瀏覽頁面時將新連結新增至RequestQueue
。透過刪除maxRequestsPerCrawl
選項,您可以使用它來尋找網域上的所有 URL。
您可以從其文件中找到更多範例和資源,以便在您的專案中正確使用 Crawlee。
他們在GitHub上擁有 15k+ star,專案不斷發展和完善。
https://github.com/apify/crawlee GitHub 上的 Star Crawlee ⭐️
Crawlee 向社區贈送 3 件獨家連帽衫。
點選下方按鈕在 GitHub 上星標 Crawlee 。
將您的 GitHub 使用者名稱放入本文的評論部分。
就是這樣!
Crawlee 將於2024 年 12 月 31 日選出幸運獲獎者。
https://github.com/apify/crawlee 參與贈品活動
Marimo是一個基於 Python 的開源筆記本環境,讓資料處理更加互動和直覺。它支援 Python 腳本和筆記本,允許透過 Git 進行無縫版本控制。
Marimo 的突出功能是其反應式 UI,筆記本某一部分的變更會自動更新其他相關部分,使其成為即時資料探索的理想選擇。
它易於使用,並為高級用戶提供了大量功能。例如,它可用於建立互動式工具,例如嵌入視覺化工具。
您可以透過在終端機中執行以下安裝命令來快速啟動 Marimo :
pip install marimo # or conda install -c conda-forge marimo
marimo tutorial intro
使用以下命令建立或編輯筆記本:
marimo edit
執行應用程式:
marimo run your_notebook.py
最精彩的部分,與 Marimo 一起:
將您的 Notebook 作為 Web 應用程式執行:透過隱藏 Python 程式碼,將您的 Notebook 轉變為互動式 Web 應用程式。
作為腳本執行:直接從命令列將筆記本作為腳本執行。
自動轉換:使用 CLI 自動將 Jupyter 筆記本轉換為 marimo 筆記本。
您可以透過其文件了解有關 Marimo 的更多訊息,並找到在下一個 Python 工作流程中正確使用它的資源。
他們在GitHub上擁有 8k+ star,社群正在快速發展!
https://github.com/marimo-team/marimo GitHub 上的 Star Marimo ⭐️
Deno是一個開源 JavaScript 執行時,旨在提供現代且安全的開發人員體驗。 Deno 基於 V8 和 Rust 建置,預設為簡單性和安全性進行了最佳化。
透過執行單一命令在 Mac 或 Linux 上安裝 Deno:
curl -fsSL https://deno.land/install.sh | sh
對於 Windows,執行以下命令:
irm https://deno.land/install.ps1 | iex
它還原生支援 TypeScript,並包含用於執行程式碼檢查、格式化、測試和編譯為獨立可執行檔等任務的內建工具。
儘管 Deno 與 Node.js 有很大不同,但它提供了 Node.js 相容層,允許您以最少的更改執行現代 Node.js 專案。您也可以從 Node.js 遷移到 Deno,讓您的程式碼更加簡單有效率。
Deno 強制執行嚴格的權限模型,限制對檔案、網路和環境的存取,除非明確授予。其全面的 API 和最小的配置使其成為雲端和邊緣部署的強大選擇,為建置和執行應用程式提供可擴展的環境。
您可以了解有關 Deno 的更多訊息,並透過其文件找到在工作流程中正確使用它的資源。
他們在GitHub上擁有 98k+ 顆星,成千上萬的開發者正在使用 Deno!
https://github.com/denoland/deno GitHub 上的 dStar Deno ⭐️
Wasp是一個開源框架,旨在簡化全端 Web 開發。您可以透過 Wasp 輕鬆地在 React、Node.js 和 Prisma 之上進行建置。
它透過為您處理樣板程式碼和配置來簡化現代 Web 應用程式的設定和編排。憑藉其簡單的配置語言,Wasp 允許開發人員專注於應用程式的核心邏輯,同時自動執行重複任務,從而使開發更快、更有效率。
對於快速啟動 Wasp,請在Linux / OSX / WSL (Windows) 上執行下列安裝指令:
curl -sSL https://get.wasp-lang.dev/installer.sh | sh
建立新應用程式:
wasp new
現在,執行 Wasp 應用程式:
cd <my-project-name>
wasp start
您可以在http://localhost:3000/輕鬆查看全端 Web 應用程式
如果您想了解如何輕鬆地將 Wasp 用於下一個全端專案,請在此處查看他們的教學課程。
您可以了解有關 Wasp 框架的更多訊息,並透過其文件查找資源以在您的工作流程中正確使用它。
他們在GitHub上擁有 13k+ 的 star,並且擁有良好的社區支持!
https://github.com/wasp-lang/wasp GitHub 上的 Star Wasp ⭐️
PydanticAI是一個新的代理框架,旨在簡化生成式 AI 與生產級 Python 應用程式的整合。
一些突出的特點:
結構化輸出驗證:它確保人工智慧產生的輸出與預先定義的資料模式匹配,最大限度地減少意外結果。
依賴管理:提供輕鬆管理和使用依賴關係的工具,無論是同步或非同步。
與模型無關:支援 OpenAI、Groq 和 Gemini 等各種 AI 模型,允許無縫適應不同的用例
基於 Pydantic 的優勢以及 OpenAI SDK、Anthropic SDK、LangChain、LlamaIndex、AutoGPT、Transformers、CrewAI、Instructor 等驗證層的優點。
PydanticAI 可在 PyPI 上使用,因此您可以透過執行以下命令進行安裝:
pip install pydantic-ai
您可以將其與可選的 Logfire 整合一起使用,或僅安裝範例:
pip install 'pydantic-ai[examples]'
這些範例要求您使用 LLM 設定身份驗證並遵循其他步驟,在本文件中尋找所有內容。
PydanticAI 是一個新的代理框架,某些功能仍處於測試階段。如果您打算嘗試,可以儘早參與。
您可以了解有關 PydanticAI 代理框架的更多訊息,並透過其文件找到在工作流程中正確使用它的資源。
他們在GitHub上擁有超過 1,300 顆星,並有強大的 Pydantic 社群的大力支持!
https://github.com/pydantic/pydantic-ai 在 GitHub 上明星 PydanticAI ⭐️
PocketBase是一款開源自託管後端解決方案,旨在建立全端應用程式,重點關注簡單性和可移植性。
它提供了身份驗證、文件儲存和即時 CRUD 操作等基本功能,所有這些功能都在單一伺服器實例中進行。非常適合中小型應用程式,例如行動應用程式後端和 SaaS 平台。
一些很棒的功能包括:
支援多個前端堆疊,如 Svelte、Angular、React 等
JavaScript 和 Dart SDK
自託管
PocketBase 的建立是為了幫助建立獨立的應用程式。對於需要輕量級後端且無需管理多個服務的複雜性的專案來說,這是一個不錯的選擇。
該專案完全開源,由志願者維護,無需任何資金。您可以參與或從文件中探索其功能和實作細節。
他們在GitHub上擁有 41k+ 顆星,並由兼職貢獻者維護。
https://github.com/pocketbase/pocketbase 在 GitHub 上明星 PocketBase ⭐️
KitOps 是一款開源工具,它重新定義了資料科學家、開發人員和 SRE 在 AI/ML 模型、資料集和原始程式碼方面的協作方式。
透過利用 Modelkit(一種 OCI(開放容器計畫)標準打包格式),KitOps 提供了一種統一的方法來跨不同環境打包、版本控制和部署資源。
要使用 KitOps,您需要安裝 Kit CLI 並透過執行以下命令檢查版本:
kit version
登入符合 OCI 標準的註冊表。透過執行以下命令,Jozu Hub 是 KitOps 的首選:
kit login jozu.ml
登入後,從 Jozu Hub 中提取範例 Modelkit,並透過執行以下命令在工作流程中進行嘗試:
kit unpack jozu.ml/jozu-quickstarts/fine-tuning:latest
預設情況下,unpack 命令會將 ModelKit 內容解壓縮到目前目錄,您可以使用它來了解更多資訊。
主要特點
符合 OCI 的打包:將模型、資料集、配置和程式碼打包到 ModelKit 中,以簡化版本控制。
註冊表靈活性:與任何符合 OCI 的註冊表相容,確保與現有 AI/ML 工作流程無縫整合。
基於 YAML 的客製化:使用直覺的 YAML 檔案配置管道、微調 LLM 並建立 RAG 管道。
最好的部分?
如果您是一位資料科學家,在 Jupyter Notebooks 中與 AI 工程師團隊一起使用 LLM 模型建立 Python 腳本,那麼 KitOps 可以彌補這一差距。
它支援跨團隊的無縫協作,將不同的工作流程合併到統一的管道中,以實現最高效率。
您可以了解有關 KitOps 的更多訊息,並透過其文件查找資源以在您的工作流程中正確使用它。
他們在GitHub上擁有 500 多個 star,社群正在不斷壯大!
https://github.com/jozu-ai/kitops GitHub 上的 Star KitOps ⭐️
就是這樣!我嘗試介紹一些主要針對 Python 和 JavaScript 開發人員的有用工具。如果您知道其他很棒的工具,請在評論中寫下來!
希望您覺得這篇文章有用。如果是的話,請隨時與您的開發者朋友分享!
另外,追蹤我,了解更多類似內容:
如需付費合作,請發送電子郵件至: [email protected] 。
感謝您的閱讀!
原文出處:https://dev.to/arindam_1729/7-must-try-open-source-tools-for-python-and-javascript-developers-4c56