Glauber Costa - Forking SQLite and Building a Distributed Database with Turso

Durée: 65m47s

Date de sortie: 20/02/2024

This week we have Glauber Costa, CEO and founder of Turso, a service for distributing and using multiple SQLite instances in different regions. Glauber has a long history in the software industry, including working on the Linux kernel for many years. He shares his experience working on the Linux kernel and how it led him to found Turso. e also discuss the limitations of SQLite and how Turso is solving those problems with their fork libSQL.

Episode sponsored By CodeCrafters (⁠https://codecrafters.io/devtoolsfm⁠) 40% Discount!

Become a paid subscriber our patreon, spotify, or apple podcasts for the full episode.

Tooltips

Andrew

Justin

Glauber


Il y a toujours une limitation de SQLite.
SQLite ne fonctionne qu'une seule machine parce que c'est juste un file.
Maintenant, vous pouvez avoir 5, 6, 7, 10,
des milliers de différents applications en utilisant le database.
Toutes ces des files de SQLite sont sur le disque.
Ils sont en train de réunir le file de SQLite,
mais ils sont tous périodiquement recevus les changements
que les autres font par le mechanism de sync.
Bonjour, bienvenue à l'application de DevTools FM.
C'est un podcast de développeurs et les gens vont le faire.
Je suis Andrew et c'est ma co-host, Justin.
Salut tout le monde, j'ai hâte de vous donner un Glamour Costa.
Glamour est le CEO et le founder de Terso.
Terso est un service pour les deux.
Ils ont un fork de SQLite et c'est un service pour les deux.
Ils ont un service pour les deux.
Je suis un fan de SQLite,
et je suis très content d'y parler.
Je suis un grand fan de SQLite.
C'est super excitant.
Mais avant de vous donner un gamin,
vous voulez dire à notre audience un peu plus sur vous-même?
Absolument.
Merci d'avoir été avec moi.
On a eu quelques issues de scheduling.
C'est très cool de vous être ici.
Je suis Justin Sattel, mon nom est Glamour Costa.
Je suis travaillé dans la software pour environ 25 ans.
Je suis très content de vous donner un gamin.
C'est drôle,
parce que quand je l'ai commencé,
le monde était aussi en train de se faire un Glamour.
Tout ce qui se passe maintenant,
c'est mon premier rodeo.
Je veux juste vous donner un message
pour la part de votre audience.
C'est bien.
C'est un peu dur,
c'est beau en train de se faire.
Mais en plus,
la tirsante,
le monde était très différent.
La software était très différente.
J'ai pris un intérêt dans le Linnux Colonel.
Ça a commencé,
c'est pourquoi mon tour de ma vie et mon cours l'ont commencé.
J'ai commencé par contribuer au Linnux Colonel.
Je suis en school,
j'ai aimé ça,
c'est pourquoi pas.
J'ai pensé que en 2004,
j'ai eu un gamin de Red Hat 5
ou quelque chose comme ça, ma mémoire est fussy sur ça.
Mais à la fois où j'ai commencé à travailler sur Red Hat,
j'ai commencé à faire ça professionnellement.
Et j'ai spent environ, à l'époque de l'année 2013,
dans le Linnus Colonel.
J'ai travaillé avec un nombre de choses,
avec des containers, avec des managements de la ménage,
avec des Boutiques de la Boutique de la Cité 6,
et tout comme ça.
C'est là où j'ai rencontré ma co-fondère,
par contre, ma co-fondère était aussi dans le Linnus Colonel backup.
Et on a jointé le startup en 2013.
J'ai jointé avec un employeur numéro 3,
le backup a jointé avec un employeur numéro 4.
Le startup était en train de faire quelque chose qui n'a pas travaillé,
en tout cas.
Donc, nous avons passé par cette expérience de
faire quelque chose qui n'a pas été fait,
et aussi, un type de tech, etc.
Donc, ce n'est pas quelque chose qui peut être très facile,
et je ne sais pas si ça ne s'est pas fait,
et la company a pivoté à un database appel Silla,
qui est un database dans le sceau de la CICA,
pour une grande performance de très grandes données
dans le scale de la petabyte.
Et, encore, c'est comme ça que Pac and I a été exposés
à des databases.
Et nous avons passé 8 ans ensemble,
en plus de 2021, à l'heure de 2022,
nous avons décidé de trouver cette company.
Mucho comme notre première company,
notre premier produit n'a pas été travaillé,
mais on a, et je pense que par la expérience,
on a trouvé cela plus tard que deux ans.
Notre produit était utilisé en SQLite,
donc, nous avons utilisé SQLite dans le produit.
Et c'est quelque chose super fun
sur les start-ups de la house, etc.
À times, on peut avoir une idée,
sur les choses que vous devenez par accident.
Je n'ai pas d'intention,
mais, en plus d'une fois, j'ai hâte de voir Silla,
et j'adore les données.
Le marché database est un marché très difficile,
et je ne veux pas faire ça.
En fait, quand on a commencé la company,
on a dit, Pekka, qu'est-ce que nous allons faire?
On a dit, tout, mais un database.
On va faire tout ce qu'on veut,
mais on ne va pas commencer le marché database.
Et là, on est là.
Nous avons utilisé SQLite,
et nous avons fait un peu de choses
que nous n'avons pas aimé.
Nous pouvons aller plus en détail.
Et nous avons publié ce fork de SQLite
comme part de notre premier produit.
On a dit, hey, pas comme part de notre produit,
parce que le produit ne nous a pas aimé.
Si SQLite était un fork, c'était tout mal.
Mais on était comme,
on était de bonnes membres de la communauté,
et on a fait notre travail de communauté,
et c'est le moyen de jouer à l'open source.
Donc, on a mis ce fork en bas,
et, en fait,
cinq jours plus tard,
nous avons 1500 stars de GitHub.
Donc, on a commencé à le voir.
OK, donc, il y a un peu de bain.
Pekka, on va devenir une company database.
Et là, on est là.
Oui, vous avez certainement choisi
de faire des problèmes de vie.
On a des développements de Linux,
en train de se faire à la collège.
Mais je dois vous demander une question.
Vous avez-vous jamais été élevé par Linus?
Je sais que c'est un rêve pour beaucoup de développeurs.
Par contre, ce gars qui a vu la news
maintenant, Steve Rosted,
un grand ami de moi,
un grand gars.
Et c'est un peu faible.
Je sais juste,
je l'ai trouvé sur le web,
et c'est un grand ami de moi,
parce que quand je commence mon travail,
c'est un jeune jeune jeune gars.
Il était plus expérimenté,
il travaillait en red hat.
Il m'a pris comme mentor de sorte.
On parle toujours pas de ça,
mais tout le temps.
C'est un peu faible qu'il soit mis sous la fête.
Il explique sa raison
dans ce poste que je recommande.
Google, je pense que c'était dans le registre.
Steve Roster, Linus, etc.
Vous avez trouvé.
Mais pas par Linus.
Toutes mes interactions avec Linus
étaient très amies.
Et c'est quelque chose
que beaucoup de gens ne réalisent pas.
Linus n'est pas toujours comme ça.
Même en tant que bactéon,
ils s'en ont dit qu'il est meilleur.
Mais en fait,
le bas normal de Linus n'est pas comme ça.
C'est juste que le kernel de Linus
est un volumé très haut.
C'est très rare,
mais je pense que je me suis toujours mis sur la fête.
Bien,
ce qui s'est passé,
c'est comme...
Vous m'avez entendu,
je l'ai entendu cette phrase,
c'est absolument vrai.
Tout le startup acquise
la personnalité des founders.
C'est 100% vrai.
Et ce n'est pas vrai seulement pour les startups.
Le kernel de Linus
a adopté beaucoup de gens
dans un stade très agressif
parce que de Linus,
c'était cette personnalité.
Je l'ai fait beaucoup
par d'autres gens,
mais je n'ai pas...
En particulier,
c'était une très, très bad expérience.
C'était probablement
l'une des choses qui m'a aidé
à la décision de faire quelque chose.
Quand j'ai eu l'opportunité
de faire quelque chose d'autre,
je me disais que je devais essayer.
Parce que c'était une expérience très jeune,
et cela était avec le maintien de la stack de networking.
C'était un stack
que je n'étais pas très amusé avec.
Donc j'ai commencé à faire
un travail sur le sujet
de l'application de la sub-système de la membre.
Je ne l'ai pas connait bien.
Je ne l'ai pas connait,
de la façon dont il s'est opéré.
Je ne l'ai pas connait les codes.
J'ai commencé à faire beaucoup de trucs stupides.
Et je l'ai...
Je l'ai appris à la fois.
Je l'ai appris à la fois.
Mais pas de Linux.
Linux était toujours très amusé.
Tout le temps, j'ai eu le train de racisme avec lui.
C'est génial que c'était amusé.
Le message sur ce système de l'économie
a toujours été intéressant.
Parce qu'il a des fameuses blocs.
Mais je l'ai encore beaucoup de amis.
J'ai beaucoup de amis
qui étaient flagués par Linux.
Et c'est ce qui s'est passé avec Steve.
Je pense que j'ai juste été heureux.
Parce que je n'ai jamais interprété trop beaucoup
avec les sub-systems que Linux était plus active.
Donc, chaque fois que j'ai eu l'intérêt à interpréter avec lui,
en personne et sur la liste de main-liste,
c'était très bien.
Mais chaque semaine,
quelqu'un de red a été considéré comme un ami très bon.
Il était toujours un bon message.
Je n'ai pas l'acquitté.
Et je l'ai été flamé par d'autres personnes.
C'était très misfortuneux,
mais une réalité très vraie de Linux.
Je ne sais pas comment les choses sont aujourd'hui.
Mais je sais qu'il y a des très bons gens
dans le Linux kernel
qui ne comportent pas comme ça tout de suite.
Andrew Morton est un de ces gens.
Andrew Morton, à l'époque,
était plutôt comme la deuxième personne
en commandant du Linux kernel.
Je n'ai jamais vu un mec qui comportait comme ça.
Et Yens Exbaul,
c'est la personne derrière IOU Ring,
qui est l'un des plus cool des choses dans Linux.
Il est comme la plus softe personne que vous pouvez imaginer.
Ce n'est pas que tout le monde est comme ça,
mais c'est très common.
On va changer et parler de SQLite un peu.
SQLite est un database très fameux.
Il est la plus grande database de l'univers.
Et l'une des choses qui est fameuse
est que ça a un petit équipe et un source ouvert,
mais ce n'est pas une contribution.
C'est comme si vous pouvez le voir,
mais vous ne pouvez pas le toucher.
Mais plus ou moins, vous pouvez le toucher.
Ce que nous avons fait,
parce que il n'y a pas de licences,
parce qu'il n'y a pas de licences,
il ne peut pas modifier le software, etc.
SQLite n'a pas de licences,
c'est un domaine public.
Ils ne peuvent pas légalement...
Et le point de vue public est intéressant,
parce que SQLite n'a pas de dépendances.
SleepSQL a des dépendances.
Et l'une des raisons qu'ils demandent
est que l'on veut que tout le code
soit dans le domaine public.
On ne va jamais toucher la dépendance.
Le code est dans le domaine public.
On peut le toucher.
Mais c'est juste que le code ne fait pas le toucher.
Vous pouvez le toucher et c'est votre fork.
C'est ce que nous avons fait.
Mais ce n'est pas part de SQLite.
Ils ne sont pas intéressés.
Vous pouvez parler un peu plus d'un SQLite
et pourquoi vous avez fait ça?
Nous avons utilisé SQLite
dans notre produit précédent.
Nous avons été intéressés.
La intuition que nous avons eu
en temps est toujours avec nous.
Nous n'avons pas été une compagnie database,
mais nous faisions des replications
et des idées de données.
Nous voulions faire des trucs comme ça.
Nous savions que SQLite
était une partie de la puzzle.
SQLite est très chiant d'enlever.
En fait, quand il n'est pas en train de ranger,
c'est gratuit.
Ce n'est pas comme une normale database.
Ce n'est pas comme une normale database
où il faut toujours s'en ranger,
en prendre les connecteurs, etc.
Nous savions que
nous pouvions faire des replications de SQLite.
Techniquement, nous savions
comment faire ça.
C'est super facile.
Vous avez juste de l'eau
et là-bas.
Nous avons des hooks dans notre fork.
Vous vous writez la réplication
et vous vous plongez.
Nous avons un mapa mental.
Comment faire des replications de SQLite?
Le problème que nous avons attaqué
à la fois est exactement ce problème.
Si vous vous rachetez en code
dans les 20 régions,
c'est très lent d'un peu de ces régions
pour les données.
C'était le problème en temps
de notre producteur.
Nous avons trouvé un peu de gens
qui ont essayé de faire des replications de SQLite.
Nous avons trouvé
des gens qui n'étaient pas les seuls.
Nous avons trouvé un décollet
de la Canonicale.
Nous avons trouvé des lignes de l'AFAS
de la Banque de l'Aéros.
Les décollets
sont très similes.
Ils avaient une forte
consistance.
Nous n'avons pas besoin d'une solution.
Nous devions bien.
Nous pouvions juste l'utiliser.
Ils avaient un peu de hooks
dans SQLite
et ont essayé de contribuer à ces hooks.
Ils ont des problèmes

Ils n'ont pas d'interesse
de la réaction de l'AFAS.
Nous voulons que SQLite
soit cette chose.
L'AFAS
n'est pas une architecture
qu'on veut faire.
Parce qu'il ne peut pas changer SQLite,
ils sont essentiellement un système de décollet.
Il y a beaucoup de problèmes
pour nous et pour beaucoup de raisons
pour le système de décollet.
Comment on va
faire ça pour les travailleurs
et les choses d'aide
que nous avons en train de mettre en force.
Un jour,
Packer et moi
nous parlons.
Nous devons juste
réécrire ceci.
Nous devons juste
réécrire SQLite et ZIG.
Il faut faire des choses
compatible avec le format.
Nous pouvons utiliser
des codes et,
j'espère que ZIG
va nous permettre
de faire ça.
Nous commençons
à penser
et nous faisons un bon travail.
Nous avons un produit
qui se fait bien,
mais pas si bien.
Il n'est pas comme si on ne pouvait pas
réécrire SQLite
pendant un an.
Ce n'est pas going to work.
La deuxième idée
qu'on a sur les iterations,
c'est qu'on ne peut pas
réécrire,
mais si on ne peut pas
réécrire,
on va faire les choses
qu'on veut.
Nous avons une idée

à devenir plus et plus
intéressante.
Mais, c'est le truc.
D'abord,
nous avons l'expérience
avec Linux.
Nous n'avons pas l'air
pas affreux de SQLite.
On pense que beaucoup d'autres
ont l'impression d'avoir
un code de SQLite
et que c'est un code
très petit.
Il n'y a pas
rien magique.
Nous avons un exemple
d'un projet de communauté
qui a des gens d'aujourd'hui
qui ont des directions
de Linux.
Nous allons dire
que c'est ce qu'on va être.
Nous avons
l'impression d'avoir un
code de SQLite
et de l'explication.
Il y a beaucoup de forcs
de SQLite.
Je l'ai trouvé
avec encryption
et avec ce code.
Nous allons
trouver beaucoup.
Nous allons trouver
SQLite plus.
Ce n'est pas le moyen
de jouer.
Nous allons
créer une communauté.
Nous allons annoncer un forc de SQLite.
C'est comme le forc de SQLite
pour qui on veut le faire.
Et puis,
nous allons
faire notre chose.
Nous n'avons pas de choses
pour les autres.
Nous pouvons
le message et le signal.
Si vous voulez
essayer de l'enlever
et que vous êtes aussi frustrés,
vous pouvez venir avec nous.
Nous avons
l'impression d'avoir un code de SQLite.
Nous avons
l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.












Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.


Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.

Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.

Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.






Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression d'avoir un code de SQLite.
Nous avons l'impression de avoir어주 un code de SQLite.








Je dileätterai non plus qu'il y ait une passwords wrapped,
pour un projet de week-end qui t'envoie à l'aide de vos habilités de programmation,
tu dois le vérifier.
Ils ont des défis vraiment fun, comme construire ton propre bit-tour,
construire ton propre git, construire ton propre docteur, et tant d'autres.
Ils ont des défis et un peu de différentes langues de programmation populaires.
Je suis en utilisant le JavaScript.
Si vous me demandez, c'est un bon moyen de construire vos skills,
et c'est beaucoup mieux que juste de griner sur le code de l'élite.
Vous devez se dédiver dans les laboratoires de des tools populaires,
et à la même fois, vous êtes un programmateur meilleur dans votre domaine.
Je travaille sur le build your own git challenge,
en utilisant le JavaScript.
Et c'est beaucoup de fun.
J'ai appris le format de git dans le binary,
et des choses funnables comme...
le tête est juste un file.
C'est un file qui a un référence ou un shot.
Donc je me demande toujours,
comment vous vous entendez dans un état de tête?
Bien, votre tête file a quelque chose dans le tout,
ce n'est pas sur une branche.
C'est vraiment intéressant.
Un autre cool chose de faire ces exercices,
et surtout le git,
c'est que je peux juste regarder les files de git
pour voir le format pour les choses.
Je l'ai juste écrit le commandement de git commit tree.
Et pour faire ça,
je l'ai juste regardé dans le folder de objectifs.
Mon folder de dot git
a maintenant été un truc que j'ai compris et qui peut être raisonnable.
C'est assez facile.
Ainsi, l'expérience de l'utilisateur est aussi wonderful.
Vous ne faites pas vraiment rien sur leur site.
Vous allez lire un prompt,
ils vous linkent à des docs,
mais surtout que vous êtes juste dans votre code d'éditer
en essayant de faire le format et le tool que vous implementez.
Pour essayer de faire des codes pour vous-même,
visitez codecrafters.io
slash devtools-fm.
Là, vous allez avoir un discount de 40%
et vous allez aussi supporter le podcast.
Nous vous espérons que vous le regardez.
Si vous regardez pour une autre manière de supporter le podcast,
vous pouvez aller au shop.devtools.fm.
Au cours des dernières jours,
nous avons élevé des pièces de swag
avec plus de commas.
Cette semaine, la nouvelle sur le store
est une clé de devtools.devtools.de.
Je pense que ce message est vraiment drôle
parce que la plupart des gens que nous parlons
ont fait un peu de mal.
Ils sont contre un autre devtools.
Donc, allez essayer de faire le tool de devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devtools.devt
cubes private.blog.se et qui rec Ensuite de dio zac e
d production et donc quinqu intentional.
habits jugés du
un commune de contributaires très bien.
Je pense que j'ai eu très haut,
depuis comment le centre de la sénégalité,
pour beaucoup de choses,
je pense que mon scénario de rêve ne s'est pas arrivé à jouer.
Mais, encore,
c'est juste parce que ma barre était très très haute.
Mais, je pense que par large,
nous avons été très successements avec ça.
Nous avons, comme je l'ai dit,
sur le projet cor,
plus de projets,
pas que vous mentionnez le cas de la langue,
mais les produits cor sont des 60 contributaires.
C'est génial.
Vous devez commencer à quelque part,
et c'est plus grand que ce que vous avez fait.
Absolument.
60 gens, c'est 20 plus que 20 fois plus que le SQLite.
C'est 3 gens qui travaillent sur le projet.
Oui.
Je suis un développeur de frein,
et je dois admettre que je n'ai pas utilisé SQLite tout ça.
Je ne sais pas vraiment les propres de SQLite
qui font une bonne technologie pour les utiliser.
Les gens comme moi,
pourriez-vous aller sur ces produits?
Et après ça,
j'ai vu que ce que vous avez fait avec l'IBSQL
a éloqué des cas de la langue
comme un usage database pour les utilisateurs.
Vous pouvez nous faire des choses cool
que l'IBSQL a éloquées aussi?
C'était déjà un pattern commun
avec SQLite.
Je vais vous donner des choses cool
sur SQLite en ce moment,
mais pour toucher sur ce point,
notre architecture n'a pas assez permis
de la laitière de la langue,
le service Thrusso.
Et c'est vraiment comme...
Thrusso est essentiellement,
vous pouvez penser de Thrusso
comme un database.
Et je vais toujours essayer
de me faire fouiller
et de dire que je ne suis pas en train
de faire des entreprises database.
Vous pouvez penser de Thrusso comme un service web.
Vous enviez des requests de HTTP.
Mais dans ce service web,
il y a un file SQLite
et le file SQLite
est répliqué.
C'est un file l'IBSQL,
mais le file est SQLite.
Et nous avons les réplications
et les algorithms, etc.
Et il y a des files
qui sont répliqués.
C'est un service web.
Il s'agit d'un connect de HTTP,
il travaille de la même manière,
il travaille avec des travailleurs,
il travaille avec Marcel, Edge, etc.
La première version de ce service,
et le service est aussi
un partage de l'IBSQL.
C'est un source ouvert.
Ce n'est pas que nous avons
le fork et le service
est aussi un partage
de l'IBSQL.
Il arrive quand vous
compilé l'IBSQL,
vous avez les deux,
le database de l'IBSQL
et le service.
Notre architecture initiale
était que le service
servait à un file SQLite.
Donc le service s'appuie
sur un VM
et le VM a un file SQLite.
Et ensuite, nous offrons
3 databases
pour que l'on puisse commencer.
Mais les gens
sont venus me demander
que, ok,
depuis que l'IBSQL
ne peut pas vous donner
10 000 databases,
pourquoi ne pas vous donner
que ces nombreux databases?
Parce que c'est déjà un pattern
qui est assez commun
de SQLite.
Donc nous avons fait le travail
pour changer le service web
pour être multi-ténant
pour que vous puissiez
faire des requêtes
pour...
Vous pouvez maintenant
créer tous ces files
et ensuite vous pouvez
faire des requêtes
pour le bon file.
Donc nous avons fait le travail
et nous avons dévoilé
ce cas-là.
Mais je veux juste
dévoiler que c'est un cas-là
que les gens nous ont dit
parce que c'est un pattern
très commun
de SQLite.
Maintenant, on parle
des bonnes choses
sur SQLite.
Pourquoi?
Parce que SQLite,
à l'endemain de la journée,
c'est juste un file.
Donc créer un database
sur SQLite
c'est juste un file.
Vous ne payez
que pour les choses que vous utilisez
parce que, d'accord,
si vous vous vous récoltez
comme une application Node.js,
SQLite est juste
une libraire
que vous mettez dans votre application.
Donc la existence
de ce file ou le système de file
ne consomme pas beaucoup de ressources
d'exception,
bien sûr,
pour le space de la disc.
Si le database n'est jamais
créé,
votre application Node.js
n'a jamais pris
aucun cycle de compute
sur cela.
Donc c'est déjà un pattern
que, parce que c'est
comme les gens,
donc, d'accord,
c'est très facile
de travailler
dans un environnement serverless
SQLite.
Parce que, d'accord,
il a déjà cette libraire.
Vous avez
à faire un serverless
server,
c'est le oxymoron
sur le point de vue de l'extrême,
comme on l'a fait,
mais quand vous avez
ce server running,
c'est un serverless architecture.
Le database,
il n'y a pas de code start
ou quelque chose comme ça.
Les databases
ne sont pas utilisés.
Nous avons des codes
de start pour votre groupe
de databases.
Si vous n'utilisez pas
aucun database,
vous vous arrêtez.
Mais vous voulez
créer 500 databases,
les databases ne sont pas utilisés.
D'accord,
quand une réquestise
vient du database,
vous vous arrêtez le database.
Foulie serverless,
les codes no codes
sont un très bon architecture.
SQLite,
et parce que
SQLite a été utilisée
traditionnellement
en mode de devices,
en power de la base,
en contrôle industriel.
Il utilise
une memory iota.
C'est un database
d'efficiels.
Donc,
il nous permet
de mettre un plan
sur notre free tier.
Il s'applique
à 9 gigabytes,
10 bidonnets de rose
de red per month,
etc.
Des noms de craze.
Les lesquales
sont alarms.
L'on peut dire
qu'on casa
dements de vie
dans notre varias
ours de 분�ces
de clients potandes
au moins.
C'est complètement
en業.
Nous pouvons
remplir
ce totせ.
Nous continuons
avec c'est-à-dire
functioning
avec de failles d'oeil,
öt re�도 Man'?
Parce que
les failles
ne sont pas
les entreprises de la base d'un cloud sont souvent lesquelles nous sommes super expensés.
C'est super, super cher à faire.
C'est incroyablement rapide.
Et quand vous ne l'utilise pas sur la networks,
c'est comme la qualité de la base traditionnelle,
la base de base répond en microsequence.
Vous n'avez pas de peur de ne pas avoir une plus-1.
Et Thrusso a une mode où vous vous readez un file local
et Thrusso fait le travail de garder ce file en sync.
Donc ça existe.
Vous pouvez avoir l'aider de ce site de SQLite.
C'est un database incroyablement rapide.
Même sur HCP,
Thrusso répond souvent si vous êtes venu de la région de Closenoff.
Et puis, en repliquant,
parce que c'est la même chose,
vous n'avez pas de création de réplique
pour ne pas créer de choses,
jusqu'à l'utiliser.
Vous repliquez notre plan de base en trois régions.
Donc pour la liberté, vous pouvez avoir un database
dans trois régions de l'Ontario.
C'est comme un peu hâte.
Plusptif c'est en quelques frames sur comment farmer en



même sans que vous puissiez ancumer la l dislue,
et de ne pasaguèner un ceci Guan,
ton avocat,

Ço n'est pas la même chose,
c'est-à-dire plus sieht起來
que d' siete Irak.


et il a cette proprement qui lève à un service,
une architecture très facile.
À l'endroit du jour, à un certain niveau, c'est juste le file.
Oui, c'est vraiment, vraiment fascinant.
C'est cool.
Si quelqu'un a...
On dirait que quelqu'un a une application
et qu'ils ont déjà utilisé SQLite.
Et peut-être qu'ils veulent premièrement migrer
à utiliser LibSQL.
Vous avez mentionné que l'un des goals du projet
est de garder le format file consistant.
De cette perspective,
il n'y a rien qui doit arriver à changer sur le disque.
Mais, quels autres travaux
doit arriver à faire la migration ?
Je pense qu'ils doivent utiliser un autre SDK
ou un autre driver.
Vous devez utiliser...
Vous devez utiliser un autre SDK.
Et je pense que beaucoup de gens ne réalisent pas ça.
Les gens vont nous demander
que vous n'êtes pas compatibles avec SQLite.
Mais si vous avez une database,
si vous avez une database,
il y a un clone ou un fork,
ou quelque chose de plus.
La database est sur la chaine.
Vous pouvez garder votre code la même
que la wire protocole.
Parce que la database est sur l'autre côté.
Avec SQLite, c'est impossible.
Parce que la database est le SDK.
Replacer le database
signifie replacer le SDK.
Il n'y a rien d'autre que vous pouvez faire.
Donc, vous devez replacer...
Et c'est un des points de la semaine.
Je pense que...
Je ne suis pas concerné
de ce que je vous dis.
Je pense que c'est un des points de la semaine.









Je pense que c'est un des points de la semaine.


Je pense que c'est un des points de la semaine.
On va willing.
La base crawolf est un des points de la semaine.
applied.
Chaque % sont Bud refundns.


On a un niveau assez sinking dans desناres.



c'est un élément.
Donc, il n'y a pas de moyen de l'utiliser
sans changer le SDK.
Et certains SDKs ont un couple d'adaptes,
spécialement dans le universe de typeScript,
parce qu'ils ne font que l'assumption
que parce que SQLite ne se dévouent pas
sur la métro et que les choses
se dévouent un peu en micro-seconds.
L'exemple de better SQLite
est un driver de synchronisation.
Parce qu'ils font cette assumption,
ils disent qu'ils ne vont jamais bloquer
parce que c'est un driver de synchronisation.
Et si vous utilisez
juste le fork de l'IPSICAL
comme un élément,
ça peut toujours s'occuper, c'est vrai.
Mais quand vous utilisez le l'IPSICAL
sur le HTTP,
que vous avez dit que c'est le server de l'IPSICAL,
ce n'est pas vrai,
parce que maintenant, ce request
sur SQLite était un micro-seconds,
maintenant, ça prend 20 milliseconds,
donc Sync ne marche pas très bien.
Donc, il y a un couple d'adaptes
dans le sens que
si vous êtes venu de un SDK
qui est synchronisé,
vous devez juste adapter
vos fonctions pour être synchronisées
et des choses comme ça.
Mais en général, vous avez changé le SDK.
Quels sont les bénéfices
de juste utiliser l'IPSICAL
sur SQLite
sans la integration de terceau
et de la réplication ?
Qu'est-ce que ça fait
d'un peu plus que de réplications ?
Est-ce que les autres choses
que les gens peuvent être intéressés en
sont une bonne raison
de changer
l'IPSICAL
par juste en utilisant le l'IPSICAL ?
Donc, la grande majorité
de la code que nous avons écrit
est sur SQLite
et sur le server, la réplication, etc.
Et comme je l'ai dit,
parce que c'est la partie que nous voulons.
Ce qui veut dire
c'est que SQLite, en itself,
change très peu.
En plupart des temps,
nous avons juste un couple d'adaptes
et, en même temps,
ces adaptes sont très trivaux
pour contribuer à SQLite,
mais c'est ce que c'est.
Et nous avons ajouté un couple d'adaptes
et nous avons appelé ces adaptes
par notre code Rust
sur le server, pour exemple.
La grande majorité de la code
n'est pas la façon que SQLite

Il y a un couple de choses.
Donc, je dirais que
la Delta est très petite,
et par contre, c'est très bon pour le test.
Parce que SQLite
est infamée,
ou bien, en ce cas,
les gens parlent beaucoup de
comment ils sont très très très testés.
Ils ont 100% de co-coverage, etc.
Mais vous ne pouvez pas savoir
que l'adapte est en fait propriété.
L'adapte n'est pas
dans le public domain.
Vous voyez,
les choses que vous ne savez pas.
Donc, on ne peut pas
juste les faire et les utiliser
parce que
vous ne pouvez pas,
ils ne vous donnent pas.
Donc,
je pense que c'est une chame.
Donc, on les réveille
mais rien que SQLite a.
Mais on a toujours
cette chose que,
comme principe,
on devrait éviter
de faire des changements très graves
sur le database,
sur le core SQLite,
quand nous faisons,
on le fait très attention.
Et puis, on réveille
beaucoup de tests
sur les choses
que nous changeons
et etc.
Je pense que le plus significant change
que nous avons fait
sur le niveau core
est le fait que SQLite
est très mauvais
à changer les schémas
pour les columns.
Donc, pour exemple,
si vous avez un column
qui n'est pas,
ce mark ne l'est pas,
mais maintenant,
vous voulez le permettre
de être nouveau
ou vous voulez changer
les columns
à la même time.
SQLite ne permet
pas d'en faire.
Donc, encore,
vous pouvez changer
le schéma.
Vous pouvez ajouter les columns,
vous pouvez retirer les columns,
etc.
Mais changer un column,
changer le type,
changer le...
...neu...
...properies
et
faire quelque chose
de la marque foreign
ou...
Ce sont toutes les choses
que vous ne pouvez pas
faire sur SQLite.
Et beaucoup de gens
ne complérent pas.
Beaucoup de nos utilisateurs
complérent sur ça.
Donc,
nous...
C'est assez
que nous avons décidé
que c'est plus important
de changer ça.
Donc, nous avons changé
ça.
Et puis, nous avons
un couple de autres changements
que je pense que
c'est très
méchant et spécifique
que je ne m'en parlerai pas.
Parce que ça me...
Ça me prend un long temps
pour même expliquer
ce que c'est.
Mais,
encore, nous avons
des très petites changements.
Un de ces changements
est dans le mechanism
de la marque RhoID
de SQLite.
Et donc,
des petites choses comme ça.
Mais je pense que le plus grand
est que les changements de schéma
dans le SQLite
sont beaucoup plus
plus
plus
plus

plus

plus
plus

plus
plus
plus
plus
plus
plus




thousands
plus
plus
on sait que le stage est prêt, mais on a fait un tour sur ce que le terceau est.
Donc, pour nous expliquer, en concrete détails, ce que le terceau est et comment
on utilise l'air pour faire tout ça arriver, et peut-être comment les
multiples locations travaillent.
Donc, première fois, si je commence aujourd'hui, le lebesico ne sera pas le lebesico,
il serait juste le terceau, parce que ce distingue ne nous aide pas.
On ne l'a pas les mêmes, on a le Versailles, le JAS, etc.
Donc, il y a beaucoup de compagnies, mais chaque fois que la compagnie peut avoir
le même nom pour tout, c'est beaucoup mieux pour l'économie, c'est mieux pour
beaucoup de choses.
Mais, encore une fois, comme je l'ai dit dans la histoire, ce n'était pas
quelque chose que nous l'avions planifié, c'est juste quelque chose qui a
sorti, donc nous avons terminé en situation.
Mais, je l'ai mentionné avant que le lebesico, en itself, a un mode de serveur.
Donc, dans ce mode de serveur, vous pouvez créer un serveur et
vous pouvez le repliquer à un autre serveur que vous avez fait,
ce qui est un réplicateur du premier serveur.
Donc, c'est tout un part du projet lebesico, c'est tout là.
Et ce qui vous permet de faire, c'est que les lebesico-draves, eux-mêmes,
ne peuvent pas parler d'une file.
C'est ma part préférée.
Quand vous en développez, vous en faites un URL, un file,
et vous en développez dans un file.
C'est tout, rien.
Mais quand vous voulez utiliser le serveur, vous changez le URL
au HTTP et tout le reste fonctionne,
en tant que vous utilisez le SDK.
Donc, c'est une expérience de développement de production
que je pense que c'est immédiat.
Mais le serveur est partie du projet lebesico.
Ce n'est pas quelque chose qui est unique de Thursu.
Ce que Thursu est, c'est un serveur de management
qui tient à ce serveur pour vous.
Et ensuite, on va faire des choses comme sécurité, des backups,
des trucs qui sont normales sur le service de management,
comme des certifications de s'établir,
et puis vous pouvez utiliser l'incrétion en transit,
et tout ce genre de choses.
Donc, vous pouvez essentiellement penser que c'est un serveur de management
de le besico lebesico.
On a les plans, les prix,
et c'est une version producte de le besico lebesico.
Mais si vous voulez utiliser le besico lebesico,
vous pouvez,
certains personnes le font.
On a des gens dans notre communauté de Discord
qui font des questions,
nous le connaissons, nous le connaissons,
nous le disadvantageons,
nous le déportons et nous le renversons.
C'est possible, mais Thursu c'est
ou nous on n'a pas besoin de nos hydrohein interpolateurs.
La réplication est,
au iPhone Levi-S ко-server
par exemple,
et donc tout est supplémentaire.
Maintenant ce sera par exemple 1 000 bases.
Et 1 000 bases est déjà une limitation d'affğlation Thursu.
Tirons les records
où vous rapp Shell serra spider ChMaster,
On va avoir des plans plus hauts dans le futur où on peut mettre ce limiter.
On a déjà des clients qui sont plus en train de faire ça, mais ça va require des plans de l'entreprise.
Mais le nombre de 10 000 est un limiter de la taille de la VM que nous donnons pour les gens sur le plan de 29$.
Le B-C-Co n'a pas de limiter, il peut juste créer des bases de 1 million,
ou on n'a pas de la même manière que le menu peut être dans le système de 5$.
Mais oui, la réplication est comme ça.
Tous ces bases de la taille, elles ont des mêmes locations primaires.
Et ensuite, on choisit un couple de replicas que vous voulez mettre à l'intérieur.
Si vous voulez, sur le SDK, vous pouvez repliquer, comme je l'ai dit,
dans votre serveur. Vous pouvez le faire aussi.
Vous pouvez repliquer dans votre device mobile.
Vous n'avez pas de la même attaque à notre infrastructure pour repliquer,
ce qui est un feature très unique.
Je ne sais pas si il y a d'autres bases de database qui le font.
Je peux pas seulement offerter votre réplication,
mais aussi offerter votre réplication de tout ce que vous voulez.
Vous êtes un service AWS,
sur votre device mobile, sur votre controller IoT,
le limiter de la taille de la taille,
repliquer les bases de la database.
Et ça fait le travail de la compétition de la sync.
C'est le service que nous avons fait.
Vous avez un blog postage sur ça.
Je pense que c'est appelé Embedded Replicas.
Je suis un peu plus élevé parce que c'est le nom de la future.
Je vous ai dit que vous pouvez nous parler un peu plus
des mécaniques, comment ça fonctionne?
Nous avons évoqué un peu de base sur le feedback de la communauté,
mais la façon dont je l'ai dit avant est la suivante.
Vous avez un URL,
quand vous créez votre client,
et le URL peut être un file,
ou un htp adresse.
Si vous mets un URL,
vous connectez à un htp ou un service de service,
vous allez se faire couper.
Si vous mets un file, vous parlez de votre file local.
C'est généralement pour un torso.
C'est pour le torso de la configuration.
Pas seulement vous avez un URL,
mais vous avez aussi un token pour l'authentication.
Pour le service de service,
vous ne pouvez pas utiliser le token.
Ou vous pouvez, si vous vous faites la structure,
pour l'authentication.
Vous avez deux paramètres.
URL et token.
Vous pouvez mettre un troisième paramètre,
qui est Sync URL.
Quand vous ajoutez ce troisième paramètre,
qui est un Sync URL,
votre URL devient un file.
Vous dites que vous utilisez ce file,
et le URL Sync est le URL
de ce que je vais synchroniser.
Ce qui s'est passé est que,
chaque fois que vous vous faites un write,
ce write ne finit pas
jusqu'à vous synchroniser le tout.
Vous pouvez toujours le lire.
Vous vous dites localement,
si vous êtes le seul client,
si vous faites ça pour des raisons de performance,
et que vous êtes le seul client,
ce qui est un expérience, c'est juste ça.
Vous utilisez le database.
Le mechanism Sync
s'exchangera au Delta.
Vous n'avez toujours pas de downloading
le whole database.
Nous pouvons seulement le faire,
parce que les hoques que nous avons,
et le code SQLite,
MaliPsycho,
vous êtes toujours
recevant des nouvelles changements
sur le database.
Si votre service s'exprime,
et le code s'exprime,
dans le sync initial,
vous recevez le whole database,
et après ça, vous vous dites
et vous dites, etc.
Vous avez un Sync fonction,
ce qui est quelque chose que nous nous
avons hésité,
parce que beaucoup de nos utilisateurs s'appliquent.
Vous avez un Sync fonction,
que vous pouvez appeler dans un trait de background,
ou dans des points spécifiques,
et ce Sync,
qui dit, ok, donne-moi
les changements
depuis le dernier Sync.
Ce qui fait, c'est que maintenant vous n'avez pas de
être le seul writeur, vous pouvez avoir
4 ou 5 machines différentes.
Il y a toujours un limitation de SQLite.
SQLite ne fonctionne pas
sur un seul machine, parce que c'est juste un file.
Maintenant vous pouvez avoir
5, 6, 7, 10
des milliers de différentes applications
utilisant le database.
Toutes ces machines ont leurs
seuls SQLite files sur le disque.
Ils sont en train de faire le file
de SQLite, mais ils sont
périodiquement recevus les changements
que les autres se font
par le mechanism Sync.
Ce qui nous a fait, c'est que les gens
ont trouvé trop difficile
de se couper un trait de background.
Nous avons donc
ajouté le constructeur
d'une manière essentielle,
qui dit que le Sync est périodique.
Vous avez juste un second,
ou 500 milliseconds,
ou tout.
Et nous avons fait ce travail pour vous,
et chaque second, chaque 500 milliseconds,
tout ce que vous avez dit,
nous allons sur le service.
Donc votre code est juste comme le
reads et le writes.
La SQLite code ne change pas,
mais vous avez un database
local, mais c'est capté en Sync
pour un point de vue remote.
C'est vraiment cool.
Je vois beaucoup de
cases de use locales,
un terme qui se passe
beaucoup.
Local First est souvent en parlant
de replications des partages de le dataset.
Nous n'avons pas...
Vous pouvez l'architecturer
dans un certain nombre, car si vous pouvez
créer 10 000 databases, vous pouvez
repliquer le dataset
dans 10 000 pièces.
Mais l'une des choses que vous pouvez faire,
comme dans le service d'Ours,
quand vous utilisez le service,
tous les services sont replicés.
Vous créez 10 000 databases sur un primary,
quand vous créez une autre région,
sur Thurso, tous ces 10 000 databases
vont être replicés dans cette région.
Mais quand vous faites un meilleur replic,
parce que vous n'avez pas la restriction,
vous pouvez repliquer seulement les databases que vous voulez.
Vous pouvez, pour exemple,
faire un local First sur ça,
si vous coupez le data
dans un sensibilisé,
ou vous pouvez avoir un sas
de 10 000 users
qui a un device mobile,
et puis,
dans ce mobile, vous repliquez
juste le database pour cet utilisateur.
Vous n'avez pas à repliquer les databases
dans un pack.
Ça vous permet de jouer avec ces architectures,
des choses que je suis très excité
à.
Je ne pense pas que vous aurez beaucoup d'usages
sur mobile,
et beaucoup de nos utilisateurs sont sur le web
et sur le server,
parce que c'est où nous avons commencé.
Mais c'est un cas de la utilisation, je l'aime beaucoup.
Vous pouvez les repliquer
dans des différents databases,
et le database pour ces customers est probablement pas grand,
c'est un couple de megabytes.
Vous repliquez le database
dans un mobile mobile
à cet utilisateur.
Vous avez bâti un grand distributeur
de ce type de database.
Ça semble être un problème super,
les systèmes distribués en général sont très problèmes,
probablement un des problèmes les plus difficiles
dans la science computer.
Qu'est-ce que les challenges que vous avez
appris pendant la construction de ce système
distribué?
Une des choses qui nous aide
c'est que notre model de consistance
et notre model de réplication est très simple.
C'est un contraste
où Sylla a été
un système distribué
qui a été modifié.
Ils avaient un multi-master
et vous pouvez le faire
de la manière où vous pouvez le faire.
Ces choses sont très difficiles,
elles nécessitent une consistance éventuelle.
Vous avez toujours des problèmes
de la message, de la message,
de ce que vous faites.
Il y a un système distribué
dans ce sens, mais c'est plus simple
que ce que l'audience a à la main
quand vous vous dites
que vous avez un système distribué.
Le raison pour ça
est que, grâce à nos réplications
des hooks, les réplications existent
dans le log de la log de la Syco-Lite.
Le log de la log de la Syco-Lite
est essentiellement le stream de changements
de Syco-Lite et le stream de changements
est de l'ordre.
Il y a toujours un primary,
il y a
déjà des choses très simplifiées.
Il y a toujours un primary, donc le primary
est le centre de la vérité,
comme la source de la vérité.
Le primary
pousse les réplications
aux clients,
même si ils arrivent dans un autre ordre,
parce que nous sommes
streamer le log de la Syco-Lite.
Il y a un numéro de sequence
dans ce log de la Syco-Lite.
Tout le monde le reçoit
et le tout le monde le reçoit
dans le même ordre.
Bien sûr, il y a des avantages
de ce modèle.
La raison pour laquelle les gens
ne sont pas en train de se faire
c'est que
nous ne pourrons pas faire
ça, mais nous ne pourrons pas
faire ça pour les clients
différents.
Nous faisons ça
dans les mêmes vm.
Quand vous déploiez quelque chose
dans le trousseau, vous avez vos vm.
Dans le vm,
si vous n'utilisez pas d'un database
tout le monde
les vm sont encore en train de se faire
ça ne marche pas.
C'est un challenge.
C'est pourquoi nous considérons
que le futur, en justifisant
les utilisateurs,
il y a un problème de distributed
des systèmes.
Il n'y a pas de machine
de trousseau.
Le moyen de le faire est traditionnel.
Vous avez vos vm.
Justin, vous avez vos vm.
Vous allez avoir vos vm.
Vous êtes separate.
Si vos vm.
ont un problème, Justin n'est pas effectué.
Ça se passe beaucoup.
Un client est en train de se faire
pour une raison, il n'est pas le système.
La réplication est très straightforward.
C'est comme un primaire,
tout est en ordre.
Nous n'avons pas de
traditionnel
des systèmes de distributeur
avec Thursil.
C'est pourquoi
la bata private de Thursil
a été faite pendant 2 mois.
C'est la bata private
qui a évolué beaucoup
depuis que ce n'est pas le cas.
Mais c'était très important
d'être venu de un producte faible
pour valider le plus vite possible.
Est-ce que c'est le cas?
Si non, nous devons trouver le autre
tout rapidement.
On a eu 500 sign-ups pour la bata private
dans quelques semaines
avant d'éliminer la page.
Nous avons engagé
pour ne pas que 500 sign-ups,
mais nous avons été engagés
pour l'intérêt de cette bata
mais, encore une fois,
nous pouvons le faire vite,
plus vite que les
des entreprises de distributeur
parce que notre architecture est très simple.
C'est un trade-off que je pense que les gens
vont s'exprimer de SQL.
Ils vont s'exprimer
d'offrir une solution simple
mais c'est plus la plus faible,
plus vite, plus facile,
plus facile à raison.
C'est un tout de même.
Le même trade-off que SQLite
a, à l'égalité de file,
c'est que nous voulons
faire le même trade-off
pour la service.
Oui, c'est simple.
C'est le premier que nous allons dire.
Mais vous avez gagné quelque chose
avec cette simpleité. Nous pouvons
mettre les features vite.
Le système est facile à raison de
et d'autres.
C'est cool.
Le terceau est
une technologie
très intéressante.
Le système est
nécessaire.
Je suis content que ça existe.
SQLite
est une technologie
très utile et
utile pour la humanité.
C'est bien.
J'espère que la communauté
se débrouille en ce moment
pour faire des changements
si les gens ne peuvent pas être
contribués.
Une chose que nous voulons
faire avant de nous faire des
deux conseils, c'est
juste demander une question
de la future.
Mais, en tant que
vous avez travaillé en databases
et vous êtes continué à travailler en databases,
quel est le futur de vos databases?
Je l'ai écrit un article
d'autre jour. Je pense que le futur de
les databases n'a plus
plus de SQL
et plus de SQL.
Évidemment, pas tous les gens s'accompagnent
avec moi, mais je pense que
beaucoup de les waves qui
font SQLite
et Postgres est le leader
de ce genre de choses.
Je pense que la communauté en large
a abandonné
beaucoup de solutions
de la solution de SQLite.
Postgres est la vraie victoire.
Nous essayons de faire un share de la paille.
Nous essayons de faire
d'un certain extent avec un third soul
de SQLite.
Mais, en tant que le marché share
pour Postgres, il y a un
peu de plus.
Je pense que Postgres sera dominant
dans ce sens. Et, pour moi,
la raison pour laquelle je suis

une histoire de la paille.
Mais, je pense que beaucoup de gens
vont aller au Monde en 2010.
Parce que vous avez pu
faire un share de la paille
et que les machines
sont beaucoup plus puissantes.
Vous pouvez scalez
Postgres verticalement
et avoir
un nombre de cannes.
Et, en fait, vous pouvez avoir
un nombre de cannes, même avec SQLite.
C'est pourquoi nous sommes
battus.
Mais Postgres est plus puissante.
Je pense que beaucoup de
la paille de la paille
que vous avez pu utiliser
n'aura pas de SQLite
même 5 ans plus tard.
Ça peut être fait avec SQLite
aujourd'hui, avec juste Postgres.
En fait, c'est bien.
Je pense que vous allez voir beaucoup plus
de ça. N'aura pas de SQLite
dans ce sens.
Il se confie
dans les databases de spécialité.
Il y a beaucoup de databases
de spécialité,
des développeurs standard.
Ils sont en train de faire des choses
sur le web.
Mais il y a beaucoup de databases.
Ils sont plus communs
avec des databases de vector.
Un exemple de database de spécialité.
Mais vous avez des
séries, des stores,
des databases de spécialité.
Ils existent et
vous y trouvez.
Parce que
par explorer
le pattern de votre data,
c'est un série de temps.
Vous pouvez être
plus efficace
que d'avoir un SQL.
Vous n'avez pas besoin
de la capacité de SQL.
Parce que votre data
n'a pas de relations.
Je pense que
c'est un bordel
d'alimentation
d'arrivée pour un SQL.
C'est un exemple
comme ça.
Vous ne pouvez pas
pas vous faire de la même chose.

la même chose.
Je pense que ces databases
sont de nouvelles.
Le marché
qui est
d'essentiel, les développeurs de web,
les développeurs mobile, les apps de SaaS,
les choses de la journée,
sont essentiellement partitions
entre SQLite, Postgres et MySQL.
Je ne pense pas
que nous serons toujours un 4th
type de SQL.
Je pense
que beaucoup de gens
vont essayer de créer
des modèles de new query.
Un exemple de SerialDB,
il y a aussi un autre
qui est assez intéressant,
l'EdgeDB.
Mais je pense que tous ces databases
ont disparu.
En un sens,
mongeau était presque un accident
parce qu'ils étaient au même endroit.
Je pense que le défaut
pour les databases est de faire
et, pour le moment,
il y a beaucoup de polls
sur SQL.
Je pense que tous ces databases
qui tentent de ne pas
faire SQL avant les développeurs,
pour les développeurs de la journée normales,
ne vont pas faire ça.
Et, pour le moment,
ce n'est pas un exemple de la langue
de query, de la langue de query,
de la langue de query, de la langue de query,
qui onSt le하는데
par exemple,
que tous ces services
un peu精inxtrbucks
vendent plus d'autres articles,
donc le lot



通ues de laPE,

a salleut
des entreprises aujourd'hui dans le space database, comme le plan de scale,
le NION, le Superbase, Nile, ils sont tous comme ça dans une forme différente.
Ils sont tous dans leurs postes parce qu'ils sont dans ma sequel, leur sequel,
mais dans une forme différente.
Donc je pense que c'est le futur de les entreprises database,
les bases de base en général.
Et ça pourrait être le cas, mais c'est ça que je vois.
Ça me semble bien.
Et avec ça, on va faire des conseils.
Je vais partager mon écran.
Mon premier conseil de la semaine est le Docteur RS.
C'est de la team qui fait le Docteur RS.
Et c'est un outil de la suite pour vous analyser les bundles webpacks et RS.
Il y a maintenant beaucoup d'oldes projets de décrepit qui font ça pour Webpack.
Et personne n'a jamais été dédié pour les promesses de pouvoir
débarter mes bundles facilement.
Et je suis super excité de voir le Docteur RS qui essaie de faire ça.
Parce que c'est un outil de la suite
qui est un outil de la suite pour les développeurs.
Et je veux vraiment que je puisse aller à un filet et dire
« Pourquoi vous êtes dans mes bundles ? »
Et il n'y a pas de tool qui fait ça très bien.
J'espère qu'ils peuvent travailler contre ça.
Mais si vous avez regardé une façon de trouver des packages duplicates,
voir ce qu'il y a dans votre bundle et d'aider à débarter ça un peu,
je vais définitivement donner à l'Octeur RS un look.
Plus de russes, JS-tooling.
C'est cool.
Bien, on va parler de zig-tooling.
Je l'ai trouvé aujourd'hui.
C'est un MD4W.
Et c'est une libraire, une libraire marquée,
en zig, qui vous permet d'assentir
une HTML de marquée de parsing.
Donc, parser une libraire marquée et puis ouvrir un stream.
Et vous pouvez juste streamer une HTML sur l'autre côté.
C'est vraiment intéressant.
Donc, j'ai réellement
shared another tool to buy the same dev last week,
the ESM run tool or whatever.
So this is the same person behind ESM.sh,
the CDN or whatever.
They're making a ton of great tools,
but this one's really cool and it compiles to Wazim.
So if you want to include it in any JavaScript runtime, you can.
So yeah, really cool.
Yes, it's super cool that they include a Wazim part of it.
That you can run it in a browser.
And it seems pretty small for a Wazim thing.
By the way, it's called shameless plug SQL like compiles to the browser as well.
And we've been taking advantage of that, not as much as I wanted.
But there is a, we, we, there's a blog post coming up
or we're going to go into more details
where you can just run leapceco on stackplits.
Right. So you just have this database.
One day, I hope that we get to the point that speaking to like local first
and I hope we get to the point that we can just ship
the database to the browser for you.
But you know, the browser has its own complications
to do like replication files and et cetera.
We're not there yet.
But the Wazim stuff is super interesting.
It's a, it's a, it's a technology that needs to exist.
There's definitely a developer who, who did SQLite
and Wazim before the official project was kicking off.
The developer of actual budget.
What's his name? James?
James Longstre.
Yeah, yeah, yeah.
Something like that.
That was a really interesting project
because he, he did SQLite and Wazim
and then he used indexeddb for the like back end store
of like where it actually persists or whatever.
And he had some like performance numbers or whatever
said actually using it like this is faster
than just using indexeddb directly.
I was like, what?
I guess just cause you're writing the, the pages
or the chunks or whatever.
That project is absurd SQL from, from James Longstre.

Next up, we have Val.town.
Yeah.
So this is my two tip for, for today.
Look, I'm brought a JavaScript developer
as we discussed in the beginning.
I couldn't be further from that.
I keep not understanding some stuff in this ecosystem.
Maybe I'm the problem.
Maybe JavaScript is the problem.
I'll leave that up to the reader or listener.
But I've been chatting with Steve
for a while full disclosure.
They do use their so.
So I mean, that's just, that's how I came to know
what they're doing.
But like even for me, who am not a JavaScript developer,
I could get some JavaScript done in Val.town.
And I wrote a blog post about it
because I love the way they position as well,
which is essentially what if GitHub guests could run.
So for me, like that, that don't know any of the ecosystem.
Like, look, I don't know JavaScript,
but I can look up a bunch of functions
and the code itself is easy to write.
So you essentially write something
like it's a GitHub guest and it runs like that.
You don't need anything.
You don't need any deployment.
You don't need any infrastructure.
Like, and it comes with a bunch of APIs
that are pre baked into the product.
One of them is a SQLite API.
So every user of the Val.town platform
has a SQLite database assigned to you automatically.
You send up for the server,
you get a SQLite database,
you can do whatever you want with that.
That database is far by Thursil,
which again, how it came to get you known the product.
But super interesting.
I mean, I actually am running a Discord bot
inside the company
to manage some of the miscommunications
that we were having before.
We run our company on Slack
and our community on Discord,
which I guess it's becoming a normal thing these days.
So I wrote a couple of very simple bot
to pass a couple of key messages back and forth.
Again, without knowing any JavaScript,
I just look it up and know deployment hassle,
know nothing just works.
And again, you can have SQLite,
you can have object store,
you can have email just like integrated in the platform.
So like writing code, it's an absolute breeze.
Definitely recommend people checking it out.
Yeah, we had Steve Kraus on an earlier episode
and a meetup with Steve occasionally in New York.
Yeah, it's a great product.
They're an awesome team
and they ship really, really fast.
So they're doing a lot of really cool stuff.
OK, my next tool tip
was something I've literally been playing around with today.
Here at Descript, I've done a lot of end-to-end testing.
Like we now have almost like 600 end-to-end tests,
which is a lot more than zero when I started.
But recently, we started thinking about code coverage
because like now a large part of our app
is only touched by end-to-end tests.
And it was surprisingly easy to get going.
There's this MPM package, Playwright Test Coverage,
that helps you with some of the instrumentation.
You basically just plop it in
for your app Playwright slash Test Import
and get your test and expect from there.
And then if you set up Istanbul in your Babel config,
it basically just works.
And within 30, 40 minutes,
I had a full test coverage report
for everything that's touched.
So it was pretty easy to set up.
And now it's just like,
it's so awesome to see the fruits of our labor
and see how many lines we've actually covered
with these hundreds of tests.
That's wild.
So how does it map URLs to files?
Yeah, you just do the normal Babel Istanbul plug-in.
It does its instrumenting with its counters.
Et je n'ai pas regardé ce que ça fait,
mais je pense que ça utilise
peut-être quelques API Playwrights
avant et après les tests pour commencer quelque chose.
C'est cool. Pas beaucoup de travail.
C'est drôle.
En parlant de mes guests sur le podcast,
on a eu Runaar, ou Wazeback,
qui a parlé de Unison,
qui est une language de programmation.
Et ils ont aujourd'hui élevé Unison Cloud,
qui est leur service cloud.
Je veux parler de Unison.
Je pense que c'est le futur de la programmation.
C'est une language très intéressante.
Mais ils ont launché leur service cloud,
des applications vraiment très simples,
des propres fonds que Unison donne,
c'est très facile à faire du service
pour la communication du service.
Il y a beaucoup d'interessants.
Ils ont aussi l'application de leur page.
C'est très bien design et très beau.
Je suis très excité pour eux de lancer
et de voir plus de choses dans cet espace.
Je suis heureux de voir quelqu'un
qui ajoute une solution
qui fait que c'est plus facile
pour déployer des services.
Ça montre tous les features qu'ils ont.
Le service à service,
c'est juste un call de fonction,
c'est super.
Les deployments mutables.
J'adore la plateforme.
J'espère voir ça se développer.
Je vois bien comment leurs deployments
sont aussi un call de fonction.
C'est comme si tu déployes ton code.
Tu as dit, « Send ce truc à la service ».
C'est comme quoi ?
C'est trop drôle.
Ok, notre dernier tourneur.
Le tourneur de cargo est mon autre tourneur.
Le tourneur de cargo
est un tool de Godson pour les développeurs Rust.
C'est une langue
que je suis beaucoup plus familier avec.
L'une des choses que j'ai absolument hâte
de voir Rust,
je ne sais pas si c'est un travail fort,
mais je pense que le go, en particulier,
fait beaucoup mieux.
Le processus de publier un go binary
est presque parfait.
Le go est self-contained,
il est confiant sur le binary.
Juste le copier du binary.
Il travaille partout.
Il n'y a pas de faim,
comme la dépendance, etc.
Rust a eu un peu d'idées
que c'est la façon de faire le go,
mais ce n'est pas là.
L'implementation n'est pas là.
Le boulot de Rust à Rust
est très difficile,
très difficile
en comparaison avec le go.
C'est par la raison
que notre CLI sur le tourneur
est go,
pas Rust.
Peut-être que ce soit Rust
si je ne l'ai pas vu en plus.
Le go est un processus
qui fait que le processus
fonctionne.
Donc le go peut générer
une binary simple
pour le go,
comme le go,
qui est, pour moi,
révolutionnaire.
Le go ne pouvait pas le faire
avant.
Le moyen de le faire
est très intéressant.
Ils ont des boulots de zigue
pour le go binary.
C'est super cool.
Et pas seulement ça,
le go,
le go,
pour vous automatiquement
génère des bruts
installs,
scripts
et tout ça.

pas seulement
ils ont construit
la binary self-contained,
mais ils ont construit
l'infrastructure
pour vous écrire
les packages.
Nous avons utilisé
le go.
Le go est construit
avec le go.
Et après
nous avons commencé
le go
avec le go.
Oh mon Dieu,
notre go est trop facile.
Parce que avant ça,
c'est de go,
faire un go
pour les windows,
et faire un go pour MacOS,
etc.
Et un autre go.
Maintenant,
on doit construire
l'actualité
pour Linux
ARM 64
et Linux AMD 64.
Donc, nous n'avons pas support
beaucoup de ces targets
parce qu'ils n'ont pas
le bandwidth.
Maintainer les installs
scripts
c'était très malade.
Et encore,
la binary final
pour le server
ou pour le CLI
et tout ça
n'est pas surprenant.
C'est juste
que vous devez aller
au brew
et
c'est
juste
un
change complet.
Donc, si vous faites Rust,
je vous recommande
de vérifier le disque de cargo.
C'est comme ça
que je vais toujours
construire
mes projects Rust
de maintenant.
Absolument fantastique.
C'est vraiment
incroyable.
C'est très intéressant.
J'ai une crête
que j'ai publiée
et
j'ai voulu
publier
le CLI
pour un moment.
C'est trop dur.
Je l'ai donné.
Oh oui,
si vous vous publiez
votre crête,
ce n'est pas un problème
parce que
le crête
c'est juste
c'est bon.
Si vous voulez publier
quelque chose
que c'est
une binary
ou un server
ou quelque chose,

vous pouvez regarder ça.
C'est
vraiment
mieux
que le Slice bread.
Ça ressemble à un peu.
C'est un peu
un peu de tournage
cette semaine.
Merci pour l'entraînement.
C'était un peu de fun.
C'est un très cool
produit que vous faites
et c'est incroyable
que vous portez
un sequel
et que vous êtes
maintenant
un communauté.
Merci pour votre
attention.
C'est absolument
mon plaisir.

à la prochaine fois,
à la prochaine fois.
C'est un peu de fun
de vous avoir apprécié.

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

devtools.fm:DeveloperTools,OpenSource,SoftwareDevelopment

A podcast about developer tools and the people who make them. Join us as we embark on a journey to explore modern developer tooling and interview the people who make it possible. We love talking to the creators front-end frameworks (React, Solid, Svelte, Vue, Angular, etc), JavaScript and TypeScript runtimes (Node, Deno, Bun), Languages (Unison, Elixor, Rust, Zig), web tech (WASM, Web Containers, WebGPU, WebGL), database providers (Turso, Planetscale, Supabase, EdgeDB), and platforms (SST, AWS, Vercel, Netlify, Fly.io).
Tags
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere