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

caffeine-mc

v3.5.3

Published

Select, configure and extend your to-JavaScript compiler, with arbitrary code, on a per file bases from within the file.

Downloads

726

Readme

logo

Caffeinated Language Evolution Build Status

With CaffeineMC, any language can change arbitrarily without breaking existing code. You can select, configure and extend any to-JavaScript compiler, with arbitrary code, on a per-project or per-file basis.

CaffeineMC Wiki

Go to the Wiki for documentation and more.

Related: CaffeineScript Wiki

Install

npm install caffeine-mc

Next: Get Started

Compatibility

CaffeineMC can work with any to-JavaScript compiler. It works with plain JavaScript, CoffeeScript and CaffeineScript out of the box. An example below shows how easy it is to adapt to other compilers or transpilers like Babel.

What is a Meta-Compiler?

It is a compiler for your compiler. CaffeineMC can 'compile' (create) a brand new compiler, on a file-by-file basis. Most the time, though, it is used to select and configure a compiler. For example, see the custom.caf below.

Why CaffeineMC?

Reason 1: Accelerated Language Evolution

When you can change the compiler programmatically on a per-file basis, languages can evolve arbitrarily without worrying about breaking existing code. This frees languages to evolve rapidly without constraints.

Reason 2: CaffeineMC + CaffeineScript

CaffeineMC really starts to shine when you have a language which is designed to be extensible. CaffeineScript is a modular programming language designed to take maximum advantage of CaffeineMC's per-project and per-file configurability. (modular-CaffeineScript is coming soon)

Reason 3: Custom Source-code 'Views'

Source-code is a "view" into a program's actual semantics. Just like word-processors or spread sheets let you configure your view on a per-file basis, you should be able to change your code's view, its 'language,' on a per-file basis without affecting other files.

Reason 4: Accelerated New Language Development

Focus on writing your new language instead of building all the boiler-plate tools needed to make it useful. CaffeineMC's caf command-line tool, interactive shell, NodeJs-loader and Webpack-loader work for all Caffeine-MC enabled languages. Just create a Caffeine-MC compatible compiler and you get all the standard compiler machinery for free.