IvorySQL-WASM:免安装的数据库探索之旅

news2025/5/24 17:17:03

简介

为了降低社区用户的使用门槛,提升使用体验,IvorySQL 社区特别推出了 IvorySQL-WASM 项目,帮助用户快速在线 Demo。

IvorySQL-WASM 基于开源的 Postgres-WASM 框架开发。它允许用户直接在网页浏览器中体验 IvorySQL,无需本地安装或复杂部署。通过结合 WebAssembly 和虚拟化技术,IvorySQL-WASM 提供了一种简单、轻量且易于访问的方式,让开发者、测试人员和数据库爱好者能够轻松探索 IvorySQL 的强大功能。

技术分析

IvorySQL-WASM 核心技术:

  • V86:x86 模拟器,用于模拟虚拟操作系统所需的硬件环境,包括 CPU、内存、VGA、BIOS 和串口等组件。

  • BuildRoot:用于构建在 V86 上运行的精简 Linux 系统镜像,集成 IvorySQL 4.4 服务及其稳定运行环境。

  • WebAssembly (WASM):一种低级的类汇编二进制指令格式,通过 Emscripten 等工具将 C/C++ 代码编译为 WASM 模块,从而将现有的 C 库生态系统移植到 Web 平台。WASM 具有紧凑的二进制格式和接近原生的运行性能,是 IvorySQL-WASM 项目运行数据库服务的核心技术。

快速部署

开发者若想在本地部署 IvorySQL-WASM 项目,可参考以下步骤:

Linux 环境

  1. 准备运行依赖工具:Node.js 和 npm。
  2. 克隆项目:git clone git@github.com:IvorySQL/ivorysql-wasm.git
  3. 进入 package/runtime 目录,启动 http 服务:npx serve
  4. 在浏览器访问:http://server_ip:3000

Windows 环境

  1. 下载并安装 Node.js。
  2. 在 PowerShell 的相应目录下执行 npx.cmd serve,启动 http 服务器。

file

体验

通过访问 http://192.168.31.186:3000/,用户可以进行 IvorySQL 在线体验,例如创建 t1 表格并列出表格。

file

运行精简 Linux 虚拟机时,浏览器需先下载相关镜像系统文件(约 35MB)和状态快照(15MB)。因此,首次打开页面可能需要等待几秒至二十几秒,具体时长取决于 http 服务位于内网还是外网环境。状态快照用于快速加载预配置的数据库。

通过任务管理器可以观察到,IvorySQL 在浏览器中的运行对 CPU 和内存的占用较为理想。

file

注意事项

  1. 数据库存储在内存中,刷新页面后数据库将被清空,系统恢复到初始状态。

  2. IvorySQL 采用双端口设计,默认连接端口为 1521。若需从 5432 端口登录,请在 shell 终端退出 psql,然后执行:

    psql -U postgres -p 5432 -d postgres
    

    file

  3. 如果用户想保存当前的数据库怎么办?请点击“Save state to file”,浏览器会自动产生并下载 v86state.bin 文件;再次使用保持的数据库时,点击页面“Restore from file”,上传 v86state.bin 文件即可。

  4. V86 系统最小内存配置 128 MB,即当前为配置。

开发者可以改动源码,满足实际需求。

  1. BuildRoot 部分请参考 package/buildroot/README.md
  2. V86 部分请参考https://github.com/copy/v86/releases/tag/latest
  3. Web 页面部分请参考 package/runtime/README.md

社区版即将发布

IvorySQL-WASM 社区版将会伴随 IvorySQL 4.5 一起发布,详情请关注 IvorySQL 官网信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2384752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

飞牛fnNAS远程映射盘符

目录 一、NAS、PC端配置Zerotier 二、使用网上邻居 三、使用WebDAV 1.开启WebDAV 2.PC上安装RaiDrive并设置 如果能将NAS作为本机一个盘符来使用,一定会令我非常方便。如果是本地,可以很方便实现。 将飞牛NAS映射为本地盘符,常用两种方式,一种是网上邻居,另一种是We…

Java设计模式:探索编程背后的哲学

设计模式是软件开发中的一种常见方法,它为常见问题提供了解决方案。在Java世界中,设计模式的应用尤为广泛。本文将深入探讨Java设计模式的起源、分类和实际应用,帮助读者更好地理解和应用这些模式。设计模式不仅是编程的技术,更是…

Docker部署OpenSearch集群

OpenSearch 简介 OpenSearch 是一款开源的搜索与分析引擎,最初由亚马逊 AWS 开发,于 2021 年 9 月将其移交至 Linux 基金会旗下的 OpenSearch 软件基金会,此后实现了社区主导的治理模式。其具有高性能、可扩展性强、兼容性强等优点&#xff…

【AS32X601驱动系列教程】PLIC_中断应用详解

平台中断控制器(Platform Level Interrupt Controller,PLIC)是国科安芯AS32系列MCU芯片的中断控制器,主要对中断源进行采样,优先级仲裁和分发。各外设中断统一连到PLIC,PLIC统一管理并输出中断请求到内核。…

python学习打卡day34

DAY 34 GPU训练及类的call方法 知识点回归: CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直…

leetcode-快慢指针系列

开胃小菜 141. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链…

JAVA05基本数据类型和包装类的转换,转换成其他数据类型,包装类与字符串的转换+学生类的定义实例

1.基本数据类型和包装类的转换 下面是一个自动手动的例题 2.将包装类转换成其他类型 3. 将数据类型转换成字符串 将字符串转换成数据类型 以下是一个例题 学生类的例题

Python打卡训练营学习记录Day34

知识点回归: CPU性能的查看:看架构代际、核心数、线程数 GPU性能的查看:看显存、看级别、看架构代际 GPU训练的方法:数据和模型移动到GPU device上 类的call方法:为什么定义前向传播时可以直接写作self.fc1(x) CPU性…

动手学习深度学习V1.1 chapter2 (2.1-2.2)

chapter2:深度学习基础 区分问题:回归问题还是分类问题? 输出结果是不明确的连续值的时候就是回归问题,比如房价预测,销售额预测等。 输出结果是明确几个离散值的时候就是分类问题,比如字符识别&#xf…

数据结构(6)线性表-队列

一、队列的概述 队列也是一种特殊的线性表,只允许在一段插入数据,另一端删除数据。插入操作的一端称为队尾,删除操作的一端称为队头。 如图: 二、队列相关操作 1.队列结构体的声明 类似于栈,他肯定也得借助于数组或…

【数据架构04】数据湖架构篇

✅ 10张高质量数据治理架构图 无论你是数据架构师、治理专家,还是数字化转型负责人,这份资料库都能为你提供体系化参考,高效解决“架构设计难、流程不清、平台搭建慢”的痛点! 🌟限时推荐,速速收藏&#…

uniapp-商城-62-后台 商品列表(分类展示商品的布局)

每一个商品都有类别,比如水果,蔬菜,肉,粮油等等,另外每一个商品都有自己的属性,这些都在前面的章节进行了大量篇幅的介绍。这里我们终于完成了商品类的添加,商品的添加,现在到了该进…

初识C++:模版

本篇博客主要讲解C模版的相关内容。 目录 1.泛型编程 2.函数模板 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版的实例化 1.隐式实例化&#xff1a;让编译器根据实参推演模板参数的实际类型 2. 显式实例化&#xff1a;在函数名后的<>中指定模…

突破认知边界:神经符号AI的未来与元认知挑战

目录 一、神经符号AI的核心领域与研究方法 &#xff08;一&#xff09;知识表示&#xff1a;构建智能世界的语言 &#xff08;二&#xff09;学习与推理&#xff1a;让机器“思考”与“学习” &#xff08;三&#xff09;可解释性与可信度&#xff1a;让AI更透明 &#xf…

Java 处理地理信息数据[DEM TIF文件数据获取高程]

目录 1、导入依赖包 2、读取方法 3、其他相关地理信息相关内容&#xff1a; 1️⃣常用的坐标系 1、GIS 中的坐标系一般分为两大类&#xff1a; 2. ✅常见的地理坐标系 2.0 CGCS2000&#xff08;EPSG:4490&#xff09; 2.1 WGS84 (World Geodetic System 1984) &#xff08;EPSG…

谈谈对dubbo的广播机制的理解

目录 1、介绍 1.1、广播调用 1、工作原理 1.2、调用方式 1、Reference 注解 2、XML 配置 3、全局配置 1.3、 广播机制的特性 2、重试机制 2.1、默认行为 2.2、自定义逻辑 1、在业务层封装重试逻辑 2、使用 Reference 3、广播调用的实践 3.1、常用参数 1.…

003-类和对象(二)

类和对象&#xff08;二&#xff09; 1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff…

Linux火墙管理及优化

网络环境配置 使用3个新的虚拟机【配置好软件仓库和网络的】 F1 192.168.150.133 NAT F2 192.168.150.134 192.168.10.20 NAT HOST-ONLY 网络适配仅主机 F3 192.168.10.30 HOST-ONLY 网络适配仅主机 1 ~]# hostnamectl hostname double1.timinglee.org 【更…

Visual Studio 制作msi文件环境搭建

一、插件安装 a. 插件寻找 在 Visual Studio 2017 中&#xff0c;如果你希望安装用于创建 MSI 安装包的插件&#xff0c;第一步是&#xff1a;打开 Visual Studio 后&#xff0c;点击顶部菜单栏中的 “工具”&#xff08;Tools&#xff09;&#xff0c;然后选择下拉菜单中的 “…

鸿蒙进阶——Framework之Want 隐式匹配机制概述

文章大纲 引言一、Want概述二、Want的类型1、显式Want2、隐式Want3、隐式Want的匹配 三、隐式启动Want 源码概述1、有且仅有一个Ability匹配2、有多个Ability 匹配需要弹出选择对话框3、ImplicitStartProcessor::ImplicitStartAbility3.1、GenerateAbilityRequestByAction3.1.1…