Skip to content

classflow-api/sdks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClassFlow

ClassFlow Official SDKs

Idiomatic client libraries for the ClassFlow scheduling API — TypeScript, Python, Go and Java.

npm PyPI Go Reference Maven Central License: MIT

Website · API Documentation · Get an API Key · 中文


These are the official, MIT-licensed client libraries for the ClassFlow scheduling engine. They wrap https://api.classflowapi.com with idiomatic, ergonomic bindings in your language of choice — async-friendly, typed where the language supports it, and thin enough that you can read every line.

📦 Available Languages

Language Directory Package Status Min. Version
TypeScript / Node.js typescript/ @classflow-api/sdk Beta Node 18+
Python python/ classflow (PyPI) Beta 3.9+
Go go/ github.com/classflow-api/sdks/go Alpha 1.21+
Java java/ com.classflowapi:classflow-sdk Alpha 11+

Need a language we don't ship? Open an issue — the API is plain HTTP/JSON and easy to wrap.

🚀 30-Second Quick Start

TypeScript

npm install @classflow-api/sdk
import { ClassFlow } from '@classflow-api/sdk';

const cf = new ClassFlow({ apiKey: 'cf_your_api_key' });
const result = await cf.schedule({ /* timeSlots, courses, teachers, rooms, constraints */ });
console.log(result.metrics.score, result.assignments);

Python

pip install classflow
from classflow import ClassFlow

cf = ClassFlow(api_key="cf_your_api_key")
result = cf.schedule(time_slots=..., courses=..., teachers=..., rooms=..., constraints=[...])
print(result["metrics"]["score"], result["assignments"])

Go

go get github.com/classflow-api/sdks/go
cf := classflow.New("cf_your_api_key")
result, err := cf.Schedule(ctx, scheduleRequest)

Java

<dependency>
  <groupId>com.classflowapi</groupId>
  <artifactId>classflow-sdk</artifactId>
  <version>0.1.0</version>
</dependency>
ClassFlow cf = new ClassFlow("cf_your_api_key");
String result = cf.schedule(jsonPayload);

See each language's directory for full installation, configuration, and usage details.

✨ What the SDKs Cover

All four SDKs expose the same core surface:

  • schedule(...) — solve a scheduling problem
  • findSubstitutes(...) — suggest replacements when a teacher is absent
  • queryAvailability(...) — find free rooms / teachers in a time window
  • validate(...) — pre-flight check a problem before solving
  • usage() — current plan, quota, consumption

The TypeScript and Python SDKs additionally support streaming progress for long-running schedules and have first-class types/dataclasses for every entity.

🗺️ Repository Layout

typescript/   # @classflow-api/sdk — published to npm
python/       # classflow — published to PyPI
go/           # Go module — published to pkg.go.dev
java/         # Maven artifact — published to Maven Central

Each subdirectory is an independent, separately-versioned package with its own build, test and release pipeline.

🤝 Contributing

Contributions are welcome — bug fixes, idiomatic improvements, or new examples. Please:

  1. Open an issue first for non-trivial changes
  2. Run the language's test suite before submitting (npm test, pytest, go test, mvn test)
  3. Match the existing code style (we don't enforce a single global style across languages — each follows its community conventions)

For larger contributions, open a discussion or issue first so we can align on direction.

🔐 Security

If you discover a security issue in any of the SDKs, please email security@classflowapi.com rather than opening a public issue. We respond within 48 hours.

📄 License

MIT — © ClassFlow Inc.

🔗 Related Projects

About

Official ClassFlow API SDKs for TypeScript, Python, Go, and Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors