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

scrollsdk

v95.0.1

Published

This npm package includes the Particles class, the Parsers compiler-compiler, a Parsers IDE, and more, all implemented in Particles, Parsers, and TypeScript.

Downloads

1,281

Readme

ScrollSDK

A powerful SDK for building and extending Scroll with Particles and Parsers.

Tests Status

🔗 Quick Links

🛠️ Tools

📝 Documentation

🧪 Tests

❓ FAQ

What is this repo?

This repository contains the code for Particle Syntax and the Parsers Programming Language. These are the core layers upon which Scroll is built.

Who is this for?

This repo is for advanced Scroll developers.

How do I write Parsers?

You can try the Parsers tutorial.

📖 Writing Parsers

The ScrollSDK contains two implementations of Parsers: one in TypeScript and one in Parsers.

You write Parsers to extend Scroll. By creating Parsers with the SDK you get:

  • A parser
  • A type checker
  • Syntax highlighting
  • Autocomplete
  • A compiler
  • A virtual machine for executing your version of Scroll

The ScrollSDK also includes a simple web IDE for writing Parsers called Parser Designer.

At this point in time, to make your Parsers do very useful things, you also need to use another language that you know. The ScrollSDK lets you create new languages using just Scroll or Scroll + Javascript. Parsers can include code from any programming language, not just Javascript. Though at the moment only Scroll + Javascript is supported.

🚀 Using the ScrollSDK

Basic Particles library for npm projects:

const {Particle} = require("scrollsdk/products/Particle.js")
const particle = new Particle("hello world")
console.log(particle.asString)

Running the Particles Sandbox locally:

npm install .
npm run local
open http://localhost:3333/

Running the Parser Designer locally:

npm install .
npm run local
open http://localhost:3333/designer

Building all tools and running tests:

npm run build
npm test

📦 Monorepo Structure

The ScrollSDK is a monorepo. With on average over 1 major version released each month for the past 2.5 years, it would take a lot of overhead to constantly be updating 10+ different repositories and modules every month. Once we're more confident in the theory and best practices, it might make sense to break this repo into independent modules.

That being said, we despise unnecessary dependencies as much as anyone. If anyone wants to create some automated submodules built from the projects in this monorepo, to allow for consuming of a smaller subset of the code and dependencies in this module, feel free to do so.

📊 Codebase Visualization

Codebase Diagram

🔄 Development Status

All breaking changes are mentioned in the release notes. We follow semantic versioning, so breaking changes should not happen if you stay on the same major version.

🌐 Particles Libraries in Other Languages

If you build a Particles library/SDK in another language, let us know and we'll add a link.

If you are working on a Particles library in a new host language, feel free to post an issue or ask for help in the WWS subreddit.

🔧 Development Notes

How to bump versions:

npm run updateVersion NEW_NUMBER

Historical Note

Particles was originally called Tree Notation. Parsers was originally called Grammar.

Editing in Sublime Text

It is helpful to set "goto_anything_exclude_gitignore": true to ignore files in gitignore. Read more here.

⚡ Alternatives Considered

This is the first Particles and Parsers libraries in existence, so there were no alternative implementations. Note and Space were predecessors to Particles. If a better alternative low level syntax to Particles is possible, it has yet to be discovered.

All that said, the important part of this repo is not the code but the design patterns. Particles is very simple, and you can implement the patterns contained here in your own code without using this library. In fact, that is often the best way to use Particles!

Public Domain

ScrollSDK is published to the Public Domain.