Core Library0.xAPI Reference

Choose documentation 3

latest

Current version

latest
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

Swift API

method libtmux-swift latest

Server.init(socketPath:tmuxExecutable:configurationFile:)

Source and package
Qualified name
Server.init(socketPath:tmuxExecutable:configurationFile:)
Declared in
Server
Package
libtmux-swift
Source
Sources/LibTmux/Server.swift

Examples#

Address an existing server by socket. Construct a Server for the fixture's socket and list its sessions. Server is a value that addresses a tmux daemon; constructing it does not start or stop that daemon. Use Swift 6.2 or newer and tmux 3.3a or newer on Linux or macOS. In an empty directory, save this consumer package as Package.swift; SwiftPM fetches the library from release 0.1.1:

// swift-tools-version: 6.2
import PackageDescription
let package = Package(
name: "ApiExample",
platforms: [.macOS(.v13)],
dependencies: [
.package(url: "https://github.com/libtmux/libtmux-swift.git", from: "0.1.1")
],
targets: [
.executableTarget(
name: "ApiExample",
dependencies: [
.product(name: "LibTmux", package: "libtmux-swift"),
.product(name: "TmuxFixture", package: "libtmux-swift"),
],
path: "Sources"
)
]
)

Create a Sources directory and save this complete program as Sources/Example.swift. The withTmuxServer fixture owns a private tmux server and stops it after success or failure. Ordinary application code uses Server for its own socket; these examples use the fixture until their setup moves to ordinary server objects. View source

import Foundation
import LibTmux
import TmuxFixture
@main
struct ApiServer {
static func main() async {
do {
try await withTmuxServer { @Sendable fixture in
guard case let .socketPath(path) = fixture.endpoint else {
throw ExampleError.expectedSocketPath
}
let server = try Server(
socketPath: path,
tmuxExecutable: fixture.tmuxExecutable,
configurationFile: "/dev/null"
)
let names = try await server.sessions().map(\.name).sorted()
print("Sessions: \(names.joined(separator: ", "))")
}
} catch {
FileHandle.standardError.write(Data("Example failed: \(error)\n".utf8))
exit(EXIT_FAILURE)
}
}
enum ExampleError: Error {
case expectedSocketPath
}
}

Build and run the saved program. An operation or cleanup error produces a failing exit status. Set LIBTMUX_TMUX_BIN to an absolute executable path to select a tmux version:

Terminal window
$ swift run ApiExample

Expected output:

Sessions: bootstrap
Esc

Type to search.

Reference previewOpen reference