npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cwyvern/zirconium

v2.0.0-indev.2

Published

<div align="center"> <img src="https://i.imgur.com/pPwm8wc.png"/> </div> <div align="center"> <h1>Zirconium</h1> <a href="https://www.npmjs.com/package/@cwyvern/zirconium"> <img src="https://badge.fury.io/js/%40cwyvern%2Fzirconium.svg"><

Downloads

110

Readme

[!IMPORTANT] This is a fork of Vorlias' original Zirconium package which was made for a fork of Zircon. While I believe I have fixed the types to work now with typescript 5.5, it is entirely possible there are edge cases I have yet to find. If you're going to use this, be aware it's currently possibly unstable and I've yet to come to a finalised API surface for V2. In addition this will likely be customised to my own needs. This also does not use the official Zr v2 branch, as the bytecode and vm based approach was unfinished, instead it is only v2 due to the major version changes and API changes.

What Zirconium is

  • Zirconium is a runtime scripting language for Roblox, for programmatic manipulation of Roblox games during runtime. Unlike other solutions this is not bound to any sort of command framework. It is inspired by Rust and TypeScript.
  • The scripts can be as simple as user commands, to more complex scripting systems like quest triggers.
  • Zirconium is sandboxed. You can only use functions that you explicitly provide. Each script runs in it's own environment.

Supported

  • [x] Variables

    let x = 10; // basic declaration
    const x = 10; // constant (can not reassign)
  • [x] If/Else

    // Shorthand if
    if value: print "Hello, World!"
    
    // Longhand if
    if value { // brackets are optional
        print "Hello, World!"
    }
    
    // If else
    if value {
        print "Value is true!"
    } else {
        print "Value is false!"
    }
  • [x] For-In Statement

    // Iterate array/object - like for _, value in pairs(myArray)
    for value in myArray {
        print $value
    }
    
    // Iterate range (Print numbers 1 to 10), like for i = 1, 10 do
    for value in 1..10 {
        print $value
    }
  • [x] Functions (both Zr and Luau)

    // Command calls
    test! // no arguments, exclaimation is because otherwise it's evaluated as the variable itself
    print "Hello, World!" 42 true // arguments
    
    // Script calls
    test() //  no arguments
    print("Hello, World!", 42, true) // arguments
    
    // Declaring and using user functions
    function example() {
        print "Hello from example!"
    }
    
    example!
  • [x] Arrays (including indexing)

    let exampleArray = [1, 2, 3];
    let emptyArray = [];
    let arrayWithMixed = [1, "Hello!", true];
  • [x] Objects (including property access)

    let exampleObject = {
        aNumber: 10,
        aBoolean: true,
        aString: "Hi there!"
    }
    let emptyObject = {}

Limitations

  • Stack limit: 256. This is intentionally small as you shouldn't be doing anything that complex with this.