]> git.proxmox.com Git - ceph.git/blob - ceph/src/civetweb/src/third_party/duktape-1.3.0/README.rst
bump version to 12.2.12-pve1
[ceph.git] / ceph / src / civetweb / src / third_party / duktape-1.3.0 / README.rst
1 =======
2 Duktape
3 =======
4
5 Duktape is a small and portable Ecmascript E5/E5.1 implementation. It is
6 intended to be easily embeddable into C programs, with a C API similar in
7 spirit to Lua's.
8
9 Duktape supports the full E5/E5.1 feature set including errors, Unicode
10 strings, and regular expressions, a subset of E6 features (e.g. Proxy
11 objects), Khronos/ES6 ArrayBuffer/TypedView, and Node.js Buffer bindings.
12
13 Duktape also provides a number of custom features such as error tracebacks,
14 additional data types for better C integration, combined reference counting
15 and mark-and sweep garbage collector, object finalizers, co-operative
16 threads a.k.a. coroutines, tail calls, built-in logging and module frameworks,
17 a built-in debugger protocol, function bytecode dump/load, and so on.
18
19 You can browse Duktape programmer's API and other documentation at:
20
21 * http://duktape.org/
22
23 In particular, you should read the getting started section:
24
25 * http://duktape.org/guide.html#gettingstarted
26
27 More examples and how-to articles are in the Duktape Wiki:
28
29 * http://wiki.duktape.org/
30
31 Building and integrating Duktape into your project is very straightforward:
32
33 * http://duktape.org/guide.html#compiling
34
35 See Makefile.hello for a concrete example::
36
37 $ cd <dist_root>
38 $ make -f Makefile.hello
39 [...]
40 $ ./hello
41 Hello world!
42 2+3=5
43
44 To build an example command line tool, use the following::
45
46 $ cd <dist_root>
47 $ make -f Makefile.cmdline
48 [...]
49
50 $ ./duk
51 ((o) Duktape
52 duk> print('Hello world!');
53 Hello world!
54 = undefined
55
56 $ ./duk mandel.js
57 [...]
58
59 This distributable contains:
60
61 * ``src/``: main Duktape library in a "single source file" format (duktape.c,
62 duktape.h, and duk_config.h).
63
64 * ``src-separate/``: main Duktape library in multiple files format.
65
66 * ``config/``: genconfig utility for creating duk_config.h configuration
67 files, see: http://wiki.duktape.org/Configuring.html.
68
69 * ``examples/``: further examples for using Duktape. Although Duktape
70 itself is widely portable, some of the examples are Linux only.
71 For instance the ``eventloop`` example illustrates how ``setTimeout()``
72 and other standard timer functions could be implemented on Unix/Linux.
73
74 * ``extras/``: utilities and modules which don't comfortably fit into the
75 main Duktape library because of footprint or portability concerns.
76 Extras are maintained and bug fixed code, but don't have the same version
77 guarantees as the main Duktape library.
78
79 * ``polyfills/``: a few replacement suggestions for non-standard Javascript
80 functions provided by other implementations.
81
82 * ``debugger/``: a debugger with a web UI, see ``debugger/README.rst`` and
83 https://github.com/svaarala/duktape/blob/master/doc/debugger.rst for
84 details on Duktape debugger support.
85
86 * ``licenses/``: licensing information.
87
88 You can find release notes at:
89
90 * https://github.com/svaarala/duktape/blob/master/RELEASES.rst
91
92 This distributable contains Duktape version 1.3.0, created from git
93 commit 675165f35ea3a5bac34ff4d0a58b007cc2f442dc (v1.3.0).
94
95 Duktape is copyrighted by its authors (see ``AUTHORS.rst``) and licensed
96 under the MIT license (see ``LICENSE.txt``). MurmurHash2 is used internally,
97 it is also under the MIT license. Duktape module loader is based on the
98 CommonJS module loading specification (without sharing any code), CommonJS
99 is under the MIT license.
100
101 Have fun!
102
103 Sami Vaarala (sami.vaarala@iki.fi)