Google Summer of Code Project Ideas
For information about OpenAFS's participation in the Google Summer of Code project, please see this page.
The following list represents some of our ideas and wishes for the project. However, suggesting your own idea is always encouraged. Please review the OpenAFS Gerrit and OpenAFS Contrib for projects already in progress.
Idea: afsio: Mount point and ACL creation
- Project Size: 175 hours
- Skill Level: Intermediate
- Languages: C
- Description: The
afsio
is a command line client which can read or write files out of the AFS filesystem without the requirement for a kernel module. It is currently limited to anonymous reading and writing files. In this project, the functionally would be expanded to authenticated access (via a security key), and the ability to create mount points within an AFS volume, and the ability to read and set access control lists on directories with AFS. This would allow site administrators and developers to create new AFS cells with only userspace command line tools on the servers.
Idea: netcat for rx
- Project Size: 175 hours
- Skill Level: Intermediate
- Languages: C
- Description: netcat (aka nc(1)) is a handy well-known utility for reading and writing data over TCP/UDP. This project would create a simple utility that is very similar to netcat or openssl s_client, but speaks Rx, the network protocol that OpenAFS uses. This would be useful for automated testing, but could also be used for debugging or simple shell scripts, or many other uses similar to netcat's. This project does not require existing knowledge of OpenAFS or Rx, but just familiarity with C, and networking and traditional Unix tools.
Idea: Rx language bindings
- Project Size: 175 hours
- Skill Level: Intermediate
- Languages: C
- Description: This project would create low-level bindings in Python or another language for using Rx, the network protocol that OpenAFS uses. These bindings would be useful in testing, or for creating higher-level utilities in other languages.
Idea: GNOME Shell Extension for OpenAFS
- Project Size: 175 hours
- Skill Level: Basic
- Languages: Javascript
- Description: Develop a GNOME Shell Extension to allow GNOME desktop users to graphically start and stop the OpenAFS client, and possibly acquire tokens and other useful user actions or configuration changes.
Idea: Server-side file search
- Project Size: 175 hours
- Skill Level: Advanced
- Languages: C
- Description: This project would add file-searching functionality to the OpenAFS fileserver, so tools like locate(1) or macOS's Spotlight could search the names or contents of files in OpenAFS without needing to fetch all of the contents over the network. This project can build on the project from GSoC 2022 that implemented a reverse-name lookup index.
Idea: Fileserver memory footprint autotuning
- Project Size: 175 hours
- Skill Level: Intermediate
- Languages: C
- Description:OpenAFS fileserver installations require a set of command line options to specify the amount of memory to be used by the fileserver process. These options need to be tuned to the target host. Presets are available for classes of machine sizes, but all of them are unusable small for modern environments. Instead of continuing to add new presets, in the project a new autotuning mode will be implemented to allow the fileserver to automatically adjust it's memory footprint to the available machine memory. A starting point for implementation is available in the OpenAFS gerrit code review system.
Idea: Modern, RxGK-only, secure ecosystem
- Project Size: 175 hours
- Skill Level: Intermediate
- Languages: C
- Description: The RxGK security class is available in development branches and provides current industry standard encryption types data over the wire, as well as other modern features. In this project the contributor would develop a RxGK-only, secure ecosystem that makes a clean break from legacy deployments. The developed code could be integrated into the tree as an option.