Skip to content

Conversation

@pishposh
Copy link
Contributor

@pishposh pishposh commented Sep 9, 2025

Hi Statsig gang, this PR gates a few pieces of statsig-rust behind compiler directives for Wasm:

  • Switches to single-threaded Tokio runtime
  • Strips out local file event logging adapter
  • Stubs process ID

With these changes, I managed to get a Rust project using this crate to build to wasm32-wasip1 for deployment to Fastly Compute.

Notes

For LocalFileEventLoggingAdapter, I ended up gating the whole thing, but I guess another option for Wasm would be to just skip file locking. Apparently WASIp1 has no notion of it, and the file-guard dep refuses to compile to Wasm, while the new file-locking methods in Rust’s stdlib (1.89+) fail at runtime.

reqwest doesn’t build to wasm, but we need to use a custom network provider for Fastly Compute anyway. Here’s how we’ve configured Statsig in our app’s Cargo.toml:

statsig-rust = { ... default-features = false, features = ["custom_network_provider"] }

Also app-side, it seemed necessary to annotate main() with #[tokio::main(flavor = "current_thread")] to get exposure events properly queued and sent.

I’m new to Rust, so please let me know if there’s better ways of doing these things!

statsig-kong bot and others added 30 commits August 26, 2025 18:36
…ments [Stable] (#1740)

* Bot: Updated File Cargo.toml

* Bot: Version synchronized in 18 files

---------

Co-authored-by: statsig-kong[bot] <statsig-kong[bot]@users.noreply.github.com>
…741)

* Bot: Updated File Cargo.toml

* Bot: Version synchronized in 18 files

---------

Co-authored-by: statsig-kong[bot] <statsig-kong[bot]@users.noreply.github.com>
* Bot: Updated File Cargo.toml

* Bot: Version synchronized in 18 files

---------

Co-authored-by: statsig-kong[bot] <statsig-kong[bot]@users.noreply.github.com>
[auto][cherrypick] c132a1b chore: add env variables (#1742)
…] (#1745)

* Bot: Updated File Cargo.toml

* Bot: Version synchronized in 18 files

---------

Co-authored-by: statsig-kong[bot] <statsig-kong[bot]@users.noreply.github.com>
…le] (#1747)

* Bot: Updated File Cargo.toml

* Bot: Version synchronized in 18 files

---------

Co-authored-by: statsig-kong[bot] <statsig-kong[bot]@users.noreply.github.com>
[auto][cherrypick] 8b27a60 chore: add comments into java (#1749)
…le] (#1751)

* Bot: Updated File Cargo.toml

* Bot: Version synchronized in 18 files

---------

Co-authored-by: statsig-kong[bot] <statsig-kong[bot]@users.noreply.github.com>
* Bot: Updated File Cargo.toml

* Bot: Version synchronized in 18 files

---------

Co-authored-by: statsig-kong[bot] <statsig-kong[bot]@users.noreply.github.com>
…js core SDK (#1790)

[auto][cherrypick] 0b22710 feat(node): Add OutputLogger interface for Node.js core SDK (#1724)
[auto][cherrypick] acf380c fix(node): generate file (#1793)
* Use more specific version of rustler, and set runtime: false as the docs suggest

Signed-off-by: Chris Dosé <chris.dose@whatnot.com>

* Apply `mix format`

Signed-off-by: Chris Dosé <chris.dose@whatnot.com>

* Add a basic elixir formatting check

Signed-off-by: Chris Dosé <chris.dose@whatnot.com>

---------

Signed-off-by: Chris Dosé <chris.dose@whatnot.com>
Co-authored-by: Chris Dosé <chris.dose@whatnot.com>
@daniel-statsig
Copy link
Contributor

Thanks for the PR @pishposh, I have merged it internally and it should got out with the next release. I'll leave the issue open until the release is public

@pishposh
Copy link
Contributor Author

Thanks again @daniel-statsig!

@daniel-statsig
Copy link
Contributor

Closing this issue as this was published in 0.9.0-rc.1 as 37a22ad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants