本文以創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際授權釋出
🔹Himalaya
Himalaya 是一款使用 Rust 開發的 CLI 電子郵件管理工具,基於 email-lib 提供多帳戶管理,支援 IMAP、Maildir、SMTP、PGP 加密等功能。使用者可透過 TOML 檔案或嚮導設置帳戶,並支援 OAuth 2.0 認證。
🔹Limbo
Limbo 是一個以 Rust 程式語言撰寫的資料庫系統,並且致力於和 SQLite 相容。支援目前主流的作業系統,預計會提供 JavaScript/WASM 支援。
🔹MarkItDown
MarkItDown 是一個 Python 的工具函式庫,它可以將文件轉換為 Markdown 格式,目前支援 PDF、PowerPoint、Word 以及 Excel 等應用程式產生的檔案,使用者可以將轉換後的檔案用作索引或是文字分析。
🔸Redis 創始人歸來
Redis 的創始人 Salvatore Sanfilippo(暱稱 antirez)在幾年前決定離開 Redis 的開發工作。離開後,他選擇不再仔細研究程式碼或 commit 記錄,僅在需要時下載並編譯。這種抽離並不是因為他不喜歡自己的作品,而是因為隨著專案管理工作變多,他感到創造力受限,再加上年齡與人生規劃的考量,他想嘗試新的方向,例如專心寫作和花更多時間陪伴家人,因此暫時退出 Redis。
在「寫作時期」,antirez 依然會做一些隨性的技術嘗試,包括嵌入式系統開發、神經網路研究以及打造 Telegram 機器人等。然而,長期沒有明確目標讓他對自己的定位愈發不安;同時,他也注意到 Redis 社群出現了分化。這些因素促使他思考是否能重新加入 Redis,並與公司管理層洽談,希望在新的授權條款下,同時兼顧開發者社群和商業需求,並讓 Redis 再度凝聚成一個穩定且有活力的專案。
最終,antirez 決定再次回到 Redis。他想引入向量資料結構和 AI 相關功能,並示範了一些初步的設計概念,如新的指令和 K-NN 搜尋機制,期望提升開發者的靈活度與創新空間。文章最後,他正式宣告回歸 Redis 團隊,希望能與社群一同推動專案與技術的進一步發展。
🔸Erlang 讓系統維護更靈活的祕訣
如果系統擁有一個能夠隨時更換程式碼或元件的執行環境,就可以在不停止系統、不中斷服務,也不影響使用者的情況下進行升級。雖然 Erlang 的熱程式碼替換機制有一些限制與規定,但整個更換程序只需要幾秒鐘就能完成;相比之下,其他系統如 Docker 或 Kubernetes,通常需要好幾分鐘甚至幾個小時才能完成升級,而這主要是因為 Erlang 採用了函數式語言的方法。
本篇文章首先介紹 Erlang/Elixir 熱程式碼替換的基礎概念,並舉一個簡單的程式碼模組作為範例:在加入新程式碼後,如何透過 Erlang 系統提供的函式,在不停止系統的情況下,動態載入修改過的模組。接著說明 Erlang 系統所提供的工具鏈及資源升級檔案,這些升級檔案中定義了升級過程所需的操作與關聯模組。基於這些描述檔產生的應用程式在安裝時,就能自動更新或降版相關元件,系統也知道該如何處理。
開發版本的釋出與更新是一個複雜議題,不只是跟開發維護相關,也牽涉到管理規劃。Erlang 行之有年的升級工具鏈已相當成熟,不論是實際應用在開發環境,或是學習它的設計理念,都能為最終釋出版本帶來不少助益。
以上就是本期的內容,喜歡的話請給❤️,分享或轉寄本電子報給有興趣的朋友。如果您有想要介紹的開源專案,也請來信與我們分享,或是在 X (前 Twitter) 留言給我們,感謝!