Project Information
- Name of tool/project: Wikifunctions
- Project home page: wikifunctions.org
- Name of team requesting review: Abstract Wikipedia
- Primary contact: Cory Massaro
- Target date for deployment: March 31, 2025 (end of Q3 FY25)
- Link to code repository / patchset:
function-evaluator (rustversion)
function-schemata (rust)
- Link to scc output for general sizing of codebases (https://github.com/boyter/scc):
Description of the tool/project:
This project is a new version of the function evaluator service (current Node version is here). It is largely a rewrite of the existing functionality, in Rust instead of JavaScript. This will afford us finer control over the WASI runtime we're using to run community-submitted code in Python and JS.
Description of how the tool will be used at WMF:
This will eventually replace the existing function evaluator.
Dependencies
List dependencies, or upstream projects that this project relies on.
The dependencies can be found in the Cargo.toml and Cargo.lock files for the two repositories. For convenience, here are the Cargo.toml files:
function-evaluator:
[dependencies]
ambient-authority = "0.0.2"
anyhow = "1.0.95"
axum = "0.8.1"
axum-test = "17.2.0"
crossbeam-channel = "0.5.13"
futures = "0.3.31"
rustix = "0.31.0"
serde_json = "1.0.132"
tokio = { version = "1.42.0", features = [ "full" ] }
tower = "0.5.2"
wasi-common = { version = "20.0.0", features = [ "tokio" ] }
wasmtime = "20.0.0"function-schemata:
[dependencies] hex = "0.4.3" serde_json = "1.0.138" [dependencies.apache-avro] version = "0.17.0" features = ["snappy"]
Has this project been reviewed before?
Please link to tasks or wiki pages of previous reviews.
No.
Working test environment
Please link or describe setup process for setting up a test environment.
Post-deployment
Name of team responsible for tool/project after deployment and primary contact.
Abstract Wikipedia