-
Notifications
You must be signed in to change notification settings - Fork 101
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #492 from armanbilge/topic/gsoc-ideas
Expand GSoC ideas page
- Loading branch information
Showing
3 changed files
with
111 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,76 @@ | ||
- title: "Scaladoc Search in Protosearch" | ||
description: "Protosearch offers an in-browser search experience for documentation. This project aims to add support for Scaladoc, the documentation system for Scala code. As a result of this work, searching for `flatMap` on the cats-effect documentation, for example, would return hits from the tutorial and the relevant method in the Scaladoc." | ||
# title | ||
# description: What is it about? What need does it address? What is its final goal? | ||
# prereqs: necessary prior knowledge (typically knowing Scala, and maybe other things) | ||
# difficulty: Easy / Medium / Hard. what will the tricky parts be? | ||
# length: short / medium / long (90 / 175 / 350 hours) | ||
# mentors: github handles | ||
# categories: AI / data / dev tools / apps / cloud / media / operating systems / programming languages / science / security / social / web | ||
|
||
- title: Machine learning inference in Cats Effect | ||
description: | ||
We want to make it possible to deploy machine learning inference as part of a larger web service without compromising the latency of other on-going requests. The goal of this project is to create a compiler to transform a pre-trained ML model into a sequence of Cats Effect `IO` steps that perform inference on some input. | ||
prereqs: Scala, ideally some experience with ML | ||
difficulty: Hard but doable. Will draw on knowledge of ML and compilers. | ||
length: long | ||
mentors: [armanbilge, djspiewak, ekrich, valencik] | ||
categories: [AI, web, programming languages] | ||
|
||
- title: "Streaming msgpack implementation" | ||
description: "The [msgpack](https://msgpack.org/) data format allows for efficient binary serialization of data. It would be great to have the ability to parse, transform, and emit data in a streaming fashion using FS2 in the [fs2-data](https://fs2-data.gnieh.org) library." | ||
prereqs: Scala, ideally some experience with FS2 and parsing | ||
difficulty: Medium. | ||
length: medium | ||
mentors: [satabin, ybasket] | ||
categories: [streaming, programming languages] | ||
|
||
- title: Scaladoc Search in Protosearch | ||
description: | ||
Protosearch offers an in-browser search experience for documentation. This project aims to add support for Scaladoc, the documentation system for Scala code. As a result of this work, searching for `flatMap` on the cats-effect documentation, for example, would return hits from the tutorial and the relevant method in the Scaladoc. | ||
prereqs: Scala | ||
difficulty: Medium. | ||
length: long | ||
mentors: [valencik] | ||
categories: [data, web] | ||
- title: "Fluent library for files and processes" | ||
description: "The `fs2.io.file` package is powerful, but using it in small scripts can involve boilerplate. This project aims to create a fluent library for working with files and processes in Scala. A particular focus will be easy integration with the Typelevel Toolkit" | ||
categories: [libraries] | ||
|
||
- title: Fluent library for files and processes | ||
description: | ||
FS2 has powerful APIs for streaming I/O but using it in small scripts can involve boilerplate. This project aims to create a fluent library for working with files and processes in Scala. A particular focus will be easy integration with the [Typelevel Toolkit](https://typelevel.org/toolkit). | ||
prereqs: Scala, interest in Functional Programming | ||
difficulty: Medium. | ||
length: medium | ||
mentors: [toniogela, zetashift] | ||
categories: [programming languages] | ||
|
||
- title: Serverless integrations for Feral | ||
description: | ||
Feral is a Typelevel library for building serverless functions that currently supports AWS Lambda. We want to support other cloud providers, such as Google, Cloudflare, and Vercel. | ||
prereqs: Scala, interest in Functional Programming, ideally experience with serverless | ||
difficulty: Medium. | ||
length: medium | ||
mentors: [armanbilge] | ||
categories: [cloud, programming languages] | ||
|
||
- title: Native I/O backend for FS2 JVM | ||
description: | ||
FS2 on the JVM currently implements its networking API using JDK NIO. Unfortunately this indirection incurs a non-trivial performance penalty. We want to replace the use of JDK NIO with direct calls to system I/O APIs such as `epoll` and `kqueue`. | ||
prereqs: Scala, ability to read C | ||
difficulty: Medium. | ||
length: long | ||
mentors: [antoniojimeneznieto, djspiewak, armanbilge] | ||
categories: [operating systems, programming languages] | ||
|
||
- title: Production-ready io_uring interop layer | ||
description: A GSoC 2023 project prototyped a new networking I/O layer for FS2 based on the Linux io_uring syscall interface that improved the performance of HTTP servers by more than 3x. Now we need help to make this production-ready by writing code to interoperate with io_uring from the JVM. | ||
prereqs: Java or Scala, ideally some experience with C and JNI | ||
difficulty: Medium. | ||
length: long | ||
mentors: [antoniojimeneznieto, djspiewak, armanbilge] | ||
categories: [operating systems, programming languages] | ||
|
||
- title: "Streaming implementation of an XQuery subset" | ||
description: "XQuery allows for transforming XML data in a declarative way. Based on the generic streaming query engine added into the [fs2-data](https://fs2-data.gnieh.org) library, write a frontend to implement a streamable subset of XQuery." | ||
prereqs: Scala, ideally some experience with XQuery | ||
difficulty: Hard. | ||
length: long | ||
mentors: [satabin] | ||
categories: [data, streaming, programming languages] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,38 @@ | ||
<a href="{{ project.github }}" class="gsoc-item"> | ||
<div class="gsoc-item"> | ||
<div class="gsoc-item-content"> | ||
<div> | ||
<img src="{{ site.baseurl }}/img/assets/icon-about-open-source.svg" alt=""> | ||
<h3>{{ project.title }}</h3> | ||
</div> | ||
<p>{{ project.description }}</p> | ||
<p>{{ project.description | markdownify }}</p> | ||
|
||
<h5>Prerequisites</h5> | ||
<p>{{ project.prereqs | markdownify }}</p> | ||
|
||
<h5>Expected Difficulty</h5> | ||
<p>{{ project.difficulty | markdownify }}</p> | ||
|
||
<h5>Expected Length</h5> | ||
<p> | ||
{% if project.length == "short" %} | ||
Short (~ 90 hours) | ||
{% elsif project.length == "medium" %} | ||
Medium (~ 175 hours) | ||
{% elsif project.length == "long" %} | ||
Long (~ 350 hours) | ||
{% endif %} | ||
</p> | ||
|
||
<h5>Mentors</h5> | ||
<p> | ||
{% for mentor in project.mentors %} | ||
<a href="https://github.com/{{ mentor }}">@{{ mentor }}</a> | ||
{% endfor %} | ||
</p> | ||
</div> | ||
<div class="project-item-tag"> | ||
<p>{{ project.categories | join: " / "}}</p> | ||
{% for category in project.categories %} | ||
<p>{{ category }}</p> | ||
{% endfor %} | ||
</div> | ||
</a> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters