mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-17 01:06:08 +03:00

Related to #3224 Previously, Ghostty used a static API for async event handling: io_uring on Linux, kqueue on macOS. This commit changes the backend to be dynamic on Linux so that epoll will be used if io_uring isn't available, or if the user explicitly chooses it. This introduces a new config `async-backend` (default "auto") which can be set by the user to change the async backend in use. This is a best-effort setting: if the user requests io_uring but it isn't available, Ghostty will fall back to something that is and that choice is up to us. Basic benchmarking both in libxev and Ghostty (vtebench) show no noticeable performance differences introducing the dynamic API, nor choosing epoll over io_uring.
101 lines
4.8 KiB
Zig
101 lines
4.8 KiB
Zig
.{
|
|
.name = "ghostty",
|
|
.version = "1.1.3",
|
|
.paths = .{""},
|
|
.dependencies = .{
|
|
// Zig libs
|
|
|
|
.libxev = .{
|
|
// mitchellh/libxev
|
|
.url = "https://github.com/mitchellh/libxev/archive/8943932a668f338cb2c500f6e1a7396bacd8b55d.tar.gz",
|
|
.hash = "1220a67b584c9499154de8c96851ed8e92315452cb2027c06e2d7d07a39c6f900d1a",
|
|
},
|
|
.mach_glfw = .{
|
|
// mitchellh/mach-glfw
|
|
.url = "https://deps.files.ghostty.org/mach_glfw-12206ed982e709e565d536ce930701a8c07edfd2cfdce428683f3f2a601d37696a62.tar.gz",
|
|
.hash = "12206ed982e709e565d536ce930701a8c07edfd2cfdce428683f3f2a601d37696a62",
|
|
.lazy = true,
|
|
},
|
|
.vaxis = .{
|
|
// rockorager/libvaxis
|
|
.url = "git+https://github.com/rockorager/libvaxis#2237a7059eae99e9f132dd5acd1555e49d6c7d93",
|
|
.hash = "1220f5aec880d4f430cc1597ede88f1530da69e39a4986080e976b0c7b919c2ebfeb",
|
|
},
|
|
.z2d = .{
|
|
// vancluever/z2d
|
|
.url = "https://deps.files.ghostty.org/z2d-12201f0d542e7541cf492a001d4d0d0155c92f58212fbcb0d224e95edeba06b5416a.tar.gz",
|
|
.hash = "12201f0d542e7541cf492a001d4d0d0155c92f58212fbcb0d224e95edeba06b5416a",
|
|
},
|
|
.zig_objc = .{
|
|
// mitchellh/zig-objc
|
|
.url = "https://deps.files.ghostty.org/zig_objc-1220e17e64ef0ef561b3e4b9f3a96a2494285f2ec31c097721bf8c8677ec4415c634.tar.gz",
|
|
.hash = "1220e17e64ef0ef561b3e4b9f3a96a2494285f2ec31c097721bf8c8677ec4415c634",
|
|
},
|
|
.zig_js = .{
|
|
// mitchellh/zig-js
|
|
.url = "https://deps.files.ghostty.org/zig_js-12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc.tar.gz",
|
|
.hash = "12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc",
|
|
},
|
|
.ziglyph = .{
|
|
.url = "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz",
|
|
.hash = "12207831bce7d4abce57b5a98e8f3635811cfefd160bca022eb91fe905d36a02cf25",
|
|
},
|
|
.zig_wayland = .{
|
|
// codeberg ifreund/zig-wayland
|
|
.url = "https://deps.files.ghostty.org/zig-wayland-fbfe3b4ac0b472a27b1f1a67405436c58cbee12d.tar.gz",
|
|
.hash = "12209ca054cb1919fa276e328967f10b253f7537c4136eb48f3332b0f7cf661cad38",
|
|
},
|
|
.zf = .{
|
|
// natecraddock/zf
|
|
.url = "https://deps.files.ghostty.org/zf-1220edc3b8d8bedbb50555947987e5e8e2f93871ca3c8e8d4cc8f1377c15b5dd35e8.tar.gz",
|
|
.hash = "1220edc3b8d8bedbb50555947987e5e8e2f93871ca3c8e8d4cc8f1377c15b5dd35e8",
|
|
},
|
|
.gobject = .{
|
|
// ianprime0509/zig-gobject
|
|
.url = "https://deps.files.ghostty.org/gobject-12208d70ee791d7ef7e16e1c3c9c1127b57f1ed066a24f87d57fc9f730c5dc394b9d.tar.zst",
|
|
.hash = "12208d70ee791d7ef7e16e1c3c9c1127b57f1ed066a24f87d57fc9f730c5dc394b9d",
|
|
},
|
|
|
|
// C libs
|
|
.cimgui = .{ .path = "./pkg/cimgui" },
|
|
.fontconfig = .{ .path = "./pkg/fontconfig" },
|
|
.freetype = .{ .path = "./pkg/freetype" },
|
|
.harfbuzz = .{ .path = "./pkg/harfbuzz" },
|
|
.highway = .{ .path = "./pkg/highway" },
|
|
.libpng = .{ .path = "./pkg/libpng" },
|
|
.macos = .{ .path = "./pkg/macos" },
|
|
.oniguruma = .{ .path = "./pkg/oniguruma" },
|
|
.opengl = .{ .path = "./pkg/opengl" },
|
|
.sentry = .{ .path = "./pkg/sentry" },
|
|
.simdutf = .{ .path = "./pkg/simdutf" },
|
|
.utfcpp = .{ .path = "./pkg/utfcpp" },
|
|
.wuffs = .{ .path = "./pkg/wuffs" },
|
|
.zlib = .{ .path = "./pkg/zlib" },
|
|
|
|
// Shader translation
|
|
.glslang = .{ .path = "./pkg/glslang" },
|
|
.spirv_cross = .{ .path = "./pkg/spirv-cross" },
|
|
|
|
// Wayland
|
|
.wayland = .{
|
|
.url = "https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d.tar.gz",
|
|
.hash = "12202cdac858abc52413a6c6711d5026d2d3c8e13f95ca2c327eade0736298bb021f",
|
|
},
|
|
.wayland_protocols = .{
|
|
.url = "https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz",
|
|
.hash = "12201a57c6ce0001aa034fa80fba3e1cd2253c560a45748f4f4dd21ff23b491cddef",
|
|
},
|
|
.plasma_wayland_protocols = .{
|
|
.url = "https://deps.files.ghostty.org/plasma_wayland_protocols-12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566.tar.gz",
|
|
.hash = "12207e0851c12acdeee0991e893e0132fc87bb763969a585dc16ecca33e88334c566",
|
|
},
|
|
|
|
// Other
|
|
.apple_sdk = .{ .path = "./pkg/apple-sdk" },
|
|
.iterm2_themes = .{
|
|
.url = "https://github.com/mbadolato/iTerm2-Color-Schemes/archive/efb1bb1843500a751eb30afa58fe48a6bec8952c.tar.gz",
|
|
.hash = "1220a1dbe41bc69aacf75026a7158812198ea265fb9cac64dcb91cd31f3b1b8c1f92",
|
|
},
|
|
},
|
|
}
|