Coder Social home page Coder Social logo

SquirrelJME

SquirrelJME is a Java ME 8 Virtual Machine for embedded and Internet of Things devices. It has the ultimate goal of being 99.9% compatible with the Java ME standard.

This project is purely written in Java, with a small secondary C project, and is very easy to port to different hardware. For running on native hardware, a compiler handles the conversion of Java byte code to machine code (in an intermediate format). Any system specific APIs are accessed via standardized system calls that handle the logic the compiler cannot provide. An execution engine which is written in C, it offers a lightweight method of code execution.

Additionally, there is a port of SquirrelJME to RetroArch which enables the ability to play older J2ME software and games designed for flip-phones.

  • Copyright (C) 2013-2024 Stephanie Gawroriski [email protected]
  • "SquirrelJME" and "Lex" are trademarked by Stephanie Gawroriski 2016-2024
  • Lex and The SquirrelJME Logo were illustrated by...

Please support me on Patreon!

Dedicated to Emily (1998-2020), the developer of Mu, you will not be forgotten. Rest in peace.

Dedicated to Near (1983-2021), the developer of Higan, Ares, etc., may your soul rest in peace. You will not be forgotten.

I am currently searching for employment! Check out my LinkedIn!

SquirrelJME utilizes Install4J for cross-platform installers, you can read more about it and check out their product page at:

Badges:

  • Checks and Quality
    • CircleCI
    • Code Climate Maintainability Code Climate technical debt
    • Docker Build
    • RetroArch Core
  • Social and Community
    • Discord
    • Twitter
  • Downloads and Activity
    • Commit Activity
    • Docker Pulls
    • SourceForge Downloads
  • Donations
    • Liberapay

Information:

Repository

  • Online repository (HTTPS, Tor (A), Tor (B))
  • SquirrelJME uses fossil http://fossil-scm.org/.
  • The repository may be cloned using Fossil:
    • One of these commands:
      • fossil clone -u http://squirreljme.cc/ squirreljme.fossil
      • fossil clone -u https://squirreljme.cc/ squirreljme.fossil
      • fossil clone -u http://vzwveldr7djnlpg7ujslaqre632htbl3unkmfbltpgumevw63jn47dad.onion/ squirreljme.fossil
      • fossil clone -u http://hrkzpyi33og6j5z3anfpjuqkawvkw4kxyasrp64elg3i6dffihmdhxad.onion/ squirreljme.fossil
      • fossil clone -u http://squirrelmfbf2udn.onion/ squirreljme.fossil
    • mkdir squirreljme
    • cd squirreljme
    • fossil open ../squirreljme.fossil
  • Alternatively via GitHub:
    • git clone https://github.com/SquirrelJME/SquirrelJME
    • cd SquirrelJME
  • Alternatively via repo.or.cz:
    • git clone https://repo.or.cz/SquirrelJME.git
    • cd SquirrelJME
  • Trunk Source Snapshot (Main website or fossil serve only):

Links

Goals

  • To be small - Smaller programs are easier to maintain and are usually simpler.
  • To be fast - With the potential of AOT/JIT, systems that do not normally have a port of an existing virtual machine will usually only have an interpreter.
  • To be compatible - So that existing Java ME 8 applications can run on this virtual machine, along with J2ME applications when required. This has the added bonus of allowing one to use older software to catalog for preservation.
  • To compile once and run anywhere - Current and up to date Java implementations are limited only to a few select systems (Solaris, Linux, BSD, Mac OS X, and Windows). Java ME 8 as of this writing only supports the FRDM-K64F (dropped), STM32429I-EVAL, Raspberry Pi, Intel Galileo Gen2 (preview), and STM 32F746G DISCOVERY (preview) all of which are either out of date or discontinued by their manufacturers. There are multitudes of devices that support J2ME, however that is horribly out of date when compared with the Java that is used today (J2ME is equal to Java 1.4 which was released in 2002).

Donations

You may donate to SquirrelJME to which would be used by the author to keep the web server online, the purchasing of new hardware/software, and for the purchasing of food items for consumption.

Important Statements

JAVA AND ALL OTHER RELATED TRADEMARKS AND COPYRIGHTS ARE OWNED BY ORACLE CORPORATION http://www.oracle.com/.

SQUIRRELJME IS NEITHER PRODUCED BY, ENDORSED BY, NOR SUPPORTED BY ORACLE CORPORATION.

ALL SOURCE CODE IS WRITTEN BY MYSELF WITH FUNCTIONALITY DETERMINED BY THE DOCUMENTED APIS AND RUN-TIME BEHAVIOR. I HAVE NOT LOOKED AT THE SOURCE CODE FOR OTHER IMPLEMENTATIONS, NEITHER FREE SOFTWARE NOR PROPRIETARY IMPLEMENTATIONS. ESSENTIALLY SQUIRRELJME IS A CLEAN-ROOM IMPLEMENTATION OF THE DESIGN OF JAVA ME 8. THE IMPLEMENTATIONS OF THE JAVA ME 8 APIS AND ASSOCIATED JSRS/JEPS IS CONSIDERED BY MYSELF (STEPHANIE GAWRORISKI) TO BE IN THE FAIR USE.

THIS SOFTWARE IS INCOMPLETE AND IN ITS CURRENT STATE IS NOT CURRENTLY 100% COMPATIBLE WITH JAVA ME 8. THERE ARE CURRENTLY NO STABLE RELEASED VERSIONS OF THIS SOFTWARE. AS SUCH THE FIRST MAJOR VERSION RELEASE WILL BE WHEN IT IS COMPATIBLE SO AS TO NOT VIOLATE POTENTIAL LICENSES, AND IF POSSIBLE BE VERIFIED WITH ANY APPLICABLE TCKS (SO IT WOULD BE AN "OFFICIAL" IMPLEMENTATION).

SquirrelJME's Projects

SquirrelJME doesnโ€™t have any public repositories yet.

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.