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.