OxiMedia

訪問看護の現場を例に、写真や音声にひそむ個人情報を、外部へ送らずに取り除く。

ファイルの選択・録音・書き出しを行っても、外部とは通信しません。

oximediav— (Pure Rust, Apache-2.0)
targetwasm32-unknown-unknown
wasm size235 KB (gzip 104 KB)
external requests
server round-trips0
C / C++ / Fortran0 bytes

ページ読込後の外部リクエスト:

計測は、画像・音声の読み込みが完了した時点から開始しています。ファイルの選択・録音・書き出しを行っても、この数は動きません。開発者ツールの Network タブでも確認できます。

実装コード

// crates/oximedia-wasm/src/document.rs:292-310 — verbatim, the code running above
pub fn redact_fill_inner(
    &mut self,
    x: u32,
    y: u32,
    width: u32,
    height: u32,
) -> Result<(), OxiMediaWasmError> {
    let rect = self.clip_rect(x, y, width, height)?;
    let stride = u32_as_usize(self.width) * 4;
    for row in rect.top..rect.bottom {
        for column in rect.left..rect.right {
            let index = row * stride + column * 4;
            if let Some(pixel) = self.rgba.get_mut(index..index + 3) {
                pixel.copy_from_slice(&INK_RGB);
            }
        }
    }
    Ok(())
}

これがいま上で動いているコードです。