You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Sami Vaarala 25513d3fc3 Merge pull request #606 from svaarala/fp-rounding-mode 8 years ago
config Reword DUK_USE_BUFFEROBJECT_SUPPORT metadata 8 years ago
debugger Update debugger opcode metadata 8 years ago
dist-files Dist/makefile changes for 1.x module loader extra 9 years ago
doc 2.0 migration notes for bufobj disabled 8 years ago
dukweb Update dukweb example to reworked buffer bindings 8 years ago
examples Fix detached_cb ctx arg in trans-dvalue example 8 years ago
extras Console extra Proxy and JX improvements 8 years ago
licenses License changes for string hashing (Lua, djb2) 9 years ago
misc Add misc example of shift warning 9 years ago
polyfills Polyfill to approximate removed Duktape.Buffer 8 years ago
references Add 'make refs' target to download ES specs 9 years ago
runtests Runtests fix for print/alert removal 9 years ago
src Merge pull request #606 from svaarala/fp-rounding-mode 8 years ago
testrunner Testrunner stripsize test 8 years ago
tests Testcase for disabled bufferobjects 8 years ago
util Matrix compile InitJS removal fix 8 years ago
website Website buffer and lightfunc improvements 8 years ago
.gitattributes Add .gitattributes with eol=lf for most extensions 9 years ago
.gitignore Gitignore additions 8 years ago
.travis.yml Remove packages not needed in Travis build anymore 9 years ago
AUTHORS.rst Add myself to AUTHORS.rst 8 years ago
CONTRIBUTING.md CONTRIBUTING mergeready change 9 years ago
LICENSE.txt Update copyright year range to cover 2016 9 years ago
Makefile Finalize buffer behavior when no bufobj support 8 years ago
README.md Expand branch policy in README 9 years ago
RELEASES.rst Merge pull request #606 from svaarala/fp-rounding-mode 8 years ago
appveyor.yml AppVeyor fixes for print/alert removal 9 years ago

README.md

Duktape

Build Status

Introduction

Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint.

Duktape is easy to integrate into a C/C++ project: add duktape.c, duktape.h, and duk_config.h to your build, and use the Duktape API to call Ecmascript functions from C code and vice versa.

Main features:

  • Embeddable, portable, compact
  • Ecmascript E5/E5.1 compliant
  • Khronos/ES6 TypedArray and Node.js Buffer bindings
  • Built-in debugger
  • Built-in regular expression engine
  • Built-in Unicode support
  • Minimal platform dependencies
  • Combined reference counting and mark-and-sweep garbage collection with finalization
  • Custom features like co-routines, built-in logging framework, and built-in CommonJS-based module loading framework
  • Property virtualization using a subset of Ecmascript E6 Proxy object
  • Bytecode dump/load for caching compiled functions
  • Liberal license

See duktape.org for packaged end-user downloads and documentation. The end user downloads are also available from the duktape-releases repo as both binaries and in unpacked form as git tags. Snapshot builds from master are available in duktape.org/snapshots.

Have fun!

Support

About this repository

This repository is intended for Duktape developers only, and contains Duktape internals: test cases, internal documentation, sources for the duktape.org web site, etc.

Getting started: end user

When embedding Duktape in your application you should use the packaged source distributables available from duktape.org/download.html. See duktape.org/guide.html#gettingstarted for the basics.

Automatically generated bleeding edge snapshots from master are available at duktape.org/snapshots.

You can also clone this repository, make modifications, and build a source distributable on Linux, OSX, and Windows using python util/make_dist.py.

Getting started: modifying and rebuilding the distributable

If you intend to change Duktape internals and want to rebuild the source distributable in Linux, OSX, or Windows:

# Linux; can often install from packages or using 'pip'
$ sudo apt-get install python python-yaml
$ python util/make_dist.py

# OSX
# Install Python 2.7.x
$ pip install PyYAML
$ python util/make_dist.py

# Windows
; Install Python 2.7.x from python.org, and add it to PATH
> pip install PyYAML
> python util\make_dist.py

The source distributable directory will be in dist/.

For platform specific notes see http://wiki.duktape.org/DevelopmentSetup.html.

Getting started: other development (Linux only)

Other development stuff, such as building the website and running test cases, is based on a Makefile intended for Linux only. See detailed instructions in http://wiki.duktape.org/DevelopmentSetup.html.

Branch policy

  • The master branch is used for active development. While pull requests are tested before merging, master may be broken from time to time. When development on a new major release starts, master will also get API incompatible changes without warning. For these reasons you should generally not depend on the master branch for building your project; use a release tag or a release maintenance branch instead.

  • Pull requests and their related branches are frequently rebased so you should not fork off them. Pull requests may be open for a while for testing and discussion.

  • Release tags like v1.4.1 are used for releases and match the released distributables. These are stable once the release is complete.

  • Maintenance branches are used for backporting fixes and features for maintenance releases. Documentation changes go to master for maintenance releases too. For example, v1.5-maintenance was created for the 1.5.0 release and is used for 1.5.x maintenance releases.

  • A maintenance branch is also created for a major release when master moves on to active development of the next major release. For example, v1-maintenance was created when 1.5.0 was released (last planned 1.x release) and development of 2.0.0 (with API incompatible changes) started on master. If a 1.6.0 is made, it will be made from v1-maintenance.

Versioning

Duktape uses Semantic Versioning, see Versioning.

Reporting bugs

See CONTRIBUTING.md.

Security critical Github issues (for example anything leading to a segfault) are tagged security.

Contributing

See CONTRIBUTING.md.

See AUTHORS.rst and LICENSE.txt.

Duktape Wiki is part of Duktape documentation and under the same copyright and license.