GSoC22: Summary Post
A blog post summarizing all my Google Summer of Code 2022 Work
Hello everyone. This is probably the final blog post I write before Google Summer of Code 2022 ends (hopefully not the final uefi one). In this post, I will summarize my GSoC22 work to make it more accessible to everyone.
I worked on implementing Rust std for UEFI targets. The current implementation can be found at tianocore/rust. The PR to upstream Rust is already open; however, it has not been merged yet since it is such a large PR and thus will take time.
Just a list of all PRs I opened as a part of GSoC22. While other people created some additional PRs to fix problems I found during my work; I do not include them since I wasn't the one who found the solution for those.
- Getting r-efi ready for use in Rust std: 4 commits
- Add TCP6 Protocol: 1 commit
- Add EFI_RNG_PROTOCOL: 1 commit
- Add EFI_TIMESTAMP_PROTOCOL: 1 commit
- Derive Default for Time: 1 commit
- Add TCP4 and IP4 protocols: 1 commit
- Fix MODE_CREATE value: 1 commit
- Make NotifyFunction Optional: 1 commit
- Add ICMP Error Definitions: 1 commit
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL: 2 commits
- Make RNG protocol members public: 1 commit
- Fix timestamp properties: 1 commit
- Implement Default for tcp4::ConfigData: 1 commit
- Add EFI_SHELL_PROTOCOL: 1 commit
- Add UDP Protocols: 2 commit
- Add Rust std support for x86_64-unknown-uefi: 81 commits. Still Open.
- Google Summer of Code 2022
- Use Restricted std in UEFI
- Using Rust main from a custom entry point
- Writing an Allocator for UEFI
- Using Rust main from a custom entry point (Part 2)
- GSoC 2022: Progress Report 1
- Implementing Stdio for UEFI
- GSoC 2022: Progress Report 2
- UEFI Rust std has a new home
- Writing UEFI Protocol in Rust
I will continue working on getting Rust std PR merged since it is still unmerged. I also have some more UEFI Rust Projects lined up, and I think I will keep working on them for the foreseeable future. Feel free to check out and experiment with using Rust for UEFI (with or without std).