ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β collect β process β predict β deploy β in plain English. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Section | Description | |
|---|---|---|
| π | What is CherryScript? | Overview & philosophy |
| β¨ | Feature Highlights | What you can do |
| β‘ | Quick Start | Up and running in 60 seconds |
| π€ | Language Syntax | Core language constructs |
| ποΈ | Database Integration | MySQL / PostgreSQL |
| π€ | AI & Machine Learning | H2O AutoML pipelines |
| π | Model Deployment | REST API in one line |
| π¦ | Installation | Full setup guide |
| πΊοΈ | Roadmap | What's coming next |
| π€ | Contributing | Join the community |
| π | License | MIT |
CherryScript is an expressive, human-readable scripting language designed to unify data collection, ML pipelines, and AI model deployment behind a single, clean syntax.
Instead of stitching together Python scripts, YAML configs, SQL queries, and deployment manifests β you write plain CherryScript and let the runtime handle the rest.
// Three lines from raw data to live API π
collect images from "dataset/raw"
process using "h2o_automl"
deploy model "vision_classifier" to "http://api.myapp.com/predict"
Built by Cherry Computer Ltd. β making data science accessible, one line at a time.
|
|
|
|
|
|
# Clone the repository
git clone https://github.com/Infinite-Networker/CherryScript.git
cd CherryScript
# Install core package
pip install -e .
# Or with ML support
pip install -e ".[ml]"
# Verify install
cherryscript --versionCreate a file hello.cherry:
// hello.cherry β your first CherryScript program
var name = "World"
var version = 1.0
print(`Hello, ${name}! Welcome to CherryScript v${version}`)
// Variables & types
var fruits = ["cherry", "mango", "kiwi"]
var profile = { "lang": "CherryScript", "purpose": "AI Automation" }
// Loop
for fruit in fruits {
print("π", fruit)
}
// Functions
fn greet(person) {
return `Hi ${person}, ready to automate some AI? π`
}
print(greet("Developer"))
Run it:
cherryscript hello.cherrycherryscript --interactive
# >>> var x = 42
# >>> print("The answer is", x)
# The answer is 42var message = "Hello CherryScript" // mutable
let PI = 3.14159 // constant-intent
var score = 98.6
var active = true
var tags = ["ml", "automation", "ai"]
var config = { "debug": false, "max_epochs": 100 }
// if / else if / else
if (score >= 90) {
print("π Grade: A")
} else if (score >= 75) {
print("β
Grade: B")
} else {
print("π Keep studying!")
}
// for-in loop
for tag in tags {
print("Tag:", tag)
}
// while loop
var counter = 0
while (counter < 5) {
print("Iteration:", counter)
counter = counter + 1
}
fn calculate_accuracy(correct, total) {
return (correct / total) * 100
}
fn classify_model(auc) {
if (auc >= 0.95) { return "Excellent π" }
else if (auc >= 0.85) { return "Good β
" }
else { return "Needs Improvement β οΈ" }
}
var accuracy = calculate_accuracy(94, 100)
print("Accuracy:", accuracy, "%")
print("Rating:", classify_model(0.96))
var model_name = "ChurnPredictor"
var auc = 0.978
print(`Model ${model_name} achieved AUC of ${auc}`)
// β Model ChurnPredictor achieved AUC of 0.978
// Connect to MySQL or PostgreSQL
var db = connect("mysql://user:password@localhost/sales_db")
// Query data
var customers = db.query("SELECT * FROM customers WHERE active = true")
print("Loaded", len(customers), "customers")
// Process results
var vip = []
for c in customers {
if (c["lifetime_value"] > 5000) {
vip.append(c["name"])
}
}
print("VIP customers:", vip)
π Supported databases: MySQL, PostgreSQL
π Coming soon: MongoDB, Redis, BigQuery, Snowflake
// 1. Load your data
var db = connect("mysql://user:pass@localhost/crm")
var data = db.query("SELECT age, income, churn FROM customers")
// 2. Build an H2O frame
var frame = h2o.frame(data)
// 3. Train AutoML β zero config needed
var model = h2o.automl(frame, "churn")
// 4. Inspect the leaderboard
print("Best model:", model.name)
print("Model type:", model.model_type)
for entry in model.leaderboard {
print(" -", entry["model_id"], "| AUC:", entry["auc"])
}
// 5. Predict on new data
var new_data = [{ "age": 28, "income": 72000 }]
var predictions = model.predict(h2o.frame(new_data))
print("Churn probability:", predictions[0]["confidence"])
// Generate ready-to-ship model wrappers
export to python // β model_server.py
export to php // β ModelPredictor.php
export to java // β ModelPredictor.java
// Deploy model as a live REST API (FastAPI under the hood)
var endpoint = deploy(model, "http://0.0.0.0:8080/predict")
print("β
API live at:", endpoint.url)
print("π Health check:", endpoint.url.replace("/predict", "/health"))
// Call your API
// POST http://0.0.0.0:8080/predict
// Body: { "rows": [{ "age": 35, "income": 60000 }] }
// Returns: { "predictions": [{ "prediction": 1, "confidence": 0.85 }] }
// Graceful teardown
undeploy(endpoint, 5.0)
print("π API offline")
| Requirement | Version | Notes |
|---|---|---|
| Python | β₯ 3.8 |
Required |
| pip | β₯ 21.0 |
Required |
| MySQL / PostgreSQL | Any | Optional β needed for DB features |
| Java 8+ | 8 or 11 |
Optional β needed for H2O AutoML |
# Option 1: Core only (no ML dependencies)
pip install -e .
# Option 2: With database support
pip install -e ".[db]"
# Option 3: With ML support
pip install -e ".[ml]"
# Option 4: With deployment support
pip install -e ".[deploy]"
# Option 5: Everything
pip install -e ".[all]"
# Option 6: Development mode (includes testing tools)
pip install -e ".[dev]"cherryscript --version
# β CherryScript 1.0.0
cherryscript -c 'print("π CherryScript is ready!")'
# β π CherryScript is ready!CherryScript/
βββ π cherryscript/ # Core package
β βββ __init__.py # Version & exports
β βββ parser.py # Tokenizer & AST parser
β βββ cli/
β β βββ __init__.py # CLI entry point & REPL
β βββ runtime/
β βββ __init__.py # Runtime exports
β βββ interpreter.py # Statement evaluator
β βββ adapters.py # DB, H2O, Deploy adapters
β
βββ π docs/ # Documentation
β βββ ROADMAP.md # Feature timeline
β βββ SYNTAX_GUIDE.md # Full language reference
β
βββ π§ͺ examples/ # Sample .cherry scripts
β βββ test.cherry # Full feature showcase
β βββ ml_pipeline.cherry # ML pipeline example
β βββ data_analysis.cherry # Business intelligence example
β βββ deploy_api.cherry # Deployment walkthrough
β
βββ π¬ tests/ # Test suite
β βββ test_parser.py
β βββ test_interpreter.py
β
βββ βοΈ .github/
β βββ workflows/ci.yml # GitHub Actions CI
β βββ ISSUE_TEMPLATE/ # Bug & feature templates
β βββ pull_request_template.md
β
βββ pyproject.toml # Package configuration
βββ requirements.txt # Pinned dependencies
βββ CHANGELOG.md # Version history
βββ CONTRIBUTING.md # Contribution guide
βββ LICENSE # MIT License
See
docs/ROADMAP.mdfor the full detailed plan.
| Quarter | Milestone | Status |
|---|---|---|
| Q1 2024 | β v1.0 β Core interpreter, CLI, H2O AutoML, MySQL, REST deploy | Done |
| Q2 2024 | π v2.0 β Plugin system, VS Code extension, NoSQL support | Planned |
| Q3 2024 | π v3.0 β JIT compilation, PyTorch/TF bridge, WASM | Planned |
| Q4 2024 | π v3.5 β Enterprise: RBAC, SSO, Kubernetes deploy | Planned |
| Q1 2025 | π v4.0 β AI-assisted coding, natural language β CherryScript | Planned |
| Q2 2025 | π v5.0 β CherryStudio web IDE, model marketplace | Planned |
We β€οΈ contributors! Check out CONTRIBUTING.md for full guidelines.
# 1. Fork the repo on GitHub
# 2. Clone your fork
git clone https://github.com/<your-username>/CherryScript.git
cd CherryScript
# 3. Create a feature branch
git checkout -b feature/my-awesome-feature
# 4. Install dev dependencies
pip install -e ".[dev]"
# 5. Make your changes, run tests
pytest tests/ -v --cov=cherryscript
# 6. Commit & push
git commit -m "feat: add my awesome feature"
git push origin feature/my-awesome-feature
# 7. Open a Pull Request πLook for issues tagged good-first-issue β these are specifically selected for new contributors.
| Channel | Link |
|---|---|
| π Bug Reports | GitHub Issues |
| π‘ Feature Requests | GitHub Issues |
| π¬ Discussions | GitHub Discussions |
| π Documentation | /docs |
| π Changelog | CHANGELOG.md |
MIT License β Β© 2024 Cherry Computer Ltd.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software.
See LICENSE for full text.