A blazingly fast π library for interacting with Stud.IP written in Rust π¦.
This allows for interacting with Stud.IP, an online education platform π.
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 ππ
- 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 ππ₯
- Joining and leaving course groups πͺ
- Executing filtered global searches on the entire instance ππ
To use this crate, you will need to create an instance of the StudIp
struct.
You can do this with the login
method:
use stud_ip::StudIp;
let stud_ip = StudIp::login<MyIdP>("credentials.txt", "studip.example.com").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.