GithubHelp home page GithubHelp logo

ringo / ringojs Goto Github PK

View Code? Open in Web Editor NEW
837.0 53.0 100.0 30.11 MB

RingoJS is a JavaScript platform built on the JVM and optimized for server-side applications.

Home Page: https://ringojs.org

License: Apache License 2.0

Shell 0.23% JavaScript 71.17% HTML 0.16% Java 28.30% Batchfile 0.01% CSS 0.05% Dockerfile 0.08%
ringojs javascript rhino java runtime jvm multi-threading

ringojs's Introduction

RingoJS

Ringo is a JavaScript platform built on the JVM and optimized for server-side applications. It's based on the Mozilla Rhino JavaScript engine.

It adds a number of features to Rhino that make it suitable for real-world, large-scale application development:

  • A fast, auto-reloading, and CommonJS-compliant module loader.
  • A rich set of modules covering I/O, logging, development tools and much more.
  • Support for blocking and non-blocking I/O.
  • Scalable HTTP server based on the Jetty project.
  • Support for CommonJS packages to install or write additional software components.

For more information, visit the RingoJS web site: https://ringojs.org

Download and Installation

Download the latest precompiled release from the download page. Extract the archive and add the ringojs/bin directory to your local PATH for convinience.

If you use the Homebrew package manager on MacOS, you can use the ringojs formula: brew install ringojs

Take a look at the Getting Started Guide on Ringo's website for more details how to get started after you installed Ringo on your system.

Verify releases

To verify the integrity of a downloaded binary distribution, use the associated checksum file:

$ grep ringojs-x.y.z.tar.gz SHASUMS256-x.y.z.txt | sha256sum -c -

Verifying the integrity of provided checksums

Releases of RingoJS will be signed with one of the following GPG keys:

  • 3.0.0 and newer: Philipp Naderer-Puiu <[email protected]>
    1405 9F17 6485 6429 089F B423 6167 CFBB BDF2 A508
  • 2.0.0 and older: Philipp Naderer-Puiu <[email protected]>
    DE2A A9A1 B018 6C2F 622F D9EF 3F47 C28B 23EB 3072
  • 1.2.0 and older: Philipp Naderer <[email protected]>
    8FF2 26B7 F268 547B 176F ABAC F312 313B 5CBC 0883

All official releases will be signed by at least one published key. Get the latest release key for 3.0.0 and newer with:

$ gpg --keyserver hkps://keys.openpgp.org --recv-keys 14059F1764856429089FB4236167CFBBBDF2A508

Download the checksums SHASUMS256.txt and separate signature SHASUMS256.txt.sig for the release, e.g.

$ curl -LO https://github.com/ringo/ringojs/releases/download/v4.0.0/SHASUMS256-4.0.0.txt
$ curl -LO https://github.com/ringo/ringojs/releases/download/v4.0.0/SHASUMS256-4.0.0.txt.sig

Now verify the checksums with:

$ gpg --verify SHASUMS256-4.0.0.txt.sig
gpg: assuming signed data in 'SHASUMS256-4.0.0.txt'
gpg: Signature made Wed Feb 23 12:07:10 2022 CET
gpg:                using RSA key 14059F1764856429089FB4236167CFBBBDF2A508
gpg: Good signature from "Philipp Naderer-Puiu <[email protected]>" [ultimate]

Building from Source

main

Ringo runs on top of the Java Platform. You can use an open implementation like Eclipse Temurin or Oracle's distribution. It uses Gradle as build tool.

If you have these installed, building Ringo is straightforward:

Check out Ringo using Git:

git clone git://github.com/ringo/ringojs.git

Change to the ringojs directory and run

./gradlew

Supporters

JetBrains

JetBrains sponsored an Open Source license for IntelliJ IDEA to create and maintain Ringo. Thanks for your continuous support!

ORF.at

A huge salute to ORF.at for supporting this projects over the years!

ringojs's People

Contributors

amigrave avatar botic avatar chl avatar earl avatar garryyao avatar gmosx avatar grob avatar hns avatar kmfdm1 avatar mrdon avatar n0rthwood avatar oberhamsi avatar olegp avatar oravecz avatar pnewhook avatar robi42 avatar rrmckinley avatar sovalinux avatar stt avatar the-alchemist avatar tschaub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ringojs's Issues

Mail API

Port over from Helma and/or impl.

Implement webapp extensions

it should be possible to add extensions to webapps. These should be defined in the webapp's config module. Extensions should be installed once when the webapp is started, and there should be a stop hook as well i guess.

One place where we need this is for stuff like cometd where you need to set up callbacks at the beginning of the session.

Make ringo usable as library in other js embeddings

RingoJS (or its libraries and frameworks) should be usable in other JS environments, both based on Rhino or other implementations. For that we have to reduce libraries/frameworks reliance on the engine bits, or provide alternatives when the engine is not available.

Fileupload bug(s)

There is at least still one bug in ringo/webapp/fileupload triggered by alignment of the boundary at the beginning of the buffer (results in a copy with negative index).

Generally, the method has a few problems and could use some refactoring.

Rename JS modules, apps, and tools

open questions: should we use ringo or ringojs for

  • module namespace
  • executable/start script

Use "ringo" or "ringojs" in the shell prompt, or should we switch to something short and anonymous such as ">>"?

Modules from outside module path think they're in top-level module space

When a module is loaded via absolute path name (e.g. "/usr/local/test/repository/all") the module thinks it is a top-level module, i.e. it's moudle id is "all". When this module loads another module via relative id (e.g. "./file"), that module may wrongly be loaded from the module path (e.g "file").

Fix handling of debian packaging temporaries

Currently, ant package also adds ant dpkg leftovers into the tgz/zip packages. It should not. Either make ant dpkg clean up those temporaries after it finished, or explicitly exclude those temporaries in ant package.

Git-based Site

the pages making up the ringojs.org site should preferably also be maintained via the main git repository. this will make it easier to keep the web documentation up-to-date with actual ringojs source.

Rename "skin" to "template"

IRC transcript from http://ringojs.com/bot/2010-04-13:

[8:22] micmath (since you're a native english speaker) - is "skins" good term for templates?
[8:22] or does it sound strange?
[8:22] it's kind of helma 1 heritage, and I'm not sure we should continue using it
[8:23] ummm, it does sound a tiny bit, slightly strange. It's not the first word that would come to my mind when I was looking for it.
[8:23] ok, i guess template/templating is the term to use
[8:24] "skins" sounds more like something that would be used to alter the appearance of an existing app. Like my FireFox has a new skin and now it's green.
[8:24] yes, agreed
[8:24] whereas "template" sounds more like what this is.

importClass/importPackage import to the common global scope

Currently, importClass and importPackage use the shared global scope instead of the module scope they're used in, leading to global scope pollution.

The reason lies in the implementation of these functions and our specific setup (the global scope extending ImporterTopLevel).

Investigate using Apache Ivy

Could be useful for resolving JAR dependencies (especially for Ringo modules which heavily rely on them, e.g., Hibernate).

Also take current CommonJS/Narwhal package management approach into consideration in connection to that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.