edgebert 0.4.0

Fast local text embeddings library for Rust and WASM for BERT inference on native and edge devices with no dependencies.
Documentation
import init, { WasmModel, WasmModelType } from './pkg/edgebert.js';

let model = null;

self.onmessage = async function (e) {
    if (e.data.type === 'init') {
        try {
            self.postMessage({ type: 'log', message: 'Initializing WASM...' });
            await init();

            self.postMessage({ type: 'log', message: 'Loading model...' });

            model = await WasmModel.from_type(WasmModelType.MiniLML6V2);

            self.postMessage({ type: 'ready' });
        } catch (error) {
            self.postMessage({ type: 'error', error: error.message });
        }
    } else if (e.data.type === 'encode') {
        if (!model) {
            self.postMessage({ type: 'error', error: 'Model not initialized' });
            return;
        }

        try {
            const embeddings = model.encode(e.data.texts, true);
            self.postMessage({
                type: 'result',
                embeddings: Array.from(embeddings),
            });
        } catch (error) {
            self.postMessage({ type: 'error', error: error.message });
        }
    }
};