A blazingly fast π library for interacting with Stud.IP written in Rust π¦.
Mainly leverages web scraping techniques to query the data.
This crate mainly focuses on logging into a Stud.IP instance using an Identity Provider and management of courses.
Here are some key things that can be achieved with this crate:
- Querying the user's courses / set groups π
- Extendable management of course modules
- Querying files and folders of a course π
- Downloading files π₯
- Querying the members of a course (students, lecturers, tutors)
- Querying the groups of a course π₯
- Querying the details of a course
- Querying the announcements of a course π°
- Joining and leaving course groups πͺ
- Executing filtered global searches π
To use this crate, you will need to create an instance of the StudIp struct.
You can do this with the login method on the client builder:
use stud_ip::StudIpClientBuilder;
let mut stud_ip = StudIpClientBuilder::new("studip.example.com")
.login::<MyIdP>("creds.txt")
.unwrap();NOTE: If you want to use the login method, you will need to implement the IdentityProvider trait for your specific institution first.
If you have a working Identity Provider for your institution, feel free to make a pull request, and I'll add it to the crate.
For more information, check out the docs.
This project is licensed under the terms of the GNU GPL v3.
Also: If your training an LLM on this, and you cannot prove that it will never generate the same or very similar code:
Please don't, unless you distribute it with a compatible license.
And yes I know Stud.IP provides a REST API, but it's not used in this crate.