canvas-lms-api
A Rust client for the Instructure Canvas LMS REST API.
Quickstart
[]
= "0.7"
= { = "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.7)
Core: Course, User, Assignment (+ Group + Override), Submission, Enrollment, Section, Module (+ ModuleItem), Quiz (+ Question + Submission + Group + Report), Group (+ Membership + Category), Account, File, Folder, Page (+ Revision), DiscussionTopic (+ Entry), Progress, Tab, CustomGradebookColumn
Extended: AccountCalendar, AppointmentGroup, Blueprint, CalendarEvent, Collaboration, CommunicationChannel, ContentExport, ContentMigration, Conversation, EnrollmentTerm, EPortfolio, ExternalTool, Feature / FeatureFlag, GradeChangeLog, GradebookHistory, GradingPeriod, GradingStandard, JWT, Login, LtiResourceLink, Outcome / OutcomeGroup / OutcomeImport, Planner (Note + Override), Poll / PollChoice / PollSession / PollSubmission, Role, Rubric (+ Association + Assessment), 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.