Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Rumba LanguageNew to Visual Studio Code? Get it now.
Rumba Language

Rumba Language

Xoifail

|
1 install
| (0) | Free
Syntax highlighting and language support for Rumba (.rum) - a cryptographic systems language
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Rumba Language Support for VS Code

Syntax highlighting and language support for Rumba (.rum) - a purpose-built systems language for cryptographic implementations.

Features

The extension provides full syntax highlighting for Rumba source files including keywords (fn, local, const, type, struct, if, for, while), fixed-width types (u8, u16, u32, u64, bool, bytes), bitwise operators (and, or, xor, not, rotr, rotl, shr, shl), annotations (@always_inline, @constant_time, @target), test and benchmark blocks, and both line (--) and block (--[[ ]]) comments.

The extension also includes language configuration for auto-closing brackets and quotes, comment toggling, proper indentation rules, and code folding.

Installation

Download the .vsix file from releases, then in VS Code press Ctrl+Shift+P (or Cmd+Shift+P on Mac), type "Install from VSIX", select the file, and reload.

To build from source:

cd rumba-vscode
npm install
npm run package

Theme

The extension includes Rumba Dark, a theme designed for cryptographic code with a dark background (#202227) for reduced eye strain, clear distinction between keywords, types, and functions, and bright numbers for easy constant identification.

To activate: Preferences > Color Theme > Rumba Dark

Element Hex
Background #202227
Text #bcbec8
Keywords #eb7973
Numbers #f2ba2a
Strings #8ee9b6
Comments #6a6f81
Types #528bff
Functions #fae4aa
Built-ins #8fb4ff
Annotations #70c0e8

Example

--[=[
    SHA-256 Cryptographic Hash Function
    
    Sizes:
        Block:  64 bytes
        Digest: 32 bytes
]=]

module sha256

type Word = u32
type State = [Word; 8]

const H_INIT: State = [
    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
    0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
]

fn S0(x: Word) -> Word
    return (x rotr 2) xor (x rotr 13) xor (x rotr 22)
end

@constant_time
secret fn ct_compare(a: secret [u8; 32], b: secret [u8; 32]) -> bool
    local diff: u8 = 0
    for i = 0, 31 do
        diff = diff or (a[i] xor b[i])
    end
    return diff == 0
end

test "S0 known value" do
    assert S0(0x6a09e667) == 0xce20b47e
end

bench "compression" do
    sample 10000
    warmup 100
    compress(H_INIT, block)
end

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft