Skip to main content

Server Core Overview

Statsig Server Core

Statsig Server Core is our second generation of Server SDKs: a full rewrite with a shared, performance-focused core library that enables superior across-the-board perf and feature maturity across our Server SDKs. Server Core SDKs include:

  • Faster Evaluation: A shared, performance-focused Rust evaluation engine, that evaluates 3-5x as our pure native code SDKs.
  • Superior non-eval performance: more efficient network and CPU usage, plus other performance optimizations always arriving to each SDK.
  • Features new to Server SDKs: Parameter Stores, Contextual Multi-Armed Bandits, and more.
  • Quality-of-life improvements from certain SDKs: Observability Interface, streaming config changes (from the Statsig Forward Proxy) and more

Availability across SDKs

Server Core SDKs are available on an opt-in basis, with native SDKs still available and supported in all languages. If you're just getting started with Statsig, we recommend choosing a Server Core SDK if its convenient for you, but we continue to support bug fixes in our Legacy SDKs, and will until we set end-of-support dates for these SDKs. At that time - we'll also provide guidance to make migration as easy as possible.

  • Node: Stable
  • Python: Stable
  • Java: Stable
  • PHP: Stable
  • Rust: Stable
  • Elixir: Stable
  • Ruby: In Development, planned for Summer 2025
  • Go: In Development, planned for Summer 2025
  • C#: In Development, planned for Summer 2025

Technical differences

Build process: Statsig Server Core uses a core library written in Rust, with bindings written to other languages. In the vast majority of cases, this results in an unchanged development experience with superior performance, but given that the Rust code must compile into a binary usable in your development and deployment environments, some development snafus exist:

  • Choosing the right build: In most cases, the SDK's package manager will automatically install the versions you need. The notable exception is in Java - where our SDK will print out the right build for you, if it's not included at runtime.
  • Managing lockfiles: If your deployment and development environments require different builds (as is common), you'll want to include both versions in a lockfile like package-lock.json.
  • Untested environments: Certain environments, like the edge, aren't friendly to this new build process - and for now, we recommend using our native SDKs for the time being.

New Configuration Spec: Server Core uses a smaller "ruleset", or configuration spec. If you use the spec directly, your logic and parsing will have to change.

Support

If you have trouble with a Server Core SDK - we'd love to hear your feedback. Reach out in our Slack and we'll do our best to improve your experience!