iodide-project / iodide-project/iodide

update language plugin handling code to work with non-local language plugins

Open
#2,255 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
1.5k
Forks
145
PR merge metrics
No merged PRs in 30d

Description

the current schema for language plugins is:

```
export const languageSchema = {
type: "object",
properties: {
pluginType: { type: "string", enum: ["language"] },
languageId: { type: "string" },
displayName: { type: "string" },
module: { type: "string" },
evaluator: { type: "string" },
asyncEvaluator: { type: "string" },
url: { type: "string" }
},
additionalProperties: false
};
```

Of these, for remote languages we probably just need
- pluginType (which could be e.g. "remote-language", "remote-kernel", "remote-evaluation" or something else probably including the word "remote"),
- languageId, and
- displayName

But surely we'll need to add other fields to handle remote kernels.

@jezdez you're closest to this at the moment, what other info will a language plugin need to define in order to be routed and handled correctly by iodide (obviously we don't need to think of everything, but if we know of things that we'll need for sure, we can add them)?

i think that as soon as we have an initial set of fields, me or @mdboom could do a quick PR to add the machinery for loading remote language kernel plugins pretty easily. (for the time being, we could set the evaluation to be a no-op in the case of a remote-eval)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.