Bottles Στη συνέχεια, η επανεγγραφή του Bottles to Rust θα χρησιμοποιήσει το libcosmic

Μπουκάλια Επόμενο λογότυπο

Οι προγραμματιστές του Bottles αποκάλυψαν πρόσφατα , μέσω μιας ανάρτησης στο blog , λεπτομέρειες σχετικά με την εργασία που θα κάνουν στο Bottles Next, μια πρωτοβουλία που στοχεύει στον πλήρη επανασχεδιασμό της αρχιτεκτονικής και του κώδικα του έργου.

Η δήλωση αναφέρει ότι η τρέχουσα έκδοση του Bottles, γραμμένη σε Python με διεπαφή βασισμένη σε GTK, αντιμετωπίζει σημαντικούς περιορισμούς που εμποδίζουν την ενσωμάτωση νέων λειτουργιών, όπως η υποστήριξη macOS, και θέτει προβλήματα που μπορούν να λυθούν μόνο μέσω μιας βαθιάς διαρθρωτικής αλλαγής.

Πριν από περισσότερο από ένα χρόνο, ανακοινώσαμε το Bottles Next, μια πλήρη επανεγγραφή του έργου Bottles. Αρχικά, η ιδέα ήταν να αξιοποιήσουμε τις τεχνολογίες Ιστού για να πετύχουμε την εμπειρία που οραματιζόμασταν για τους χρήστες μας. Ωστόσο, όπως συμβαίνει συχνά, υπήρξε εκτενής έρευνα, συζήτηση, πειράματα και συνεχής επαναξιολόγηση.

Γιατί να περάσετε από όλο αυτό τον κόπο; Λοιπόν, για να βεβαιωθούμε ότι παίρνουμε τις σωστές αποφάσεις.

Μετά την ανακοίνωση, αρχίσαμε να πειραματιζόμαστε με πολλές τεχνολογίες, αλλά πάνω απ 'όλα, ακούσαμε σχόλια από την κοινότητα, ιδιαίτερα εκείνων που σχετίζονται με το Electron. Αυτό μας ώθησε να εξερευνήσουμε άλλα μονοπάτια, τα οποία μας οδήγησαν στη δημιουργία πρωτοτύπων πλαισίου προσαρμοσμένα στις συγκεκριμένες ανάγκες του Bottles Next.

Και εδώ είμαστε σήμερα.

Γι' αυτό το λόγο, η νέα προσέγγιση χωρίζει την εφαρμογή σε τρία κύρια στοιχεία:

  • Ένας πελάτης: υπεύθυνος για τη γραφική διεπαφή
  • Διακομιστής: υπεύθυνος για τη λογική εκτέλεσης εφαρμογών και διαχείρισης προθεμάτων Wine
  • Ένας πράκτορας: που λειτουργεί στο Wine για να αλληλεπιδρά απευθείας με το API των Windows.

Αν και αρχικά είχε εξεταστεί η υλοποίηση του client με τεχνολογίες web όπως το Electron και το VueJS, και η ανάπτυξη του server σε Go, η αντίδραση της κοινότητας και τα αποτελέσματα που επιτεύχθηκαν με τα πρωτότυπα οδήγησαν τους προγραμματιστές να εγκαταλείψουν αυτήν την ιδέα.

Επομένως, τελικά αποφασίστηκε να χρησιμοποιηθεί το Rust τόσο για τον πελάτη όσο και για τον διακομιστή, ενώ η γραφική διεπαφή θα βασιζόταν στο πλαίσιο εργασίας libcosmic. Αυτό το πλαίσιο, που χρησιμοποιείται στο περιβάλλον εργασίας COSMIC, αποτελεί επέκταση της βιβλιοθήκης iced , η οποία διευκολύνει τη δημιουργία σύγχρονων και επεκτάσιμων γραφικών διεπαφών. Το Libcosmic υιοθετεί ένα μοντέλο αντιδραστικού προγραμματισμού και ακολουθεί μια αρχιτεκτονική παρόμοια με αυτή της δηλωτικής γλώσσας Elm, διευκολύνοντας την κατανόηση από τους προγραμματιστές που είναι εξοικειωμένοι με αυτήν την προσέγγιση.

μπουκάλια-επόμενο-σκουριά

Παρόλο που οι προγραμματιστές θα προτιμούσαν να εργαστούν με τη γλώσσα προγραμματισμού Go, τελικά επέλεξαν τη Rust λόγω της περιορισμένης διαθεσιμότητας εργαλείων υψηλής ποιότητας για την ανάπτυξη γραφικών διεπαφών στο Go. Παρά τη μετάβαση αυτή, η νέα αρχιτεκτονική περιλαμβάνει επίσης σχέδια για τη διατήρηση της κλασικής έκδοσης της διεπαφής ως επιλογή, προσφέροντας στους χρήστες μια οικεία εμπειρία ενώ παράλληλα προσαρμόζονται σε νέα πρότυπα και τεχνολογίες.

Όσον αφορά την απόδοση, το Bottles Next θα υποστηρίζει μηχανές όπως Vulkan, Metal, DX12, OpenGL 2.1+ και OpenGL ES 2.0+, εξασφαλίζοντας ευρεία προσαρμοστικότητα σε διαφορετικά συστήματα και υλικό. Αυτός ο επανασχεδιασμός υπόσχεται να προσφέρει βελτιωμένη απόδοση, να επεκτείνει τη συμβατότητα μεταξύ πλατφορμών και να παρέχει μια πιο ισχυρή βάση για τη μελλοντική ανάπτυξη του Bottles.

Αυτή η ενημέρωση επηρεάζει τόσο το Bottles Legacy (η τρέχουσα έκδοση του Bottles) όσο και το Bottles Next. Τις επόμενες εβδομάδες θα ολοκληρωθεί η πρώτη έκδοση του cpak. Είναι μια φορητή μορφή διανομής λογισμικού χωρίς αντίγραφα που βασίζεται εξ ολοκλήρου σε εικόνες OCI.

Αναφέρεται επίσης ότι ο παράγοντας Bottles Next, ο οποίος λειτουργεί στο περιβάλλον των Windows που δημιουργείται από το Wine, θα γραφτεί σε C# χρησιμοποιώντας .NET. Αυτή η επιλογή ανταποκρίνεται στις συγκεκριμένες ανάγκες της υπηρεσίας WineBridge, η οποία απαιτεί αποτελεσματική ενσωμάτωση με το API των Windows σε ένα περιβάλλον εξομοίωσης.

Όσον αφορά την ανάπτυξη, αναμένεται να κυκλοφορήσει σε λίγες εβδομάδες ένα container για τη δοκιμή του αρχικού πρωτοτύπου του Bottles Next, γραμμένο εξ ολοκλήρου σε Rust . Προς το παρόν, είναι διαθέσιμη μόνο μια βασική δοκιμαστική έκδοση, η οποία επιτρέπει στους χρήστες να σχηματίσουν μια προκαταρκτική ιδέα για τις δυνατότητες και την κατεύθυνση του έργου. Αυτή η μετάβαση στο Bottles Next υπόσχεται σημαντικές βελτιώσεις στη λειτουργικότητα, τη συμβατότητα και την απόδοση.

Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα σχετικά με αυτό , μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.


Προσθήκη ως προτιμώμενης πηγής στην Google