thebe-lite
Version:
Thebe extension library for WASM kernels via JupyterLite
69 lines (46 loc) • 1.86 kB
Markdown
# `thebe-lite`
Connect to a `pyodide` kernel via `jupyterlite` in `thebe-core` & `thebe`.
## Usage
### in `thebe`
To use JupyterLite with `thebe`, load this module on your page using a script tag **before** loading `thebe` itself.
```html
<script src="thebe-lite.min.js"></script>
<script src="https://unpkg.com/thebe@latest/dist/lib/index.js"></script>
```
`thebe` will then feature detect the library and use the module when appropriate option is set.
**Note:** at the moment, in order for `thebe-lite` to work, the entire package must be available at at the root of the host domain as `pyolite` currently requires wheels to be available at `/build/pypi`.
## with `npm`
First install the package:
`npm i thebe-core thebe-lite`
Thebe is loaded asynchronously so you need to copy the build artifacts into your project static directory (e.g. `public` in `react`) you can do that using:
`npx copy-thebe-assets <output_dir>`
e.g:
`npx copy-thebe-assets public/thebe`
## Interface
`thebe-lite` will extend the global `thebe` namespace, making the following available on `window`:
```javascript
window.thebe = {
...,
thebeLite: {
startJupyterLiteServer: () => Promise<ServiceManager>
}
}
```
In order to connect to a `jupyterlite` kernel with `thebe` use set the following options:
```javascript
{
useBinder: false,
useJupyterLite: true
}
```
When loading in typescript this interface is available as `ThebeLiteBundle` and a connection can be established by:
```typescript
import { makeConfiguration, ThebeServer } from 'thebe-core';
import { setupThebeLite } from 'thebe-lite';
setupThebeLite();
const config = makeConfiguration({});
const server = new ThebeServer(config);
await server.connectToJupyterLiteServer();
```
## Read More
For more examples of `thebe-lite` in use, see `apps/simple` and `apps/demo-core`.