Dravyn is an independent general-purpose programming language shaped around calm, readable source code and a strong systems-language identity. Its source extension is .dv, its package tool is dvpkg, its manifest file is dravyn.pkg, and its command line entry point is dvc.
This repository is intentionally pure Dravyn source at this stage. The language, standard library, bootstrap design, examples, package manifests, tooling contracts, and self-hosting compiler plan are all written as .dv files so the project identity stays inside the language itself from the beginning.
- Name:
Dravyn - Meaning: a distinct name for the Dravyn language ecosystem
- Brand mark:
dragon emblem - Source extension:
.dv - Package manager:
dvpkg - Package file:
dravyn.pkg - CLI target:
dvc
set app = "Dravyn"
task greet(user: Text) {
say("Ayubowan " + user)
}
task divide(a: Num, b: Num) -> Outcome<Num> {
check b == 0 {
give fail("Cannot divide by zero")
}
give pass(a / b)
}
set answer = divide(10, 2)?
say(answer)
settaskcheckelsewayloopwhilegivepassfailsay
TextNumTruthOutcome<T>Pack<T>Shape
- Text values:
"tea" - Truth values:
yes,no - Pack values:
pack[1, 2, 3] - Shape values:
shape[name: "Dravyn", domain: "systems"]
- variables with
set - tasks with typed parameters
givereturnscheck / elsewayloopwhile- numbers, text, truth values
- arithmetic and comparison
- packs and shapes
Outcome-based failure flow- postfix
?outcome unwrap sayoutput- no null value by default
Wardcapabilities for explicit access to file, network, device, and process effectsJourneypipelines for named multi-step work with built-in failure tracingTidelanes for deterministic concurrency without hidden shared-state chaosOutcomeas the normal fallible path instead of exception-heavy control flow- shaped records and packs kept readable for backend, edge, and CLI systems
- one language for CLI tools, APIs, backend services, automation, device software, and language tooling
- fast toolchain habits inspired by Go and C# without copying their surface
- evented and embedded runtime ideas inspired by JavaScript without inheriting JavaScript's loose semantics
- large-codebase structure and library discipline inspired by Java and C#
- safety, explicit effects, and predictable performance inspired by Rust while keeping Dravyn syntax distinctly Dravyn
- from Java: scale, package discipline, long-lived codebase structure
- from JavaScript: scripting reach, runtime embedding, event-driven workflows
- from Go: simple commands, fast builds, deployable tooling, direct concurrency thinking
- from Rust: safety-first design, explicit resources, strong compiler guidance
- from C#: productive tooling, modern async workflows, broad application reach
- clear bootstrap and self-hosting split
- CLI, diagnostics, formatter, linter, registry, and project-template contracts
- core modules for backend, filesystem, HTTP, process control, async work, testing, time, JSON-like shaping, and device workflows
- example apps for hello world, math, API, CLI, and device automation
- local package samples and starter templates
- language-native test specs for compiler, VM, CLI, formatter, linter, templates, and dvpkg
bootstrap/
compiler/
runtime/
src/
lexer.dv
parser.dv
ast.dv
checker.dv
diagnostics.dv
interpreter.dv
compiler.dv
vm.dv
cli.dv
dvpkg.dv
project.dv
formatter.dv
linter.dv
registry.dv
ward.dv
journey.dv
tide.dv
core/
async.dv
io.dv
text.dv
math.dv
result.dv
collections.dv
fs.dv
http.dv
net.dv
process.dv
testing.dv
time.dv
data.dv
ward.dv
journey.dv
tide.dv
examples/
hello.dv
math.dv
api.dv
device.dv
cli.dv
workflow.dv
fleet.dv
packages/
templates/
docs/
tests/
dravyn.pkg
README.md
bootstrap/holds the first compiler and runtime design in Dravyn form.src/is the self-hosting compiler track.core/is the future standard library.examples/shows CLI, backend, math, and device-oriented programs.packages/contains local dvpkg package samples.templates/stores starter projects fordvc new.tests/stores language-native specification cases.
These commands are the contract Dravyn is aiming at:
dvc new project_namedvc run main.dvdvc check main.dvdvc build main.dvdvpkg initdvpkg add package_namedvpkg install
- docs/overview.md
- docs/syntax.md
- docs/dvpkg.md
- docs/toolchain.md
- docs/spec.md
- docs/language-design.md
- docs/system-design.md
- docs/industry.md
- docs/design.md
- docs/general-purpose.md
- docs/distinctives.md
- docs/roadmap.md
Dravyn now has a pure .dv source tree, language design, compiler layout, tooling contracts, examples, templates, manifests, and test corpus. The next execution milestone is turning the bootstrap compiler plan under bootstrap/ into a runnable first compiler without compromising the language identity.
