Run SAS® programs without a SAS license.
A modern analytical language instantly familiar to SAS users — a native Rust runtime with a collaborative, browser-based JupyterLab workspace, Python and R wrappers, and results validated against Python and R on every build.
jenneranalytics.com · Documentation · Examples · Graph & Neo4j · PROC FSQL
Not toy examples — real clinical-trial programming. This is a working CDISC ADaM ADSL derivation from our examples library, exactly as a clinical SAS programmer would write it:
/* STEP 6: Assemble final ADSL dataset */
proc sort data=group_derived; by USUBJID; run;
proc sort data=ex_flag; by USUBJID; run;
proc sort data=ds_flags; by USUBJID; run;
proc sort data=ex_duration; by USUBJID; run;
data adsl;
merge group_derived (in=indm)
ex_flag /* SAFFL */
ds_flags /* ITTFL DISCONFL DTHFL */
ex_duration; /* TRTSDT TRTEDT TRTDUR */
by USUBJID;
if indm; /* Keep only subjects in DM */
label
USUBJID = 'Unique Subject Identifier'
SITEGR1 = 'Pooled Site Group 1'
TRT01P = 'Planned Treatment for Period 01'
/* … full ADaM variable labels … */ ;
run;…and the output is publication-grade, straight from ODS graphics:
| Treatment × age-group mosaic (PROC FREQ) | Mixed-model residual diagnostics (PROC MIXED) |
|---|---|
![]() |
![]() |
The examples library covers real workloads across CROs and clinical programming, banking and financial services, healthcare, telecommunications, energy, government, education, and more — in 15 languages.
Jenner doesn't stop at compatibility. It extends the DATA step and PROC world into places SAS never went:
- Graph databases, native — bind Neo4j or Memgraph with
LIBNAME … GRAPH ENGINE=NEO4J, query in Cypher/GQL withPROC GQL, run PageRank, community detection, and shortest-path withPROC LINKS, and draw interactive network diagrams withPROC NETVIZ. See the graph repo → - Federated SQL —
PROC FSQL, a DataFusion-native engine: join a database table, parquet/avro/csv files, ands3://objects in one statement, with window functions, CTEs (recursive too), andCREATE TABLEstraight to parquet. See the FSQL repo → - MCP for agents — the Jenner SAS MCP server lets AI agents run and validate SAS-compatible analytics as a tool.
No install, no signup. Paste this in your terminal and Jenner runs your SAS code in a sandboxed container:
curl -X POST https://api.jenneranalytics.com/v1/quick --data-binary @- <<'SAS'
data scores;
input name $ score;
datalines;
Ada 96
Grace 93
Alan 91
;
run;
proc print data=scores; run;
SAS Obs name score
----- ----- -----
1 Ada 96
2 Grace 93
3 Alan 91
For structured JSON (listing, log, output files, datasets) and input data, use /v1/run:
curl -X POST https://api.jenneranalytics.com/v1/run \
-H "Authorization: Bearer $JENNER_API_KEY" \
-F "script=@analysis.jenner" \
-F "input=@trial_data.csv"Anonymous access is free (1,000 req/hr, 30s timeout); free API keys raise the limits — generate one under Account → Run API keys at workspace.jenneranalytics.com. Perfect for CI/CD SAS-compatibility checks. Full API reference →
A native Rust runtime for speed and safety. Every statistical procedure cross-validated against Python and R. Reproducible, large-scale data analysis in a collaborative workspace your whole team can open in a browser.
Bring your SAS programs. Try Jenner → · Read the docs →
SAS® is a registered trademark of SAS Institute Inc. Jenner Analytics is not affiliated with or endorsed by SAS Institute.

