当前位置: 首页 > news >正文

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

简介

为了降低社区用户的使用门槛,提升使用体验,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 官网信息。

相关文章:

  • 【沉浸式求职学习day47】【JSP详解】
  • [Datagear] [SQL]实现分组统计同时带汇总行的两种方式对比分析
  • 深入理解会话管理:Cookie、Session与JWT的对比与应用
  • windows 下用yolov5 训练模型 给到opencv 使用
  • leetcode:2469. 温度转换(python3解法,数学相关算法题)
  • 一、ZooKeeper:分布式系统中的隐形协调大师
  • Seismic source model -- Brune model ( ω^2 model)
  • 静态时序分析与约束
  • MATLAB NLP 工具箱 文本预处理教程
  • Flink基于Yarn多种启动方式详解
  • 【羊圈——状压 + DP / 记忆化搜索DP】
  • vue 水印组件
  • 第三十四天打卡
  • 线程的一些基本知识
  • FME入门系列教程7-基于FME的ArcGIS空间数据互操作技术研究与实践
  • 青少年编程与数学 02-020 C#程序设计基础 03课题、开始编程
  • onnx模型转入rknn3399平台上工作记录
  • Axure元件动作五:设置列表选中项
  • 蓝桥杯国14 互质
  • Vue+css实现扫描动画效果(使用@keyframes scan)
  • c#做asp.net网站/2023年第三波疫情9月
  • php租车网站源码/百度热搜广告位
  • 网站的推广有哪些方式/seo搜索引擎优化到底是什么
  • 培训网站建设报价单/外贸网站免费建站
  • 免费主题wordpress/seo研究中心怎么了
  • wordpress淘宝客建站教程视频/厦门谷歌推广