canvas-lms-api
A Rust client for the Instructure Canvas LMS REST API.
Quickstart
[]
= "0.4"
= { = "1", = ["full"] }
use Canvas;
async
Features
| Feature | Default | Description |
|---|---|---|
async |
yes | Async API via tokio + reqwest |
blocking |
no | Synchronous wrapper (CanvasBlocking) |
new-quizzes |
no | New Quizzes endpoint (/api/quiz/v1/) |
graphql |
no | GraphQL endpoint support |
full |
no | All optional features |
Resources covered (v0.4)
Core: Course, User, Assignment, Submission, Enrollment, Section, Module, Quiz, Group, Account, File, Folder, Page, DiscussionTopic, Progress, Tab
Extended: AccountCalendar, AppointmentGroup, Blueprint, CalendarEvent, Collaboration, CommunicationChannel, ContentExport, ContentMigration, Conversation, EnrollmentTerm, EPortfolio, ExternalTool, Feature / FeatureFlag, GradeChangeLog, GradebookHistory, GradingPeriod, GradingStandard, JWT, LtiResourceLink, Outcome / OutcomeGroup, Planner (Note + Override), Poll / PollChoice / PollSession / PollSubmission, Role, Rubric, SisImport
Feature-gated: NewQuiz (new-quizzes), GraphQL queries (graphql)
Examples
Runnable example programs live in examples/. Each is a standalone Cargo project.
| Example | Description |
|---|---|
list-courses-and-assignments |
List all your courses and their assignments |
More examples to come.
Access tokens
Generate a token in Canvas: Account → Settings → Approved Integrations → New Access Token.
License
Licensed under the MIT License.
Acknowledgements
Inspired by canvasapi, the Python Canvas API library maintained by the University of Central Florida.