Documentation ¶
Overview ¶
Package rbxbin implements various routines and types to install or bootstrap a Roblox Binary.
Index ¶
Constants ¶
const AppSettings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" +
"<Settings>\r\n" +
" <ContentFolder>content</ContentFolder>\r\n" +
" <BaseUrl>http://www.roblox.com</BaseUrl>\r\n" +
"</Settings>\r\n"
Contains necessary application settings required for Roblox to run.
const DefaultRenderer = "D3D11"
DefaultRenderer is used as the default renderer when no explicit named renderer argument has been given.
Variables ¶
var ( ErrNoMirrorFound = errors.New("no accessible deploy mirror found") // As of 2024-02-03: // setup-cfly.rbxcdn.com = roblox-setup.cachefly.net // setup.rbxcdn.com = setup-ns1.rbxcdn.com = setup-ak.rbxcdn.com // setup-hw.rbxcdn.com = setup-ll.rbxcdn.com = does not exist Mirrors = []Mirror{ DefaultMirror, Mirror("https://roblox-setup.cachefly.net"), Mirror("https://s3.amazonaws.com/setup.roblox.com"), } )
var ( ErrMissingPkgManifest = errors.New("package manifest fetch failed") ErrInvalidPkgManifest = errors.New("package manifest is invalid") ErrUnhandledPkgManifestVer = errors.New("unhandled package manifest version") )
var ErrBadChannel = errors.New("deployment channel is invalid or unauthorized")
ErrBadChannel indicates if the mentioned deployment channel does not exist or out of permission scope for the current authenticated user.
var ErrDirMapScan = errors.New("could not locate package directory map in installer")
var ErrInvalidRenderer = errors.New("invalid renderer given")
Functions ¶
func ValidRenderer ¶
ValidRenderer determines if the named renderer is part of the available supported Roblox renderer backends, used in SetRenderer.
func WriteAppSettings ¶
WriteAppSettings writes AppSettings to a AppSettings.xml file in a binary's deployment directory.
Types ¶
type Deployment ¶
type Deployment struct { Type clientsettings.BinaryType Channel string GUID string }
Deployment is a representation of a Binary's deployment or version.
Channel can either be a given channel, or empty - in which Roblox will consider the 'default' channel.
In all things related to the Roblox API, the default channel is empty, or 'live'/'LIVE' on clientsettings. On the Client/Studio, the default channel is (or can be) 'production'. This behavior is undocumented, so it is reccomended to simply provide an empty string for the channel.
func GetDeployment ¶
func GetDeployment(bt clientsettings.BinaryType, channel string) (Deployment, error)
FetchDeployment returns the latest deployment information for the given Roblox binary type with the given deployment channel.
type FFlags ¶
type FFlags map[string]interface{}
FFlags is Roblox's Fast Flags implemented in map form.
func (FFlags) Apply ¶
Apply creates and compiles the FFlags file and directory in the named versionDir.
func (FFlags) SetRenderer ¶
SetRenderer sets the named renderer to the FFlags, by disabling all other unused renderers.
type Job ¶
Job represents a deployment build.
func ParseJobs ¶
ParseJobs is a wrapper that returns a list of deployments, parsed from the stream of bytes.
See rbxdhist.Lex for more information.
type Mirror ¶
type Mirror string
Mirror represents a Roblox deployment mirror.
const DefaultMirror Mirror = "https://setup.rbxcdn.com"
DefaultMirror is the default deployment mirror that can be used in situations where mirror fallbacks are undesired.
func GetMirror ¶
Mirror returns an available deployment mirror from Mirrors.
Deployment mirrors may go down, or be blocked by ISPs.
func (Mirror) BinaryDirectories ¶
func (m Mirror) BinaryDirectories(d Deployment) (PackageDirectories, error)
BinaryDirectories retrieves the PackageDirectories for the given deployment from the mirror.
func (Mirror) GetPackages ¶
func (m Mirror) GetPackages(d Deployment) ([]Package, error)
PackageManifest returns a list of packages for the named deployment.
func (Mirror) PackageURL ¶
func (m Mirror) PackageURL(d Deployment, pkg string) string
Package returns a URL to a package given a package name and a Deployment, relative to the mirror.
type Package ¶
Package is a representation of a Binary package.
func ParsePackages ¶
ParsePackages returns a list of packages parsed from the named package manifest.
type PackageDirectories ¶
PackageDirectories is a map of where binary deployment packages should go.