npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ekotek/core-testing-interaction

v0.1.0

Published

Minimal cross-platform string echo core

Readme

core-testing-interaction

core-testing-interaction is a small Rust library with one operation:

assert_eq!(core_testing_interaction::echo("hello".to_owned()), "hello");

echo accepts one String and returns exactly that value, including empty and Unicode strings.

Build and test

cargo test

Platform packages

All generated artifacts are written beneath target/.

| Platform | Command | Output | | --- | --- | --- | | iOS | scripts/build-ios.sh | target/<triple>/release/ libraries and target/bindings/ios/core_testing_interaction.swift | | Android | scripts/build-android.sh | target/<triple>/release/ libraries and target/bindings/android/uniffi/core_testing_interaction/core_testing_interaction.kt | | WebAssembly | scripts/build-wasm.sh | target/wasm/core_testing_interaction_bg.wasm and browser JavaScript/TypeScript glue |

The iOS and Android scripts use the crate-local UniFFI generator, so no global uniffi-bindgen installation is required. The WebAssembly script requires wasm-bindgen 0.2.127:

cargo install wasm-bindgen-cli --version 0.2.127 --locked

Publishing the WebAssembly package to npm

The web team consumes this crate as an npm package. scripts/publish-wasm.sh builds it with wasm-pack and publishes it to npm as a public scoped package (@ekotek/core-testing-interaction by default).

Prerequisites:

cargo install wasm-pack
rustup target add wasm32-unknown-unknown
npm login   # or set NODE_AUTH_TOKEN in the environment for CI

The @ekotek organization must exist on npmjs.com and your account must be a member (create it at npmjs.com → "Add Organization"). Then:

scripts/publish-wasm.sh              # build + publish
DRY_RUN=1 scripts/publish-wasm.sh    # build + `npm publish --dry-run` only
NPM_SCOPE=myorg scripts/publish-wasm.sh   # publish under a different scope

Bump version in Cargo.toml before each publish — npm rejects re-publishing an existing version. The web team then installs and calls it:

npm install @ekotek/core-testing-interaction
import { echo } from "@ekotek/core-testing-interaction";

console.log(echo("xin chào 👋")); // "xin chào 👋"

The bundler target used here needs no manual init() call under Webpack, Vite, or Rollup.

Prerequisites

Install the Rust target for every architecture you intend to package. The scripts cover these targets:

rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
rustup target add wasm32-unknown-unknown

iOS builds must run on macOS with Xcode installed so Cargo can use the iPhoneOS SDK. Android builds need an Android NDK and Cargo linkers configured for each Android target (for example, through cargo-ndk or target-specific CARGO_TARGET_*_LINKER variables). WASM builds need only the Rust target and the pinned wasm-bindgen CLI above.