erikkvietelaitis / COS40005-Intrusion-Detection-System

Host-based intrusion detection system
0 stars 0 forks source link

Review of Programming Languages #5

Open erikkvietelaitis opened 7 months ago

erikkvietelaitis commented 7 months ago

Meeting open 4:45pm Team Sub-meeting: Present: Ben, Erik, Lachlan, Simon Absent: Sean, Sam

Points: Use of google drive for live collab docs Simon will look into Python debian-based on Rust: looking into Libraries and the like --- PSutil Lachlan will look into Rust based libraries and the like Erik will continue with GitHub arrangement Assignments coming up for submission (end of the month)

Meeting close 5pm

Originally posted by @erikkvietelaitis in #2

As Per the meeting with the client today, they are flexible with how we program and develop the IDS. @erikkvietelaitis, Susggeted the idea of using Rust due to the Linux Kernal is developed using it, making it for a easier intergration and development with Linux.

Rust has currently got extensive documention https://doc.rust-lang.org/book/ https://doc.rust-lang.org/rustc/what-is-rustc.html https://doc.rust-lang.org/cargo/

Simon will look into Python debian-based on Rust: looking into Libraries and the like --PSutil

Sam should conduct a review Rust and Linux? Frameworks to retrrive system utilities?

Lachlan should look into Rust based libraries / Packages Rust (Cargo) Vs NPM Vs Ruby Package Mangment Vs Python Package Managment (https://dioxuslabs.com/)

Sean should conduct a review related to Rust frontend frameworks Vs other front end frameworks (React, Angular, Vue) (https://dioxuslabs.com/)

Ben should conduct a review Rust Vs C#, and try to develop a pros and cons list for backend developmen

Erik will continue with GitHub arrangement + Linux Application installation methods ?FlatPack Vs Deb Pacakagemangment

NOTE: Of course if you dont want to do what has been suggested all good just tyring to get some inital build blocks out

stackingheaps commented 7 months ago

Comparison between Rust and front-end frameworks React, Angular, and Vue:

Rust

Pros: Because of its remarkable speed and efficiency, Rust is a great choice for developing high-speed applications, such as operating systems. It emphasizes safety and software. It's reliable and secure because common coding errors are reduced. Concurrent programming is made easier with Rust, allowing programmers to create multi-threaded apps without worrying about data conflicts. Cons: Rust has a steep learning curve, especially for people who are not familiar with low-level concepts or are new to programming. The ecosystem for it is still developing, and it might not have as many resources and libraries as more well-established languages like JavaScript. Rust development tooling could not be as developed or intuitive as other languages, which could make the process more difficult.

React

Pros: Developers who are already familiar with JavaScript can now construct interactive user interfaces more easily with React. Because of its large community support, developers are guaranteed to find tools and support to help them overcome obstacles. The implementation of React's virtual DOM enables quick updates and smooth user experiences. Cons: The complexity of React can grow as projects get bigger, which might be difficult for developers who are not familiar with the framework. Advanced React topics like state management and routing can have a steep learning curve. Developers may incur maintenance overhead if they must constantly modify their codebases in response to React's frequent upgrades.

Angular

Pros: Angular is a good choice for creating large-scale apps because it comes with a plethora of functionality right out of the box. Because of its two-way data binding, developer productivity is increased by streamlining state management and minimising boilerplate code. The dependency injection framework that is integrated into Angular encourages testability and modularity in applications. Cons: The large feature set of Angular can be overwhelming for new users or smaller applications. Due to its dependency on two-way data binding, the system may have performance overhead, particularly in contexts with limited resources. Migration issues arise because major Angular version releases frequently need substantial modifications to existing codebases.

Vue

Pros: Vue is usable by developers of all experience levels because of its ease of use and low learning curve. Because of its progressive architecture, Vue can be added to applications gradually, giving developers the freedom to integrate it at their speed. Because of its lightweight footprint and outstanding performance, Vue is a good choice for developing quick and responsive applications. Cons: The ecosystem for Vue could not be as developed or wide as that of React or Angular, which could restrict the tools and libraries that are available. Compared to more well-established frameworks, Vue's tooling and developer experience might not be as sophisticated, especially when it comes to state management and routing. Vue's rather new in comparison to other frameworks may give rise to concerns regarding stability and support over the long run.

erikkvietelaitis commented 7 months ago

I have analyzed to support team member Sam who informed members that he would be inaccessible due to sudden matters. image

Sam Was assigned should conduct a review Rust and Linux. Frameworks to retrieve system utilities?

Rust seems to support access to system utilities through libraries "Operating System" https://lib.rs/os/unix-apis There seems to be a moderately large support of 300 supported Unix crates. While this GitHub Repo provides a good source of potential crates that could help in the development of command line application A curated list of command-line utilities written in Rust

While, a crate called simple_server_status could be used to potentially gain simple information related to CPU, Network, RAM, while also, sysinfo seems to have similar and potentially greater support facilitating all connected dissc, and greater details generally.

In the context of Linux potential installation paths, i started to look at .deb (assuming the server is using (Debian or Ubuntu) FlatPack Snaps AppImages

All through they have their benefits at simple level analysis i would suggest to the group to work towards .deb as an installation medium as Flatpacks and Snaps seem to be isolated services that could make it hard for further system analysis. A greater analysis needs to be done Vs Appimages that can work across LinuxOS.