Standard library
113 packages, five categories, written entirely in Venutian: how the library is organized and how to bring a package in.
Venutian ships with 113 packages already written, every one of them in Venutian itself. There is nothing separate to wait for: the library is the language, working the same day you install it.
The five categories
- Data and Math (37 packages). Arrays, collections, caches, complex numbers, dates, encodings, and the numerical work a program reaches for daily.
- Systems (17 packages). Concurrency, authentication, clusters, GPU dispatch, networking, and capability based access.
- Science (10 packages). Astronomy, automatic differentiation, biology, chemistry, finance, machine learning, physics, and quantum simulation.
- Media (7 packages). Audio, color, games, GUIs, images, rasterizing, and video.
- Developer Tools (42 packages). Assertions, command lines, configuration, contracts, debugging, and the rest of what a working codebase needs around it.
Every package has its own page in the package index, with a description, a sample, and the full API reference.
Bringing a package in
A standard package lives in the stdlib/ folder that ships with your install, named without its leading v. vcollections is stdlib/collections.ven, vphysics is stdlib/physics.ven. Name the file with use, relative to the file doing the importing:
use "stdlib/collections.ven"
counts = counter_from(["a", "b", "a", "c", "a"])
print map_get(counts, "a")
3
Every function and shape the package declares becomes available under its own name, the same way a use of one of your own files works. There is no separate registration step and no import package.thing syntax; see modules for exactly what use splices in.
A few to start with
vcollections for deques, counters, and ordered maps. vcomplex for a Number shaped for complex arithmetic. vconcurrent for higher level patterns over spawn and await (see concurrency). vphysics for closed form energy, momentum, and collision formulas. vml for classic machine learning algorithms with no other package as a dependency. vassert and vcontract for the checks a growing program leans on.
The complete list, with a page and a working example for each, is in the package index.
Bringing in someone else's package
A package that is not part of the standard library installs the same way any dependency does, through the package manager: venutian install <path or archive> copies it into venutian_packages/<name>/ and records it in venutian.json. See the package manager for installing, locking, and verifying.
Where to go next
- The package index for all 113 pages.
- Package manager for installing a package that is not part of the standard library.
- Concurrency for
vconcurrentand the primitives underneath it.