open-index/open-npm huggingface dataset:
npm package: @nightcycle/bloxidize
Description: A set of roblox / lune luau compatible rust inspired packages.
Author: nightcycle
Latest version: 1.0.0

# bloxidize

A set of roblox / lune luau compatible rust inspired packages, with the goal of supporting safer coding practices without necessarily doing a 1-to-1 port.

## library

All of the following are published on Wally and NPM. It is recommended you download them individually for a better experience, but if you wish to just try out all of them this repository provides an interface that allows access to all of them published on Wally and NPM.

### [option](https://github.com/nightcycle/option)

This class is a safer way to handle null values.

### [result](https://github.com/nightcycle/result)

This class is a safer way to handle errors.

### [future](https://github.com/nightcycle/future)

This class is a handy way to handle async processes.

## contributing

Please contribute bug reports on the respective repository, for the most part though I'm not looking to add new APIs until Roblox's type engine gets more efficient - already with this minimal coverage things are getting pretty slow. Thank you!
npm package: @nightcycle/option
Description: A basic port of the rust Option class
Author: nightcycle
Latest version: 1.0.1

# option

A safer alternative to null.

## usage

It's a pretty lightweight package.

### construction

You can create a new option via a few methods

```luau
-- none() creates the option as none
local character: Option<Model> = Option.none()

-- from() accepts a possibly null value, creating as some if not null
character = Option.from(player.Character)

-- some() will error if it receives a null value, but always creates the option as some
character = if player.Character then Option.some(player.Character) else Option.none()

-- try runs a function to get the value (use from if state is static)
character = Option.try(function(): Character?
    return player.Character
end)
```

### helper functions

The package interface has a few handy methods.

```luau
-- map() is also a class method, but this allows for type changing
local name: Option<string> = Option.map(character, function(char: Model)
    return char.Name
end)

-- isOption() checks if an unknown value is an option
assert(Option.isOption(name), `name is not an option`)

-- supports `osyrisrblx/t` standard runtime type refinement
local isAModelOption = Option.type(t.instanceIsA("Model"))
local success, message = isAModelOption(name) -- I know, `message = string?`, it's the standard - we can't dump null overnight
```

### methods

For checking the state of the option:

```luau
if name:isSome() then
    print("name is some!")
end

if name:isNone() then
    print("name is none!")
end

-- only runs when some, otherwise it's passed over
name:inspect(function(str)
    print(`name is "{str}"!`)
end)
```

For extracting the state of the option:

```luau

-- if the option is none, the thread panics
local nameStr = name:unwrap()
nameStr = name:expect(`name is none()`) -- same as unwrap, but custom error message

-- both functions need to return the same type, used for flattening the option
nameStr = name:match(function(some)
    return name
end, function()
    return "Default Name"
end)

-- if you don't need to process the some() value, unwrapOr is a handy alternative
nameStr = name:unwrapOr("Default Name")

-- only calls the function if there's a none value - good for performance if getting the value is process heavy
nameStr = name:unwrapOrElse(function()
    return "Default Name"
end)

local maybeNameStr: string? = name:asNullable() -- most of the ecosystem uses null values, it's silly to pretend otherwise

-- constructs a new option with the return value of the callback
local lowerCaseName: Option<string> = name:map(function(some)
    return some:lower()
end)
```

## bloxidize

If you like this, check out my suite of rust inspired packages: [bloxidize](https://github.com/nightcycle/bloxidize)
npm package: @nightcycle/rbx-api-cloud-v1-assets
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.2.2

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes-standarddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-places`
- `nightcycle/rbx-api-cloud-v1-universes-ordereddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-messagingservice`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.
npm package: @nightcycle/rbx-api-cloud-v1-universes
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.1.7

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.
npm package: @nightcycle/rbx-api-cloud-v1-universes-messagingservice
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.2.2

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes-standarddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-places`
- `nightcycle/rbx-api-cloud-v1-universes-ordereddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-messagingservice`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.
npm package: @nightcycle/rbx-api-cloud-v1-universes-ordereddatastores
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.2.2

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes-standarddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-places`
- `nightcycle/rbx-api-cloud-v1-universes-ordereddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-messagingservice`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.
npm package: @nightcycle/rbx-api-cloud-v1-universes-places
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.2.2

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes-standarddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-places`
- `nightcycle/rbx-api-cloud-v1-universes-ordereddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-messagingservice`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.
npm package: @nightcycle/rbx-api-cloud-v1-universes-standarddatastores
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.2.2

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes-standarddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-places`
- `nightcycle/rbx-api-cloud-v1-universes-ordereddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-messagingservice`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.
npm package: @nightcycle/rbx-api-cloud-v2-universes
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.2.2

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes-standarddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-places`
- `nightcycle/rbx-api-cloud-v1-universes-ordereddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-messagingservice`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.
npm package: @nightcycle/rbx-api-cloud-v2-universes-places
Description: A map of Roblox apis created using the lune compatible reqwest package.
Author: nightcycle
Latest version: 0.2.2

# roblox-wep-api-library

An effort to port the official Roblox web apis on both npm and wally.

## coverage

There are many APIs, and frankly I will never use most of them - especially on the legacy side. Here's a summary:

- Open Cloud V1: all of em!
- Open Cloud V2: mostly universe/place ones
- Legacy: nothing!

This will change over time, but the legacy ones probably will never be fully ported.

## sub-packages

Default type complexity errors make it impractical to publish this all as a single package. To keep type-safety it is published as sub-packages. They can be found on wally / npm.

- `nightcycle/rbx-api-cloud-v1-universes-standarddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-places`
- `nightcycle/rbx-api-cloud-v1-universes-ordereddatastores`
- `nightcycle/rbx-api-cloud-v1-universes-messagingservice`
- `nightcycle/rbx-api-cloud-v1-assets`
- `nightcycle/rbx-api-cloud-v2-universes`
- `nightcycle/rbx-api-cloud-v2-universes-places`

As trees increase / decrease in complexity + there are improvements in the luau type engine, expect the specific splitting to change. Ideally all of this would be in one package, but we're not going to sacrifice type safety to do it.

## authentication

This library uses env variables, in Roblox it will first attempt to find the key with `HttpService:GetSecret`, if that doesn't work it will look for it in _G.

- `RBX_OPEN_CLOUD_API_KEY`: used for all open cloud APIs
- `ROBLOSECURITY`: used for all legacy APIs

## doesn't open cloud not work in roblox?

Not yet, but [soon-ish](https://devforum.roblox.com/t/use-open-cloud-via-httpservice-without-proxies-alpha-launch/3587807)

## what are options, futures, and results?

They're classes I ported from rust that I've found make for better coding practices. You can download them from wally / npm:

- option: `nightcycle/option`
- result: `nightcycle/result`
- future: `nightcycle/future`

My hope in building with them, I can encourage safer practices in the dev community. If you don't like using these, I recommend you fork and maintain a version without - there will certainly be demand for it, it's just not something I wish to do. They're pretty simple single-script classes - until I get proper documentation set up, I would honestly just recommend reading the code + the rust documentation.

## contribution

Contributions are appreciated, especially porting APIs. Here are the requirements:

- no nulls except for partial forms (like update masks)
- stick to the established conventions
- always return a future + result combo
- file naming / directory hierarchy should match the url path
- all methods require a test under the tests directory

That being said, so long as it has a test and it works, I'm happy to polish things up so don't stress too much.