filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
377 stars 308 forks source link

Open Grant Proposal: Cross-Platform FUSE API #1826

Open markg85 opened 1 week ago

markg85 commented 1 week ago

Open Grant Proposal: Cross-Platform FUSE API

Project Name: Cross-Platform FUSE API

Proposal Category: Developer and data tooling

Individual or Entity Name: Individual

Proposer: @markg85

Project Repo(s) https://github.com/crazyfuse (This project will be called Crazyfuse and will live in these repositories)

(Optional) Filecoin ecosystem affiliations: None

(Optional) Technical Sponsor: None

Do you agree to open source all work you do on behalf of this RFP under the MIT/Apache-2 dual-license?: Yes (I intent to use the MIT-0 license)

Project Summary

The goal of this project is to create a cross-platform FUSE (Filesystem in Userspace) API that enables developers to create filesystems that work seamlessly across multiple platforms, including Windows, macOS, and Linux. This API will provide a unified interface for interacting with local filesystems, allowing projects to integrate with these systems more easily.

Currently, developing a filesystem that works across multiple platforms is a challenging task, requiring a significant amount of time and effort to implement and maintain platform-specific code. The lack of a standardized, cross-platform FUSE API hinders the adoption of filesystems in various projects, limiting their ability to provide a seamless user experience.

This project aims to create a foundational infrastructural component that extends beyond the scope of Filecoin/IPFS, but rather addresses a widespread need in filesystem development. By providing a cross-platform FUSE API, we can simplify the process of developing and deploying filesystems, making it easier for projects to integrate with local systems.

Impact

The proposed project will have a significant impact on the Filecoin and IPFS ecosystems by providing a standardized, cross-platform FUSE API that enables developers to create filesystems that work seamlessly across multiple platforms. This will simplify the process of developing and deploying filesystems, making it easier for projects to integrate with local systems.

The benefits of this project include:

The risks of not getting this right include:

Success for this project can be measured by the adoption of the cross-platform FUSE API in various projects and the simplicity of developing and deploying filesystems.

Outcomes

The final outcome of this project is a new, well-documented, cross-platform FUSE API that enables developers to create filesystems that work seamlessly across multiple platforms. To demonstrate the effectiveness of the API, a proof-of-concept example implementation will be provided, which will work on at least Linux and Windows. This implementation will be a fully functional filesystem, featuring:

The API will be thoroughly documented on a website, providing clear instructions and guidelines for developers to create their own filesystems using the API. This will enable developers to build a wide range of applications and services that can leverage the power of filesystems, without requiring users to have extensive technical knowledge or experience.

By providing a low-barrier-to-entry solution for users to interact with filesystems, we can increase adoption and usage of decentralized storage solutions, and enable a wider range of use cases and applications that can benefit from the power of filesystems.

Adoption, Reach, and Growth Strategies

The target audience for the cross-platform FUSE API are projects that manage user data in various forms. The primary goal is to enable these projects to make their data accessible to users on their local file browser.

To promote the adoption of the API, I will employ the following strategies:

Note: The projects mentioned above are just a few examples of the many potential candidates that could benefit from this API. However, it is essential to contact and engage with relevant persons in each of these projects to gauge their interest, gather feedback, and ensure that the API meets their specific needs and requirements.

Development Roadmap

The development process will be broken down into 5 milestones, with estimated timelines and resources required for each milestone.

Milestone 1: Windows Backend Implementation

Milestone 2: Linux Backend Implementation

Milestone 3: macOS Backend Implementation

Milestone 4: FUSE API Development

Milestone 5: Proof of Concept and Documentation

Assuming all milestones can be completed as planned, the total project duration is estimated to be approximately 7 months.

Total Budget Requested

I request funding on a month-by-month basis for the duration of the project, which is currently estimated to be approximately 7 months. Each month, an automatic transfer of €20,000 will be required to ensure the project's continued progress. The total amount of money requested for the entire 7-month period is €140,000.

To ensure the project's success, I propose that we schedule a monthly call to monitor progress, discuss any challenges or risks, and make adjustments to the project plan as needed. If there is a risk of the project taking longer than estimated, we can decide together whether it makes sense to continue with the project and allocate additional funding.

Milestone # Description Deliverables Completion Date Funding
1 Windows Backend Implementation Functional Windows backend for FUSE API - -
2 Linux Backend Implementation Functional Linux backend for FUSE API - -
3 macOS Backend Implementation Functional macOS backend for FUSE API - -
4 FUSE API Development Cross-platform FUSE API - -
5 Proof of Concept and Documentation Working proof of concept and comprehensive documentation - -

Maintenance and Upgrade Plans

To ensure the long-term sustainability of the FUSE API, I plan to leverage the open-source nature of the project to encourage community involvement and contributions.

By relying on a combination of community-driven maintenance, personal investment, and commercial support, I believe that the FUSE API can continue to evolve and improve over time, even after the initial development phase is complete.

Team

Team Members

Team Member LinkedIn Profiles

Team Website

Relevant Experience

I have experience working on projects that aim to make decentralized technologies more accessible to the average user. In the past, I have worked on integrating IPFS protocols into existing tools, such as ffmpeg and curl. I am confident that I can bring this project to a successful end.

Team code repositories

Additional Information

Please contact me at markg85@gmail.com for discussing the grant agreement and general next steps.

Although the project will be developed under the terms of the MIT/Apache-2 dual-license, I personally prefer to release my work under the MIT-0 license.

Throughout the development of this project, I intend to attend all relevant Filecoin and IPFS conferences to share the project's progress and engage with the community. I would greatly appreciate sponsorship for attending these events, covering travel costs, accommodation, and event registration fees. Please note that the time spent attending these events will not be included in the project's milestones and duration.

By supporting this project, you will not only be contributing to the development of a vital piece of infrastructure but also enabling me to share this work with the broader community, fostering collaboration and growth in the ecosystem.

markg85 commented 1 day ago

I updated the following sections:

In terms of budget/time (given that this is quite a bit higher then the 50k max). This is a huge project where 7 months is the bare minimum. It cannot be easily split up in smaller scoped grants because of inter-dependencies. The API development is dependent on at least windows and linux. Mac is a bit of a weird one here because it has just (in sequoia) introduced a new API for writing user space filesystems but it's not fully documented yet. My focus will be on Windows+Linux initially regardless, mac will be done last anyhow.