pteropackages / pteroxide Goto Github PK
View Code? Open in Web Editor NEWA collection of efficient crate libraries for the Pterodactyl API
License: MIT License
A collection of efficient crate libraries for the Pterodactyl API
License: MIT License
The application and client APIs are the major / most important APIs in Pterodactyl that need to be supported for Pteroxide to be usable. This should include:
Having some kind of cache for endpoint resources is generally useful, and is even implemented in other packages like PteroJS. This would best fit as it's own crate though (likely pteroxide-cache
), respecting the modularity of each package.
The pteroxide-http
and pteroxide-models
crates are not really consistent in terms of documentation, and there are parts in both that don't follow the Rust standard for documenting crates. This will definitely require some work before making a major release.
In other packages like PteroJS, Pytero and Ptero.cr, there are separate methods for accessing multiple results of a resource and a paginated result of a resource. This is bad design IMO, and Pteroxide should not follow those implementations. I think that having a paginated response object returned for endpoints that return multiple resources would be better, Pydactyl implements this really well. We can take advantage of the iterator traits in Rust to achieve this.
I think it would be great if Pteroxide could support all the major Pterodactyl APIs (that being application, client and Wings), and I don't believe that any other API wrapper or library has implemented this kind of coverage for Pterodactyl so this would be a good model/example for other wrappers/libraries.
Implementation specific details will be added soon.
Currently this is in place of the files
field for the egg configuration object:
Pteroxide/pteroxide-models/src/application/egg.rs
Lines 33 to 37 in 19775e9
This is because the files
object can contain nested objects containing string, number, boolean and object values โ it's potentially recursive, and really hard to convey in Rust due to type unions not being a thing. One workaround could be a C-style union which is more like an object or named tuple with all the potential values, but implementation complexity may be a problem with that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.