Spacedrive - Trình khám phá tệp đa nền tảng mã nguồn mở
(github.com/spacedriveapp)- Spacedrive là một cross-device data platform cho phép xử lý tệp từ nhiều thiết bị và đám mây tại một nơi, lập chỉ mục và tìm kiếm tệp, email, ghi chú, cùng các nguồn bên ngoài, đồng thời đồng bộ qua P2P
- Không thay thế Finder hay Explorer, mà đóng vai trò là một lớp phía trên các trình quản lý tệp của hệ điều hành để tìm kiếm và duyệt local disk, ổ đĩa ngoài, NAS, cloud storage và các nguồn dữ liệu lưu trữ
- Gán hàm băm nội dung BLAKE3 cho mọi tệp để nhận diện cùng một tệp bằng cùng một hash, cho phép theo dõi trùng lặp và loại bỏ trùng lặp trên toàn bộ nhiều thiết bị
- Đồng bộ giữa các thiết bị dùng P2P sync dựa trên Iroh/QUIC với kết nối trực tiếp, đồng bộ metadata mà không cần server, cloud hay điểm lỗi đơn, còn tệp vẫn được giữ ở vị trí gốc
- Lập chỉ mục S3, Google Drive, Dropbox, OneDrive, Azure, GCS thành các cloud volumes cùng với local storage; còn Gmail, Apple Notes, Chrome Bookmarks, Slack, GitHub... trở thành kho lưu trữ có thể tìm kiếm thông qua adapter dựa trên script
- Tích hợp với Spacebot để chạy runtime AI agent như một tiến trình riêng tùy chọn, trong đó Spacedrive đảm nhiệm lớp dữ liệu, quyền hạn và thực thi, còn Spacebot phụ trách phần trí tuệ
- Mỗi instance Spacebot được ghép cặp với một node Spacedrive, và node đó xử lý xác thực agent, duy trì đồ thị thiết bị, phân giải quyền hạn và chuyển tiếp tác vụ tới thiết bị ngang hàng
- Việc đọc tệp, shell command và tác vụ được proxy tới thiết bị đích thông qua Spacedrive; hệ thống quyền hạn xử lý thiết bị, đường dẫn, tác vụ nào có thể truy cập và liệu có cần con người xác nhận hay không
- Khi được kích hoạt, các bản ghi cần lập chỉ mục sẽ đi qua pipeline Safety Screening trước khi trở thành dữ liệu có thể tìm kiếm
- Prompt Guard 2 phát hiện prompt injection trong email, tin nhắn và tài liệu bằng bộ phân loại cục bộ
- Thông qua trust tiers, isolation system và content fencing, các bản ghi bị gắn cờ sẽ bị loại khỏi truy vấn của AI agent và có thể được xem xét trong ứng dụng desktop
- Kiến trúc cốt lõi gồm Virtual Distributed Filesystem, hệ thống nhận diện nội dung, transactional actions và đồng bộ không leader
- Tệp và thư mục trở thành các đối tượng độc lập với vị trí vật lý, và mỗi tệp có địa chỉ
SdPathhoạt động trên nhiều thiết bị - Các thao tác tệp có dạng durable job với khả năng xem trước trước khi thực thi, phê duyệt hoặc hủy, và chịu được gián đoạn mạng cũng như khởi động lại thiết bị
- Tệp và thư mục trở thành các đối tượng độc lập với vị trí vật lý, và mỗi tệp có địa chỉ
- Việc triển khai dựa trên một crate Rust duy nhất và kiến trúc CQRS/DDD, sử dụng các công nghệ chính như Tokio, SQLite, SeaORM, sqlx, Iroh, BLAKE3, LanceDB, FastEmbed, OpenDAL, Tauri 2, React Native, React 19, Vite, TanStack Query, Tailwind CSS v4, Specta
- Ứng dụng desktop nhắm tới macOS, Windows, Linux; ứng dụng mobile nhắm tới iOS, Android; đồng thời còn có cấu trúc CLI, daemon, headless server và browser client
- Yêu cầu để chạy gồm Rust 1.81+, Bun 1.3+, just và Python 3.9+ cho adapter; các lệnh phát triển là
just setup,just dev-desktop,just test - Mô hình quyền riêng tư và bảo mật là local-first; lưu lượng P2P được mã hóa bằng QUIC/TLS, thư viện có thể mã hóa đĩa bằng SQLCipher, và không có telemetry dùng cho tracking hay analytics
- Giấy phép là FSL-1.1-ALv2 Functional Source License và sẽ chuyển sang Apache 2.0 sau 2 năm
1 bình luận
Ý kiến trên Hacker News
Ngay sau khi cài đặt, ứng dụng đã yêu cầu tạo thư viện, chia sẻ dữ liệu phân tích và đăng nhập, nên kỳ vọng của tôi khác hẳn so với một trình quản lý tệp khác
Tôi di chuyển tới một thư mục bất kỳ trên ổ đĩa rồi nhấp đúp nhưng không có gì xảy ra; mở bằng menu ngữ cảnh cũng vậy
Hóa ra nếu trong một thư mục có 15 nghìn tệp thì về cơ bản không thể duyệt được
Total Commander và Windows Explorer không gặp vấn đề này, nên có lẽ Spacedrive cần trau chuốt thêm ngay từ chức năng duyệt tệp cơ bản
Trái với một số phản hồi ở đây, Spacedrive được thiết kế với dữ liệu dung lượng lớn trong đầu; nó lập chỉ mục trước các Location để tạo cache, đồng thời cache và ảo hóa mọi thứ
Trong bản cập nhật tiếp theo, chúng tôi dự định sửa lỗi khi duyệt những nơi không phải Location; có vẻ nhiều người dùng thử duyệt trước khi thêm vào Location
Đây vẫn là phần mềm alpha, nên mong mọi người cho chúng tôi thời gian để hoàn thiện
Khó có thể chỉ trách nhà phát triển; tôi nghĩ framework nên hỗ trợ sẵn việc này
Không nên bắt người ta phải hiểu danh sách ảo hóa mới làm được
Khi tôi tạo TableView bằng SwiftUI, dù hoàn toàn không biết cơ chế bên trong, tôi vẫn có thể cuộn qua hàng nghìn mục
Vì không có cache thứ tự sắp xếp, nếu mở theo kiểu không phải thứ tự chữ cái thì phải chờ hơn 5 phút để nó sắp xếp
Khi tôi thấy dự án này khá lâu trước đây, chưa có gói phát hành để tự dùng thử, nên tôi định chờ đến khi sẵn sàng rồi xem lại; có vẻ bản alpha đã ra khoảng một giờ trước nên lại được đăng lên HN
Bản thân ý tưởng thì đáng hoan nghênh
Ngày nay ranh giới giữa tệp cục bộ nghiêm ngặt và nhiều kho lưu trữ đám mây đã mờ đi
Cá nhân tôi vẫn giữ ranh giới đó và hầu như không mount kho đám mây trên Mac, nhưng vợ tôi là học giả thì dùng cả Dropbox, iCloud Drive, Google Drive và kho lưu trữ phía Microsoft
Lý do là những người làm việc cùng cô ấy chia sẻ tệp và cộng tác đánh giá qua từng dịch vụ đó
Nếu một công cụ như thế này có thể che đi các vấn đề kết nối theo từng nhà cung cấp và những hành vi kỳ lạ, đồng thời cung cấp một hệ thống tệp trong suốt trông như cục bộ nhưng phía sau có thể gắn với bất kỳ kho đám mây nào, thì nó sẽ giúp ích khá nhiều cho workflow
Điều cốt lõi là tính dễ dùng; nếu độ trễ lớn khiến nó có cảm giác chậm hơn Finder thì triển vọng sẽ thấp
Rất có thể Hacker News không phải nhóm người dùng tối ưu cho sản phẩm kiểu này
Những người ở đây nhiều khả năng đã có workflow được tối ưu hóa riêng, và tôi cũng vậy
Sản phẩm này có vẻ phù hợp hơn với nhà sáng tạo số dùng Windows và Mac nhưng không quen với terminal
Tức là những người như animator, họa sĩ minh họa, biên tập video, nghệ sĩ 3D, nhà sản xuất âm nhạc, YouTuber, streamer
Tuy nhiên tôi không chắc nhóm thứ hai đó có thực sự muốn thứ như thế này không
Chỉ nhìn marketing thì không rõ phần mềm này chính xác làm gì, và tôi nghĩ nhóm đó cũng sẽ thấy vậy
Tôi hiểu họ muốn nói đến “trải nghiệm tệp phổ quát”, nhưng cụ thể nó nghĩa là gì thì không rõ
Không nên bắt người dùng phải cài phần mềm chỉ để hiểu tính năng
Việc nó là mã nguồn mở hoặc chạy trên Linux dường như cũng không quá quan trọng với họ
Nếu ở giai đoạn này, tôi sẽ làm lại hoàn toàn phần marketing và tối ưu cho nhóm thứ hai đó
Nên làm cùng người phụ trách PR hoặc chuyên gia marketing để truyền đạt cụ thể và hiệu quả giá trị đang tạo ra là gì
Ngoài ra, để tiết kiệm công sức cho đội ngũ, tôi có lẽ sẽ gỡ kho mã nguồn và dừng cả bản Linux, hoặc để riêng tư cho đến khi có nhu cầu
Chúc may mắn
Tôi đã theo dõi khá lâu và có vài góp ý
Việc lập chỉ mục một thư mục phát triển cục bộ của tôi đến giờ đã mất hơn 35 phút, và có lẽ tôi sẽ không chờ đến khi xong
Như những người khác đã nói, độ trễ là vấn đề
Trên mẫu macOS M1 14 inch bản cơ bản, ngay cả sau khi thêm Location, đôi khi vẫn mất 2–4 giây từ lúc mở thư mục đến khi thấy tệp
Nếu tôi không bỏ sót gì thì có vẻ vẫn chưa có tab
Chức năng sắp xếp và nhóm tệp quá nghèo nàn, hoặc gần như không có, nhưng tôi nghĩ sẽ được cải thiện trong quá trình phát triển
Để có trạng thái lập chỉ mục hợp lý, có vẻ người dùng phải làm khá nhiều việc, như tự tay thêm nhiều Location
Tôi hiểu đây là local-first, nhưng cách làm telemetry và đăng nhập thì tôi thực sự không thích
Nhìn chung, sau khi tự dùng thử tôi hơi thất vọng nên khả năng cao là không hợp với tôi, nhưng vẫn có thể có người dùng mục tiêu và dự án còn một chặng đường phía trước
Trông thì thật sự rất đẹp
Tôi thắc mắc vì sao lại làm cái này bằng React
Tôi hiểu Rust không có framework GUI như Qt, nhưng liệu đây có phải câu trả lời không
Có phải vì không muốn học thứ mới không?
Hoàn toàn có thể làm bằng ứng dụng C++ hoặc Qt, viết GUI bằng QML và gắn Lua, Python, JavaScript làm ngôn ngữ scripting
Tất nhiên đó cũng là công việc
Render bằng trình duyệt gần giống một phiên bản dễ hơn của việc tạo GUI bằng GPU API như OpenGL
Hệ điều hành vốn đã có công cụ GUI rồi, cứ dùng chúng là được
Ngoài chuyện đó thì trông khá ổn, nhưng tôi nghĩ những thứ như pcmanfm cũng hỗ trợ thêm vị trí từ xa mà
Một điều nữa tôi tò mò là vì sao lại dùng Prisma
Tauri giúp dễ chuyển xuống Rust khi cần tác vụ hiệu năng cao hoặc tích hợp với hệ điều hành, và cũng đã có sẵn đóng gói cho các nền tảng chính
Dùng React thì có thể tận dụng một hệ sinh thái tốt với rất nhiều component UI sẵn có
Điều này khác với hầu hết các framework GUI Rust native
Ngoài ra còn có thể tái sử dụng kỹ sư frontend cùng năng lực công nghệ web và cộng tác với designer của họ
Có thể nói chúng chưa chín muồi như Qt, nhưng so với thứ chạy trong trình duyệt thì trong nhiều trường hợp là đủ
Việc kho này đang ở giai đoạn alpha rất sớm và còn nhiều lỗi đã biết mà lại có nhiều GitHub star như vậy thì hơi khó tin
Hơn nữa trông có vẻ đã nhận đầu tư VC, điều này còn khó hiểu hơn cả việc langchain hay pinecone được đầu tư
Ít ra bên đó còn là các dự án dựa trên AI, còn dự án này thuộc một lĩnh vực đã được khai thác rất nhiều
Ngay cả nếu miễn phí vĩnh viễn thì có lẽ mọi người cũng không muốn dùng, và nếu có quảng cáo, theo dõi, thuê bao tháng thì lại càng không
Về cơ bản không có lý do để tin tưởng, nhưng có nhiều lý do để nghi ngờ
Đây không phải công kích cá nhân, nhưng nếu chưa từng cân nhắc góc nhìn này thì nên suy nghĩ thử
Màn hình đầu tiên sau “welcome” là đăng nhập
Không hiểu vì sao một trình quản lý tệp lại cần đăng nhập; thời đại này thật kỳ lạ
Lý do cần đăng nhập là vì đây là một hệ thống tệp từ xa
Nghĩ đến Dropbox sẽ đúng hơn là một trình quản lý tệp
Bản cập nhật tiếp theo sẽ thay đổi điều này
Cuối cùng, đăng nhập sẽ trở thành một cách để kết nối nhanh các thiết bị, giống như Tailscale
Một chỉ mục siêu dữ liệu có thể tìm kiếm và duyệt bao phủ cả lưu trữ đám mây và cục bộ rải rác, cả kho đã mount lẫn chưa mount, chắc chắn rất thú vị và trong một thời gian dài gần như là một kiểu “chén thánh”
Quản lý tài sản số không phải khái niệm mới, nhưng hiện không phải là lĩnh vực có nhiều lựa chọn
Portfolio hay bộ sản phẩm phức tạp của Adobe cung cấp nhiều chức năng như vậy, nhưng tập trung vào quy trình làm việc và metadata hơn là lưu trữ đám mây
Ngày nay phải rất thận trọng khi đưa thêm một dịch vụ phụ thuộc vào đám mây vào sử dụng
Xét đến mức nhạy cảm của “mọi tệp, bao gồm cả tệp cục bộ và ngoại tuyến”, self-hosting/on-premises có thể trở thành yêu cầu bắt buộc
Nếu cần tài khoản, có lẽ người ta sẽ muốn tích hợp với hệ thống quản lý danh tính hiện có thông qua OIDC hoặc SAML
Nếu công cụ này trở thành cửa ngõ duy nhất bắt buộc để xem toàn bộ tệp và người ta xây dựng quy trình làm việc trên đó, cũng cần các tính năng đảm bảo tính liên tục để có thể tin vào khả năng sẵn sàng
Hy vọng tiếp tục theo đuổi
Chưa có nơi nào giải quyết triệt để chuyện này
Dự án trông rất hay và tôi thích tham vọng của nó
Có vài ghi chú
Nên có một công tắc rõ ràng cho mọi truy cập WAN, và các công tắc gửi dữ liệu phân tích hoặc dữ liệu sử dụng nên tách riêng, mặc định là tắt
Tốt hơn nữa là biến những thứ này thành cờ ở thời điểm biên dịch
Trước đây terminal mới tên Warp rất hấp dẫn, nhưng mặc định gửi dữ liệu qua mạng nên lập tức trở thành lý do loại bỏ đối với nhiều người
Hy vọng lấy nhiều cảm hứng từ Windirstat và Everything, đặc biệt nên đặt hiệu năng tìm kiếm của Everything làm mục tiêu
Tôi thấy có trong roadmap rồi, nhưng xin nhắc lại là cần có tab
Cũng nên cân nhắc rời khỏi Prisma
Nó bọc cơ sở dữ liệu quá nhiều và có quá nhiều “ma thuật”
Có thể căn cứ chưa mạnh, nhưng tôi hơi lo rằng một ngày nào đó họ sẽ đổi giấy phép
Mong mọi người ngừng xem written in Rust ở đầu README như một tính năng
Mỗi khi thấy câu đó, tôi không nghĩ “chắc sẽ ổn định hơn”, mà nghĩ “đây là dự án sở thích của ai đó rồi”
Nếu là README thì với một dự án mã nguồn mở, đưa vào như một chi tiết liên quan có vẻ hợp lý