Skip to content
Javascript runtime environment for Universa
JavaScript C++ C Objective-C CMake PLpgSQL
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
AsyncIO added -present to copyright Sep 3, 2019
crypto added -present to copyright Sep 3, 2019
db added -present to copyright Sep 3, 2019
doc/docjs fix docjs Aug 29, 2019
drafts added -present to copyright Sep 3, 2019
js_bindings added -present to copyright Sep 3, 2019
jslib UBotNet: fix getStorageResultByRecordId, update test Sep 6, 2019
network added -present to copyright Sep 3, 2019
serialization added -present to copyright Sep 3, 2019
test added -present to copyright Sep 3, 2019
tools added -present to copyright Sep 3, 2019
types Added missing std::string includes. Sep 6, 2019
.gitattributes .gitattributes file, for code marging and the source language detection. Sep 5, 2019
.gitignore added more ignores Mar 18, 2019
CMakeLists.txt CMAKE_CXX_FLAGS_RELEASE->CMAKE_CXX_FLAGS Sep 6, 2019
LICENSE.txt added LICENSE.txt Sep 3, 2019
README.md readme build target fixed Sep 6, 2019
async_mills.js added -present to copyright Sep 3, 2019
checkcontract.js added -present to copyright Sep 3, 2019
download_libs.sh updated v8 macos build Jul 8, 2019
main.cpp added -present to copyright Sep 3, 2019
node.js added -present to copyright Sep 3, 2019
stress.js added -present to copyright Sep 3, 2019
stress_timers.js added -present to copyright Sep 3, 2019
testbytes.bin pg-pool: QueryResult.cacheResults(), corresponding unit-test Mar 12, 2019
testmain.js added -present to copyright Sep 3, 2019
testpool.js added -present to copyright Sep 3, 2019
testqueue.js added -present to copyright Sep 3, 2019
teststart.js added -present to copyright Sep 3, 2019
testubot.js added -present to copyright Sep 3, 2019

README.md

U8

U8 is the JavaScript + C++ Universa-specific runtime environment implementation using V8 JavaScript engine.

Its primary purposes is to provide Universa project with the high-performance network-capable executing environment, capable of executing the business logic written on modern, convenient and programmers-friendly programming language, being also free of licensing issues (such as, the current Oracle policy of JDK licensing).

Being based on the V8 engine, it supports the modern flavor of JavaScript language (including ES7 standard features, such as async/await). Besides the great optimization capabilities of V8, it also has the optimized implementations of performance-critical Universa-specific functions and processes, written on clear C++ – essentially merging the power of low-level C++ code with the convenience of JavaScript.

Documentation

For the documentation on the U8 project, please view the U8 page in Universa KB.

The latest documentation on the whole Universa project is available in Universa Knowledge Base at kb.universablockchain.com. For a visual guide on the documentation topics, visit the Universa Development Map at lnd.im/UniversaDevelopmentMap.

Building

Requirements

To build U8, you need the following packages installed:

  • Clang version 8 or higher – distributed within the LLVM.org project. This is the primary compiler used to build the project.
  • G++ version 8 or higher – used to provide the standard C++ library for the Clang to compile.
  • Cmake, for the building process.

Build procedure

# Set clang as active compiler
export CC=/usr/bin/clang-8
export CXX=/usr/bin/clang++-8

# Build
cmake -S . -B build-release
cmake --build build-release --target u8 -- -j

After that, in the build-release directory you get the u8 binary which may now execute the JavaScript scripts, like:

cd build-release
./u8 ../testmain.js

Licensing

Copyright (c) 2019-present Sergey Chernov, iCodici S.n.C, All Rights Reserved.

At the current moment, no concrete license is defined yet for U8. During the active development stage, U8 is provided for trial and academic purposes only; for business licensing questions please contact us via business@universa.co.

You can’t perform that action at this time.