imamac96
Well-Known Member
Like a lot of things in my life, this will probably never be finished, but I am goofing around with an open-source ForeFlight competitor / EFIS thing.
GitHub - cobelu/PiFlite
The reason why this is important is because practically every option we currently have (that I know of) is implemented in JavaScript/Python/C++. These are terrible choices and have no business being in an airplane. It’s super easy to create mistakes in JavaScript and Python unless you take the safeguards necessary that most people think are a waste of time. C++ is not memory-safe. In comparison, Rust has no possibility of a kernel panic. I can check on every update to the code that no unsafe changes were introduced. This does not mean there will not be bugs. However, this does mean that stupid memory-related bugs cannot happen (which is a lot of them).
Rust compiles to native code, so the plan is that this will be hosted on a Raspberry Pi. I started goofing around with this because it's exactly what one of my chapter members asked for when he was unsatisfied with the sales pitch for the iPad system from Falken. Apple can yank support for your iPad app at any time. Apple can introduce wide, breaking changes (Swift has changed a lot in the last few years since I learned it). In contrast, this can be a self-contained unit that can support updates for a much longer time. Further, if it's open-source, then I don't make money, but at least stuff has a shot at getting fixed in a reasonable amount of time.
The other thing is that I'm building it on top of DuckDB, which is very fast. ForeFlight is built on "tons of SQLite databases" (as I was told). SQLite is better for insertion, but DuckDB is arguably better for retrieval/analytics. An example of why this is important is that I should be able to do very fast lookups for search ("what's that airport that's near me that starts with KGY?"). I won't have as many features, but I'm in a good place to have good performance on a crappy little RP.
I have a long, long way to go and will likely never get anywhere far with this, but I need an excuse to write whatever I can in Rust because I’d like a new job. I want my career to move in that direction. It doesn't really do much at this time besides download some data from the FAA and load it into a little database, but I work on it when I can. This is a lot of new stuff for me, so it's moving slow.
Anyway, if there are nerds out there, here’s something wacky that I hope to crunch away at while I wait to be able to move back home to work on my airplane projects.
Thanks,
Connor
GitHub - cobelu/PiFlite
The reason why this is important is because practically every option we currently have (that I know of) is implemented in JavaScript/Python/C++. These are terrible choices and have no business being in an airplane. It’s super easy to create mistakes in JavaScript and Python unless you take the safeguards necessary that most people think are a waste of time. C++ is not memory-safe. In comparison, Rust has no possibility of a kernel panic. I can check on every update to the code that no unsafe changes were introduced. This does not mean there will not be bugs. However, this does mean that stupid memory-related bugs cannot happen (which is a lot of them).
Rust compiles to native code, so the plan is that this will be hosted on a Raspberry Pi. I started goofing around with this because it's exactly what one of my chapter members asked for when he was unsatisfied with the sales pitch for the iPad system from Falken. Apple can yank support for your iPad app at any time. Apple can introduce wide, breaking changes (Swift has changed a lot in the last few years since I learned it). In contrast, this can be a self-contained unit that can support updates for a much longer time. Further, if it's open-source, then I don't make money, but at least stuff has a shot at getting fixed in a reasonable amount of time.
The other thing is that I'm building it on top of DuckDB, which is very fast. ForeFlight is built on "tons of SQLite databases" (as I was told). SQLite is better for insertion, but DuckDB is arguably better for retrieval/analytics. An example of why this is important is that I should be able to do very fast lookups for search ("what's that airport that's near me that starts with KGY?"). I won't have as many features, but I'm in a good place to have good performance on a crappy little RP.
I have a long, long way to go and will likely never get anywhere far with this, but I need an excuse to write whatever I can in Rust because I’d like a new job. I want my career to move in that direction. It doesn't really do much at this time besides download some data from the FAA and load it into a little database, but I work on it when I can. This is a lot of new stuff for me, so it's moving slow.
Anyway, if there are nerds out there, here’s something wacky that I hope to crunch away at while I wait to be able to move back home to work on my airplane projects.
Thanks,
Connor