SQLite is the one project written in C that I would consider to be one of the most scrutinized open source code and thus put it on the bottom of the list of projects in need of a rewrite in Rust. However I love Rust and enjoy using it. Thanks to everyone involved :-)
Making Limbo async by default means it's a totally new database. The sync nature of SQLite makes it really attractive for a lot of embedded app use cases. Async and networking means its just another database server.
I'm sure it depends on the company/project, but async code is _very_ common in embedded code, at least the sort I do. Blocking calls to 'slow' operations (e.g. writing to flash, executing I2C transactions, or just about anything else you can set an IRQ handler for) are handed off to IRQ-based drivers that configure hardware to perform the job and then suspend execution until the interrupt service routine is called and then resume your task code. That often isn't in the form of an explicit language-level async feature or library, but entering/exiting processor sleep states, saving state for a completion callback to use, or having a master polling loop spin checking for each different thing that could be completed, is just asyncs you've rolled yourself.
The small binary size and easy setup/access is what makes SQLite popular, not its synchronous nature. It’s super easy to ship with your own code and doesn’t need to run the entire time your application is running like other DBs.
you can just run an async loop controlled from a synchronous environment, or even sync it out, if you need, but because async does not mean it is parallelized, i would beg to differ to it just being another db, as most databases you would use over the network, which makes them independent processes. Especially single processor implementations should benefit from async in the long run, in the end it just abstracts task switching inside your process in a syntactic way.
One very nice thing about sqlite is that it will compile on a large number of C compilers. This includes compilers available for older platforms, or embedded or more specialized use. Not everyone is running the latest MacOS / Windows / Linux. Rust is llvm compiler only and is available for far fewer platforms. Maybe that doesn't matter to your project, but it does matter.
I mean, if you _really_ needs arcane embedded, you can use WASM as intermediate. Rust -> WASM -> machine code. Translating WASM instruction to machine code is _almost_ trivial.
I did some looking into it and there are far more llvm targets than I was aware of. They'll always be something that isn't supported, but I'm impressed at how much is.
@user-sb5vt8iy5q LLVM is absolutely NOT available for everything. GCC is the most widely compatible compiler out there, and even then there are many targets where your only option is an ancient in-house fork of GCC that will likely never see support for anything modern.
@@hanifarroisimukhlis5989 Those working in proprietary platforms that get handed a proprietary compiler for c98 and nothing else is possible won't magically have a wasm compiler. There's probably a way to Rust -> WASM -> Ancient C -> machine code but that's one hell of a build chain and you're better off using sqlite thats been tested in ancient c from the start
Deterministic Testing is not the same thing as 100 branch testing. The aircraft industry demands that every possible branch in the code is exercised in testing. Sqlite's current test suite does that. Also chaos monkey/gorilla/kaiju isn't really applicable to an embedded database.
Well you will get the argument that rust doesn‘t need that as its so perfect and beautiful. The reality is it breaks apart in an instant and currently there isn‘t any avionics certified compiler similar to automotive where they reached certification but still don‘t have a ISO for the language as such can‘t be used in SIL.
Elevator pitch: I am upset there are so many different SQL type syntaxes I've learned to use throughout the years... so lets just make fun of this first world problem with a new syntax called: YASS - "Yet another SQL syntax"
@@nathanfranck5822 normally my OCD is not that strong anymore but it triggered by it. but since he doing it to train himself , question i have now why?
@ClimateChangeDoesntBargain He would still be in development for another 4-5 years, and then get dropped because the basement coders working on it would have gotten tired and moved on well before 0.7 release.
This _is_ the kinda software that actually makes sense in Rust though. Front-end frameworks in Rust is where I'd say it becomes a bit unnecessary (I'm a hypocrite in this sense because the only mildly serious UI I've ever written is a web extension who's UI and logic is both in Rust).
its make sense, rust enforce safety whether the progammer is junior skill, medium skill, or senior skill where c++ will be crazy in junior skill programmers
Don't get me wrong, i'm part of this rust rewriting community but i just find it funny. I also do agree it makes total sense regarding the speed and safety. It will just take some time till it's somewhat usable in production.
It will be interesting to see how they do the very core indexing data structures in rust. My understanding is that to make databases work well, they use very unsafe structures!
@@giorgos-4515 yes, but some of the index datastructures support things like multiple readers during multiple updates, various skip and bidirectional pointers, and other crazy things that are inherently non rusty. It is possible there are other ways to do it that are more rust friendly. Database guts are not my happy place.
Sequel is only for Sequel Server, which is Sybase, I mean, Microsoft SQL Server. If its any other mere relational database, then its squeal. There's an exception for oracle, if its Oracle, then its pronounced SQL esse, queue, el. because Oracle is boring.
I read somewhere that you can access the SQLite test suite, but you need to be a contributor and that require a screening process or that you are a big company willing to provide contributions
That lib file with the unsafe is just the bindings, not the core code. Any ffi is fundamentally unsafe since the compiler can’t control what outside callers are doing.
So everything is unsafe until you make one gigantic monolithic binary which contains even the uefi code and all the stuff for the nvm controllers rtos as well as any server switch or anything you can connect to.
@@jacekkurlit8403 SQLite is famous for being quite unique. While it is Open Source, it is Free Software and it is even (meant to be) public domain, it is not really developed in the open. As in, it is not generally open to external contributions. Unlike most FOSS projects nowadays it is not developed on GitHub nor on any other competing forge. In fact the devs don't even use Git for it, but a custom revision control system called Fossil. > In order to keep SQLite completely free and unencumbered by copyright, the project does not accept patches. If you would like to suggest a change and you include a patch as a proof-of-concept, that would be great. However, please do not be offended if we rewrite your patch from scratch. [1/3]
I'm thrilled if this can evolve into a maintained project. There are so many cool embedded databases in Rust, but they also generally don't have a stable file format or become abandoned adter a few versions. I basically am stuck with RocksDB as the best worst choice.
@@RobertFletcherOBE one might argue sqllite is mostly bloat... The people who tend to use it have to wrap the SQL into some kind of object relational interface, to save their objects into somewhere. So a ton of code is written to convert what you want to do into SQL, then sqllite has a ton of code to turn SQL back into a set of fields to store.
we really dont need sqlite reimplemented in a C variant, it is fine if it is in rust, as it allows to have a clean rust alternative to bindings, so i am glad they stayed on track.
@@worldspam5682 the idea is that you can easier integrate something in rust, that is compiled in the same ecosystem, which can play to the strengths of rust, being easier to compile on different target systems. integrating sqlite on windows e.g. is a lot of work. This notion, that everything related to rust must be some kind of zealotry is it's own kind of zealotry by now. having a database installable by cargo will ease a lot of development, also in the python or js world, which they obviously also go for.
@RogerValor I'm really tempted to 🤡 on someone, who tells that integrating SQLite is some kind of a problem, and so it needs to be rewritten in rust. Somehow others are completely fine, but rust even here got to be a special kid.
said a kid who doesn't know anything about low level. everyone outside uses logic not like you who use subjective personal moron. it happened long before, microsoft, google, aws, discord have migrated to rust in their core system. because they use logic not like junior c and c++ kid. writing good rust is far easier than writing good c and c++. in c and c++ will add time spending time just for debugging, in rust is far far less, fact and it has happened because people know the value, only people who don't understand don't know the value because they don't understand how can they know
This will be pain in the ass with 3 implementations of sqllite which are not feature identical... The same shit was done to the sass precompiler and now you have to lookup the correct software to just precompile css. Great... Just name it different...
I guess we should think of it like a game-of-the-year remaster. I remaster of the base game, but with all the DLCs also remastered and bundled with it.
The premise on why to rewrite basically is: we have a fuck ton of VC money and don’t know what to do with it. They claim the drawback of SQLite is proprietary testing code but as a solution they are going to use proprietary testing code. They claim modern architectures but support less architectures than SQLite.
The issue is that they are rewriting it for computer use but a large part of SQLite is how well it works one embedded. On some embedded projects even C++ is to resource inefficient compared to C. I doubt Rust will be as efficient with ram as C is
Rust is as efficient on RAM as C is, if not even more since a lot of conventions in C is the passing of object heap pointers. Unlike in C where resources (in this case, memory) have non-deterministic lifetimes, Rust has an explicit destructor called et the end of each scope.
C++ isn't "too resource inefficient compared to C". Shows you have no idea what you're talking about when you frame it like that. What in C++ has an inefficient memory layout compared to the equivalent in C? If you need to perform whatever task in C or C++, you're still doing the same stuff. If you make inefficient design choices then that's on you, not on the language.
@@theultimateevil3430 Yes you can, which is not a bad idea since you will always have the option to make use of an expensive functionality if you have resources left.
There some know "issues" with SQLite but due to the large installed code base they decided that it is a feature to keep it backwards compatible. Will Limbo keep compatible with these know "issues".
Some part of me feels this rewrite culture is futile. We are fundamentally flawed, the language we write in, at best, only prolongs our mistakes, and at worst, masks them until they are debilitating. I can absolutely see the usefulness in small projects, but if a human can take a shortcut, they eventually will, regardless of how high the wall TO the shortcut is built.
@@m.irfan-7069 reread your comment kid, suct a nonsense hater, no logical thinking because this is far higher from your brain level that never touch complex low level code
Rewriting the best maintained, tested and running software library in another language? This is pure madness, and is asking for trouble. I'd rather go with the fully tested FAA-certified C project, any day of the week.
@@RustIsWinning It is the best maintained. It has to be, as it has to be fit for running in NASA, Airbus and Boeing vehicles. These companies pay a lot of money for that. And that's the reason why SQLite development and testing is not open to the Rusty public.
@@tikabass Ah thanks for explaining it. Learned something new. A rewrite would probably not help those companies but Turso's DST approach is still interesting tbh.
@@RustIsWinning A rewrite does not help anybody, and the time could be used to write something new and useful. But, that's apparently uncool in the Rust community, they'd rather let the innovation to the C/C++ people. In my humble experience, rewriting code is good when learning, as an exercise for the debuting student. And the resulting code should NOT be meant to used by the public at large.
@@RustIsWinning Bro everywhere I see you, you always spout some nonsense and get owned, rather than going around yelling at anyone who disagrees with you, how about you actually inform yourself first? you literally came here to shit on SQLite without even knowing what it is? bruh
Database in language that is not stable yet. Remember he thinks Linux kernel should have used Zig too. People take these RUclips pundits way to seriously.
@@maniacZesci I don't remember it that way. I took it as "It's too bad Zig didn't come up 10 years earlier, so that it'd have a chance to compete with Rust in Linux project" which I think is a completely reasonable way to think about this. Though, I'm not sure if it's actually my opinion that clarified when I watched the stream or me filtering his streamer language. He's a zigooner though ngl.
1:54 no languages are actually memory safe. The only thing proven to be memory safe is HyperVisors and the actual hardware virtualization on some platforms (IBM mainframes, not Intel/AMD, sorry). (its memory safe when its inside a virtual machine)
Prime you have stopped looking at the cam these past few videos. What's up with that? Your earlier videos, your eyes were level with the cam. Something's up with the setup my friend!
Serious talk, what is the difference between "full deterministic testing" and unit testing ? It seems that the term unit testing is still today a lot misunderstood.
It's a form of fuzzing. Specifically, it seems to be fuzzing applied at the level of the system running the code. So searching through not just the formal input space to the code but through the environment space. That said, it seems, like most computer terms, that its effective definition will depend on what mix of theory and practice is settled on. As even with simpler version of fuzzing and property testing how you generate inputs is a complicated subject.
One comment re. The “Tiger Beatle made deterministic simulation famous”. I read articles over 20 years ago about Age of Empires 2, Quake 3 and other games that used of simulation testing. How else were you going to test your network replication logic?
And people also use SQLite as database when integration testing apps that have MS SQL or MySQL in the back that behave differently and shit happens after deployment, when some ORM translated query was not understood xD
Similar idea but still different angles/philosophy! We use PBT at my company. DST, from what I can grok, runs a simulation of a process in an end-to-end fashion with a set of randomized initial conditions & the output of the process should be expected to be reproducible every time with same ICs. Whereas PBT randomizes various properties/states (not necessarily ICs) in a process in a shotgun-like fashion for edge-case discovery. DST seems a more "linear" approach? Which makes it easier to identify exactly where/how things went wrong. PTB on the other hand just tells you something broke "at this point, with this state" but doesn't necessarily tell you how you get into that state.
I work with sqlite in multiple languages and multiple libraries and can say that the I/O in sqlite is the biggest bottleneck. This rewrite seems like the real deal
@DynamicalisBlue awikwok that's just a fairy tale, they are not equal at all, if so Microsoft and Google wouldn't have many bugs related to memory and pointers in their programs, and the Linux kernel wouldn't have tge said bugs either, now cry more
@@worldspam5682 Who said that everything should be rewritten in Rust? Those things that get rewritten are feasible because Rust is stable unlike Zig, and offers lots of benefits in terms of safe parallelism and concurrency, memory safety, no UB in safe Rust, good interop with other languages etc., it gets chosen for multiple reasons. This is not just rewrite but adding additional features on top of it.
I wonder why zig was rejected in favor of rust? Usually you hear the other way around, e.g. "it became super difficult with rust, so we switched to zig".
As a corollary to my question, I wonder if the following statement is true: "anything you can write in rust, you can write the exact equivalent code in zig, translating almost line-for-line... but the reverse, of course, is not true".
id imagine rewriting something in Rust wouldn’t be too hard (compared to writing something new), since you would already know exactly what you’re building.
many are already there, your ignorance is not my problem. rewriting in a much safer language is a valuable investment as well as improving the architecture with modern architectures, many big companies do that, microsoft on windows core, google on android 13 and above, microsoft azure, aws, discord migrate from go to rust. C/C++ is an unforgiving language in that mistakes can occur silently and on mission critical hardware these mistakes can cost more than just your project milestones. Bugs just aren't an option like they are in other environments. The best you can do is try to add various check/support mechanisms both in software and in hardware, and maintain as safe and hazard free software as possible which end up with C/C++ dev do much more work than Rust dev, its the reality and its continously because its long run
Why though? What is this push to just rewrite everything in Rust? I think it's just such a complex language that everyone learning it has to create a project like this as a learning mechanism and we just end up with people trying to rewrite literally everything in Rust lol But it's such a mindf*** to see so many new projects spring up where you ask "did you add something? no. did you change something? no. WTF did you do then? Oh it's written in a different language now!"
Because rust lets you define explicit types, guarantees some safety. Its modern, it has a learning curve but odds are if you are a good c++ dev you can definitely move to rust
Rust devs are annoying. With SQLite it’s even funnier, because the whole reason it took off is its ubiquity, and that’s in part because it’s in C and binding C is generally super easy. I severely doubt any rust rewrite will take off.
Limbo is not the best place to leave your data
yeah, the name is not the best
i know they will rename but for now....
its pretty funny
Or your soul
Love their sense of hunour
@@SimGunther idk, better than hell, for sure.
Everything that can be rewritten in rust will eventually be rewritten in rust
Whether it should be is another thing entirely
@@randomexplosion6527 Prisma went from Rust to TS
Your [Rust programmers] were so preoccupied with whether they could, they didn’t stop to think if they should.
Partially because there's a whole heck of a lot of former JS devs writing rust these days. (see also: Atwood's Law)
"I am currently rewriting politics to Rust"
Also : Chaos Godzilla is implemented for free by CrowdStrike
😂
An apt name indeed, CrowdStrike.
SQLite is the one project written in C that I would consider to be one of the most scrutinized open source code and thus put it on the bottom of the list of projects in need of a rewrite in Rust.
However I love Rust and enjoy using it.
Thanks to everyone involved :-)
this is for using io uring, so it might be worth the rewrite
@guillemgarcia3630 I see. IO uring offers a lot of benefits. Thanks for pointing this out.
@@guillemgarcia3630 I see. Thanks for pointing that out
Turso really like sqlite but they need some of somewhat niece features for their usage, so they decide to rewrite it in rust.
@@OnFireByteas opposed to nephew features?
Making Limbo async by default means it's a totally new database. The sync nature of SQLite makes it really attractive for a lot of embedded app use cases. Async and networking means its just another database server.
I'm sure it depends on the company/project, but async code is _very_ common in embedded code, at least the sort I do. Blocking calls to 'slow' operations (e.g. writing to flash, executing I2C transactions, or just about anything else you can set an IRQ handler for) are handed off to IRQ-based drivers that configure hardware to perform the job and then suspend execution until the interrupt service routine is called and then resume your task code. That often isn't in the form of an explicit language-level async feature or library, but entering/exiting processor sleep states, saving state for a completion callback to use, or having a master polling loop spin checking for each different thing that could be completed, is just asyncs you've rolled yourself.
The small binary size and easy setup/access is what makes SQLite popular, not its synchronous nature. It’s super easy to ship with your own code and doesn’t need to run the entire time your application is running like other DBs.
you can just run an async loop controlled from a synchronous environment, or even sync it out, if you need, but because async does not mean it is parallelized, i would beg to differ to it just being another db, as most databases you would use over the network, which makes them independent processes. Especially single processor implementations should benefit from async in the long run, in the end it just abstracts task switching inside your process in a syntactic way.
Right, I thought the lack of async and networking was exactly why sqlite is applicable in ways others are not
Everybody is gangsta until their favourite library gets rewritten in rust
if it exists, there will be a Rust version of it.
Unless it’s written in go
@@thegrumpydeveloper BASED
@@skulversaid from a stupid nonsense
@@skulver😂
One very nice thing about sqlite is that it will compile on a large number of C compilers. This includes compilers available for older platforms, or embedded or more specialized use. Not everyone is running the latest MacOS / Windows / Linux. Rust is llvm compiler only and is available for far fewer platforms. Maybe that doesn't matter to your project, but it does matter.
llvm is basically available anywhere, it probably works on your smart fridge too
I mean, if you _really_ needs arcane embedded, you can use WASM as intermediate. Rust -> WASM -> machine code. Translating WASM instruction to machine code is _almost_ trivial.
I did some looking into it and there are far more llvm targets than I was aware of. They'll always be something that isn't supported, but I'm impressed at how much is.
@user-sb5vt8iy5q LLVM is absolutely NOT available for everything. GCC is the most widely compatible compiler out there, and even then there are many targets where your only option is an ancient in-house fork of GCC that will likely never see support for anything modern.
@@hanifarroisimukhlis5989 Those working in proprietary platforms that get handed a proprietary compiler for c98 and nothing else is possible won't magically have a wasm compiler. There's probably a way to Rust -> WASM -> Ancient C -> machine code but that's one hell of a build chain and you're better off using sqlite thats been tested in ancient c from the start
It's faster cause it doesn't have 1/3 of the SQLite features...
Tbf I don't mind having a less feature-rich, faster software over a bloated one, as long as the basic features are around
@@shadergz How so as they're fork of it with backward merge so they should have all its features plus some more?
@@mysterry2000What's bloated about sqlite? Limbo doesn't even have the basics yet. It's currently unusable and a wip
@@TheRealCornPop how can it not have features if it's a fork?
@@mysterry2000 Until you need that one feature?
I am fine with SQLite keeping out posers, it keeps the project from inflating to nonsense.
Deterministic Testing is not the same thing as 100 branch testing. The aircraft industry demands that every possible branch in the code is exercised in testing. Sqlite's current test suite does that. Also chaos monkey/gorilla/kaiju isn't really applicable to an embedded database.
Well you will get the argument that rust doesn‘t need that as its so perfect and beautiful. The reality is it breaks apart in an instant and currently there isn‘t any avionics certified compiler similar to automotive where they reached certification but still don‘t have a ISO for the language as such can‘t be used in SIL.
Elevator pitch: I am upset there are so many different SQL type syntaxes I've learned to use throughout the years... so lets just make fun of this first world problem with a new syntax called: YASS - "Yet another SQL syntax"
Yass.
💅🏻
YASS - Your ASS
YASS I assume is short for YASS (ain't) SQueenL slay
"There are 14 different SQL syntaxes. We need to make one to combine the best of all of them!"
"There are now 15 competing SQL syntaxes."
primeagen is messing with my OCD when he highlights perfectly each time everything except the first letter and last letter!!!!!!!!!!!!!!!!!
It's how he aim trains
@@nathanfranck5822 normally my OCD is not that strong anymore but it triggered by it. but since he doing it to train himself , question i have now why?
i used to get annoyed by that too, but i slowly get used to it
@amsyarasyiqDoctor Primeagen or How I Learned to Stop Worrying and Love the Autistic Compulsion
that's an entire new level of OCD that you need to unlock
Im here so fast I must be written in Rust.
@@BrettW And you need a Code of Conduct!
If you were written in rust you would’ve been much slower to comment and would not have missed the apostrophe.
@@_kostant hahah owned
@@_kostant why would he have been slower? And Rust doesn't prevent logic bugs, so the missing apostrophe aligns with Rust.
@ClimateChangeDoesntBargain He would still be in development for another 4-5 years, and then get dropped because the basement coders working on it would have gotten tired and moved on well before 0.7 release.
We should make a page like the js framework one "Days Since Last Rust Rewrite" (I'm a Rust dev myself but this is kinda getting out of hands)
Is it gettign of hand? Sqlite in rust makes sense.
This _is_ the kinda software that actually makes sense in Rust though. Front-end frameworks in Rust is where I'd say it becomes a bit unnecessary (I'm a hypocrite in this sense because the only mildly serious UI I've ever written is a web extension who's UI and logic is both in Rust).
its make sense, rust enforce safety whether the progammer is junior skill, medium skill, or senior skill where c++ will be crazy in junior skill programmers
Don't get me wrong, i'm part of this rust rewriting community but i just find it funny. I also do agree it makes total sense regarding the speed and safety. It will just take some time till it's somewhat usable in production.
Just make it a static html page stuck on 0 days. It will always be correct.
It will be interesting to see how they do the very core indexing data structures in rust. My understanding is that to make databases work well, they use very unsafe structures!
This is very interesting now you've commented it.
unsafe is not inherently bad it is required for core stuff, it just indicates that more attention is required
@@giorgos-4515 yes, but some of the index datastructures support things like multiple readers during multiple updates, various skip and bidirectional pointers, and other crazy things that are inherently non rusty. It is possible there are other ways to do it that are more rust friendly. Database guts are not my happy place.
@@mrpocock mpmc channels support that as well in Rust
As a business engineer it's hard to hear Squeal. I've only heard SQL or Sequel never Squeal 🐷
The people who know what they're doing/talking about don't have time to make these shitty videos.
Why pronounce 3 or 2 syllables when 1 will do? Blame Fireship? ruclips.net/video/4QN1BzxF8wM/видео.html
Sequel is only for Sequel Server, which is Sybase, I mean, Microsoft SQL Server.
If its any other mere relational database, then its squeal.
There's an exception for oracle, if its Oracle, then its pronounced SQL esse, queue, el. because Oracle is boring.
what is a business engineer?
I read somewhere that you can access the SQLite test suite, but you need to be a contributor and that require a screening process or that you are a big company willing to provide contributions
And not, say, a hacker looking to find exploits.
That lib file with the unsafe is just the bindings, not the core code. Any ffi is fundamentally unsafe since the compiler can’t control what outside callers are doing.
So everything is unsafe until you make one gigantic monolithic binary which contains even the uefi code and all the stuff for the nvm controllers rtos as well as any server switch or anything you can connect to.
I'll take the database protected by the Rule of St. Benedict, thanks.
birb
Can you elaborate on that? Which db is protected by Rule of St. Benedict?
specially because that trigger some "liberaloids"
@@jacekkurlit8403 For the context, you can search "sqlite code of ethics" in search engine. It should be the first result from offical sqlite website.
@@jacekkurlit8403 SQLite is famous for being quite unique. While it is Open Source, it is Free Software and it is even (meant to be) public domain, it is not really developed in the open. As in, it is not generally open to external contributions. Unlike most FOSS projects nowadays it is not developed on GitHub nor on any other competing forge. In fact the devs don't even use Git for it, but a custom revision control system called Fossil.
> In order to keep SQLite completely free and unencumbered by copyright, the project does not accept patches. If you would like to suggest a change and you include a patch as a proof-of-concept, that would be great. However, please do not be offended if we rewrite your patch from scratch.
[1/3]
I'm thrilled if this can evolve into a maintained project.
There are so many cool embedded databases in Rust, but they also generally don't have a stable file format or become abandoned adter a few versions.
I basically am stuck with RocksDB as the best worst choice.
Presumably the file format is stable since they're copying.
You should try SQLite, its well maintained, incredibly stable, and free of the bloat you usually see in design by committee projects
@@RobertFletcherOBE one might argue sqllite is mostly bloat... The people who tend to use it have to wrap the SQL into some kind of object relational interface, to save their objects into somewhere. So a ton of code is written to convert what you want to do into SQL, then sqllite has a ton of code to turn SQL back into a set of fields to store.
Prime forgot to mention Chaos Grizzly, which goes a step further and kills the entirety of Netflix.
Isn't that just called the CEO?
i miss the dyslexic title of this video 😭
What was it??
@@redyau_^^
Maybe the rust rewrite in sqlite?
sqlite is one of the best codebases available. I question this company's priorities to rewrite something that is already excellent.
The only way from excellence is down
the closed source nature prevents natural extension of the project (vector db, wasm, etc.). did you not watch the video?
yeah, one would think they have other dependencies which they would focus on first
@@tomorrow6 Said the person trapped in the medieval era.
The 3 maintainers of SQlite:
1. NSA
2. CIA
3. FBI
Lol😂
sounds more like a rust thing, as this cult is just like those cults that were controlled by cia...
we really dont need sqlite reimplemented in a C variant, it is fine if it is in rust, as it allows to have a clean rust alternative to bindings, so i am glad they stayed on track.
dude, it's a db. What in the name of purist zealot is this?
@@worldspam5682 the idea is that you can easier integrate something in rust, that is compiled in the same ecosystem, which can play to the strengths of rust, being easier to compile on different target systems. integrating sqlite on windows e.g. is a lot of work. This notion, that everything related to rust must be some kind of zealotry is it's own kind of zealotry by now. having a database installable by cargo will ease a lot of development, also in the python or js world, which they obviously also go for.
@RogerValor I'm really tempted to 🤡 on someone, who tells that integrating SQLite is some kind of a problem, and so it needs to be rewritten in rust.
Somehow others are completely fine, but rust even here got to be a special kid.
An educational exercise or self-torture. I bet the word "unsafe" appears often in the repo.
I don't understand why they keep trying to make Rust happen, it won't..
said a kid who doesn't know anything about low level. everyone outside uses logic not like you who use subjective personal moron. it happened long before, microsoft, google, aws, discord have migrated to rust in their core system. because they use logic not like junior c and c++ kid. writing good rust is far easier than writing good c and c++. in c and c++ will add time spending time just for debugging, in rust is far far less, fact and it has happened because people know the value, only people who don't understand don't know the value because they don't understand how can they know
Says the PHP skid 😂
This will be pain in the ass with 3 implementations of sqllite which are not feature identical... The same shit was done to the sass precompiler and now you have to lookup the correct software to just precompile css. Great... Just name it different...
Everything rewritten in rust will eventually be rewrittten in stainless.
Are they planning on doing the Safety critical stuff with DO-178b and testing all branches?
I guess we should think of it like a game-of-the-year remaster. I remaster of the base game, but with all the DLCs also remastered and bundled with it.
The premise on why to rewrite basically is: we have a fuck ton of VC money and don’t know what to do with it.
They claim the drawback of SQLite is proprietary testing code but as a solution they are going to use proprietary testing code.
They claim modern architectures but support less architectures than SQLite.
so nice you approached this on a serious manner
Yeah I've been investigating DST at work. It sounds cool I just gotta get used to testing like that...
Here before the title change o7
Everything rewritten in Rust will eventually be re-rewritten in Lisp
YES !!!
NOO !!!
@@RustIsWinning (come (to the dark) side)
The issue is that they are rewriting it for computer use but a large part of SQLite is how well it works one embedded. On some embedded projects even C++ is to resource inefficient compared to C. I doubt Rust will be as efficient with ram as C is
Can't you just write C++ without C++ features that introduce tons of indirection, and in a data-driven manner to minimize copying/allocations?
Rust is as efficient on RAM as C is, if not even more since a lot of conventions in C is the passing of object heap pointers. Unlike in C where resources (in this case, memory) have non-deterministic lifetimes, Rust has an explicit destructor called et the end of each scope.
@@theultimateevil3430 You can. C with templates can be written just fine. Though C++ forces malloc casts which can be really annoying.
C++ isn't "too resource inefficient compared to C". Shows you have no idea what you're talking about when you frame it like that. What in C++ has an inefficient memory layout compared to the equivalent in C? If you need to perform whatever task in C or C++, you're still doing the same stuff. If you make inefficient design choices then that's on you, not on the language.
@@theultimateevil3430 Yes you can, which is not a bad idea since you will always have the option to make use of an expensive functionality if you have resources left.
when did we even accept squeal for SQL
I think Chaos Godzilla would be to simulate an entire cloud provider going down if they ever went with a multi cloud deployment.
There some know "issues" with SQLite but due to the large installed code base they decided that it is a feature to keep it backwards compatible. Will Limbo keep compatible with these know "issues".
Some part of me feels this rewrite culture is futile. We are fundamentally flawed, the language we write in, at best, only prolongs our mistakes, and at worst, masks them until they are debilitating. I can absolutely see the usefulness in small projects, but if a human can take a shortcut, they eventually will, regardless of how high the wall TO the shortcut is built.
Ativa a dublagem automática dos seus vídeos broher! Seus vídeos são ótimos, obrigado pelo trabalho, abraço!
From build everything with javascript to rewrite everything with rust
there is nothing wrong with rewriting in rust, its their choice and their own project (forked) why you cry? rust give many benefits, cry more.
@@my_online_logs ???
You can rewrite anything as you like, no one stops you
@@m.irfan-7069 reread your comment kid, suct a nonsense hater, no logical thinking because this is far higher from your brain level that never touch complex low level code
The esoteric becoming mainstream through influence = paradigm shift
Rewriting the best maintained, tested and running software library in another language? This is pure madness, and is asking for trouble. I'd rather go with the fully tested FAA-certified C project, any day of the week.
@@tikabass Ah yes "best maintained". How many other imaginary tiltles did boomers invent for themselves. Here is a star ⭐️ HAHAHA 🤣
@@RustIsWinning It is the best maintained. It has to be, as it has to be fit for running in NASA, Airbus and Boeing vehicles. These companies pay a lot of money for that. And that's the reason why SQLite development and testing is not open to the Rusty public.
@@tikabass Ah thanks for explaining it. Learned something new. A rewrite would probably not help those companies but Turso's DST approach is still interesting tbh.
@@RustIsWinning A rewrite does not help anybody, and the time could be used to write something new and useful. But, that's apparently uncool in the Rust community, they'd rather let the innovation to the C/C++ people. In my humble experience, rewriting code is good when learning, as an exercise for the debuting student. And the resulting code should NOT be meant to used by the public at large.
@@RustIsWinning Bro everywhere I see you, you always spout some nonsense and get owned, rather than going around yelling at anyone who disagrees with you, how about you actually inform yourself first? you literally came here to shit on SQLite without even knowing what it is? bruh
I saw the thumbnail and thought “I hope they’re working with the Turso/LibSQL team”. And I guess they are!
how do you perform DST?? Is there a video on that?? Like practically
Now I know what to call the testing paradigm I have been using since 1997. DST.
8:16 got a link for the TigerBeetle talk?
Fitting title for where your data will end up :)
Hey was waiting for you to talk about that!
i am watching this on the side like squirrel what?
Really find promoting Zig over Rust for this completely incomprehensible
Database in language that is not stable yet. Remember he thinks Linux kernel should have used Zig too. People take these RUclips pundits way to seriously.
Them zigooners
@@maniacZesci I don't remember it that way. I took it as "It's too bad Zig didn't come up 10 years earlier, so that it'd have a chance to compete with Rust in Linux project" which I think is a completely reasonable way to think about this. Though, I'm not sure if it's actually my opinion that clarified when I watched the stream or me filtering his streamer language. He's a zigooner though ngl.
@@araarathisyomama787 Now I'm not sure either. I don't remember him saying that 10 years earlier part but I might be wrong.
1:54 no languages are actually memory safe. The only thing proven to be memory safe is HyperVisors and the actual hardware virtualization on some platforms (IBM mainframes, not Intel/AMD, sorry).
(its memory safe when its inside a virtual machine)
said from a kid
@@my_online_logs why are your answers and writing so similar to @HYDROGEN_OS?
HyperV and "safe" LOL. So vm escapes dont exist hahaha
Prime you have stopped looking at the cam these past few videos. What's up with that? Your earlier videos, your eyes were level with the cam. Something's up with the setup my friend!
I'm starting to wonder who is more. Unhinged.... The average JS/React dev or the average Rust dev
Squill makes me cringe, every single time
Serious talk, what is the difference between "full deterministic testing" and unit testing ? It seems that the term unit testing is still today a lot misunderstood.
It's just integration testing with a fancy name, running in a simulator
@andreffrosa Yeah, this is what I thought
It's a form of fuzzing. Specifically, it seems to be fuzzing applied at the level of the system running the code. So searching through not just the formal input space to the code but through the environment space. That said, it seems, like most computer terms, that its effective definition will depend on what mix of theory and practice is settled on. As even with simpler version of fuzzing and property testing how you generate inputs is a complicated subject.
Pro tip for Finnish names: You say the double consonant *twice.*
So "Pekka" is not PEKA, but PEK-KA. Accent on the first syllable.
Perkele
@@RustIsWinning 😆😆😆
This Rust rewrite pandemic needs to be tamed.
They had to go with the devil as the logo.😂
Looks more like a bull to me.
Someone should rewrite this job market with rust.
Yup, time for a Python dev to learn everything rust 🤘😎
One comment re. The “Tiger Beatle made deterministic simulation famous”.
I read articles over 20 years ago about Age of Empires 2, Quake 3 and other games that used of simulation testing.
How else were you going to test your network replication logic?
And people also use SQLite as database when integration testing apps that have MS SQL or MySQL in the back that behave differently and shit happens after deployment, when some ORM translated query was not understood xD
DST sounds a lot like property based testing which has been around for along time.
Similar idea but still different angles/philosophy! We use PBT at my company. DST, from what I can grok, runs a simulation of a process in an end-to-end fashion with a set of randomized initial conditions & the output of the process should be expected to be reproducible every time with same ICs. Whereas PBT randomizes various properties/states (not necessarily ICs) in a process in a shotgun-like fashion for edge-case discovery. DST seems a more "linear" approach? Which makes it easier to identify exactly where/how things went wrong. PTB on the other hand just tells you something broke "at this point, with this state" but doesn't necessarily tell you how you get into that state.
any speculation on on causes of network delays for the tyson vs. jake paul fight?
You have any resources for simulation testing? How to get started? I can't find anything
Thats a new license, you rewrite it in Rust and it’s yours! ⭐️
Thanks! Will put that to all the other stars that we have...
First time I heard him say sequel instead of squeal
I work with sqlite in multiple languages and multiple libraries and can say that the I/O in sqlite is the biggest bottleneck. This rewrite seems like the real deal
I’m all for rust rewrites but converting C/C++ code to Rust is just pointless imo.
its not, it ensures there are no hidden bugs that haven't been caught, even microsoft rewrote the windows core in c++ to rust
@ Static analysers, like Clang, would detect most bugs that Rust would ‘pick up’ anyways.
@DynamicalisBlue awikwok that's just a fairy tale, they are not equal at all, if so Microsoft and Google wouldn't have many bugs related to memory and pointers in their programs, and the Linux kernel wouldn't have tge said bugs either, now cry more
@ I know that static analysers are not fool-proof and are not on the same level as Rust but Rust isn’t fool-proof either.
Recommending Zig just because you like it is not feasible.
Rewriting everything in rust is not feasible too, and yet here we are.
@@worldspam5682 Who said that everything should be rewritten in Rust? Those things that get rewritten are feasible because Rust is stable unlike Zig, and offers lots of benefits in terms of safe parallelism and concurrency, memory safety, no UB in safe Rust, good interop with other languages etc., it gets chosen for multiple reasons.
This is not just rewrite but adding additional features on top of it.
@@maniacZesciyou know a kid like that wouldnt able to proccess it
@@worldspam5682said from a kid
I wonder why zig was rejected in favor of rust? Usually you hear the other way around, e.g. "it became super difficult with rust, so we switched to zig".
As a corollary to my question, I wonder if the following statement is true: "anything you can write in rust, you can write the exact equivalent code in zig, translating almost line-for-line... but the reverse, of course, is not true".
id imagine rewriting something in Rust wouldn’t be too hard (compared to writing something new), since you would already know exactly what you’re building.
Zig isn't 1.0 yet, so...
@@freeideas you are probably talking about Rust without unsafe, as you can write anything in Rust
Tsoding : "The typical zigooner..."
are they gonna add a native date type?
At this point, i should rewrite myself in rust
We need a word for: software rug pull as an initially open source service
I've been kind of inclines to say "go with rust" for the real-world benefits rust brings plus a little bit of I want to see a Mozilla W streak
Speaking of Spolksy, Things You Should Never Do, Part I never felt more relevant.
please please .. STOP saying "squeal" !!
I'll accept "sequel". I'll accept "es kew el".
But not "squeal". Absolutely abhorrent
Keep the free nature of SQLite, completely free in all aspects and I am sold!
database is getting bigger. meanwhile me, using json and fs. Phew
Yes, more code that's exponentially hard to dive into unless you're an AI (eventually).
If it ain't broke don't fix it...
theyre not "fixing" it. have you watched the video?
Try to make it actually open source
@@LaysarOwO it's the same as uglification/race swap that happens with twitter art. They all are "fixing it"
@@worldspam5682 so we're racist... alrightttt
@@LaysarOwO oh, so now it's not racist to change race of something?
Or is it not racist only if it was changed from one specific race to another?
I'm only 15 seconds in, and I already want to Pekka Prime's Glauber
That Microsoft team btw was Excel.
1:57 I don't mind that color scheme
Chaos Godzilla should be Netflix losing an entire country in the Pacific like Japan 😂
So what next? Rewrite Laravel in Rust?
Rewrite linux kernel in rust
@kodosunofficial_5 already in progress lol
Why don't rust programmer create novel cool stuff like golang programmers instead of trying to rewrite perfectly fine stuff into their crap language
complete lack of imagination and skill.
many are already there, your ignorance is not my problem. rewriting in a much safer language is a valuable investment as well as improving the architecture with modern architectures, many big companies do that, microsoft on windows core, google on android 13 and above, microsoft azure, aws, discord migrate from go to rust. C/C++ is an unforgiving language in that mistakes can occur silently and on mission critical hardware these mistakes can cost more than just your project milestones. Bugs just aren't an option like they are in other environments. The best you can do is try to add various check/support mechanisms both in software and in hardware, and maintain as safe and hazard free software as possible which end up with C/C++ dev do much more work than Rust dev, its the reality and its continously because its long run
@johndoe2-ns6tfsaid from a kid
Because Rust is a trojan horse, not a programming language.
where does libsql fit in?
How complete is it?
Why though? What is this push to just rewrite everything in Rust? I think it's just such a complex language that everyone learning it has to create a project like this as a learning mechanism and we just end up with people trying to rewrite literally everything in Rust lol
But it's such a mindf*** to see so many new projects spring up where you ask "did you add something? no. did you change something? no. WTF did you do then? Oh it's written in a different language now!"
Because everything is better written in Rust /j
The entire video was a “here’s why”.. I’m so confused by your comment.
It’s a rewrite + features. ¯\_(ツ)_/¯
Because rust lets you define explicit types, guarantees some safety. Its modern, it has a learning curve but odds are if you are a good c++ dev you can definitely move to rust
Brother, the whole video is meant to just answer this question.
Rust devs are annoying. With SQLite it’s even funnier, because the whole reason it took off is its ubiquity, and that’s in part because it’s in C and binding C is generally super easy. I severely doubt any rust rewrite will take off.
Can’t wait for SQLite written in Mojo.
there is nothing wrong with rewriting in rust, its their choice and their own project (forked) why you cry? rust give many benefits, cry more.
@@my_online_logs did you run out of meds?
@johndoe2-ns6tf do you need tissue? 🤭🤭
@@my_online_logs Hu cry? U cry.
@johndoe2-ns6tf kep crying 🤭
Is the Limbo cover art just AI generated? I can't find a credit for the artist anywhere and the background texture is weird
it is indeed AI generated, just like the code.
Chaos Godzilla is implemented at Meta (BGP)
Why does he always highlight everything but the first and last letter of selected text?
"If I were to get a real job again..." 😂😂😂
What is the difference between Deterministic Simulation Testing and Property Based Testing?
Have heard about RocksDB?