Releases
Every version of TB, newest first: what's new, what changed and what might affect your programs.
- Major
- Big new features. Some old programs may need small changes; the entry lists them under Breaking.
- Minor
- New features. Programs that work on the version before keep working.
- Patch
- Fixes and documentation only. No new features.
- Not published
- The version was built but never offered as a download.
The Download page always has the latest version.
-
A faster engine, a profiler, an event loop and process workers for concurrency, streaming for files of any size, Mach-O and much more of YARA, Sigma correlations, official ATT&CK data, debugging from VS Code, and a playground that never freezes the page.
Added
- A faster engine: code that runs often is translated into a quicker form, more than twice as fast as TB 3.0 on the benchmark set.
TB_JIT=offturns it off. tb profileshows where a program spends its time, per function and per line, with--htmlfor a flame graph and a list of the largest values.parallel.looprunsasync fntasks, servers and network calls on one event loop, holding thousands of connections without a thread each.parallel.groupandparallel.timeoutcancel work cleanly.parallel.processesspreads CPU-heavy work across processes, withparallel.shared_queueto pass values between them.logs.stream,logs.each,pcap.eachandevtx.eachread files of any size with flat memory, and.gzand.zipfiles are read directly.- The
macholibrary reads macOS executables;peadds imphash, the Rich header, resources and code-signature details;elfadds symbol versions and a hardening report. file-inspector shows all of them. scanaccepts much more of the YARA language:xor,base64,wideandnocaseregexes, counts and offsets, integer readers, loops and thepe,elfandmathmodules.- Sigma correlation rules and
| nearconvert for Splunk, KQL and the new ES|QL backend, with field maps for more Sentinel tables. - Official MITRE ATT&CK data (version 20.0), and new intel providers (AlienVault OTX, GreyNoise, Shodan) and SIEM senders (QRadar, Chronicle).
- Editor support: rename and find references across files, quick fixes, organise imports,
[fmt]options intb.toml, and debugging from VS Code throughtb debug --dap. - Desktop apps accept files dropped on the window and show a tray icon on Windows and macOS; every control can be reached with Tab.
- The playground and Run buttons run in a background worker: output appears as it is printed, Stop works at once, and
ask()reads answers inline.
Changed
evtxreads real Windows logs the way Windows shows them:record_idis the event's own record ID and empty values are kept. Damaged chunks and records in slack space can be recovered with{"recover": true}.- The legacy ATT&CK tactic name
defense-evasioncovers both of its v20 successors, Stealth and Defense Impairment.
Security
- Hostile files and rules are bounded: packet captures, PE, Mach-O, EVTX and compressed logs have size and time limits, and YARA refuses patterns that could run for minutes.
- Sigma field names are checked and quoted, so a rule can't add commands to a converted query.
- API keys and tokens are never sent on to another site when a server redirects.
- A faster engine: code that runs often is translated into a quicker form, more than twice as fast as TB 3.0 on the benchmark set.
-
Named inputs for standard-library functions, packet-capture stream reassembly with HTTP file extraction, seven more log formats for security teams, and clearer messages across the tools.
Added
- Standard-library functions take named inputs, like functions you write:
parallel.map(scan, hosts, workers = 8),round(x, digits = 2). A misspelled name gets a "Did you mean" hint, andtb checkand the language server know the names too. pcap.streamsreassembles TCP connections (out-of-order, repeated and missing segments),pcap.defragmentrebuilds fragmented IPv4 and IPv6 packets, andpcap.http_exchangesandpcap.http_objectspair HTTP requests with responses and pull out transferred files with their SHA-256 and MD5. The pcap-triage app lists files sent over HTTP.logs.readrecognises Zeek (TSV and JSON), Suricata EVE, AWS CloudTrail, Okta System Log, Microsoft 365 audit logs (JSON and CSV), CEF and LEEF, and gives Sysmon events common field names such asprocess,command_lineandhashes.- Descriptions for Sysmon events and PowerShell script and module logging (4103, 4104) when reading EVTX files.
- A
globalscommand intb debug. - JSON parse errors carry
data_lineanddata_column, so a program can say where a config file is broken.
Changed
localsintb debugshows only the current function's inputs and variables.tb addprints the short import line, such asimport "tb-tables" as tb_tables.let a, b = 0, 1explains how to write it:let a, b = [0, 1].
Fixed
- Sigma rules converted to KQL use real columns of Microsoft Sentinel's
Syslogtable, reading the user, address and action out ofSyslogMessage, and filter on the auth facility.
- Standard-library functions take named inputs, like functions you write:
-
The biggest TB release so far: classes, pattern matching, generators and tasks in the same friendly language, a bytecode virtual machine, a full set of developer tools and 43 standard libraries. Read What's new in TB 3.0 for examples you can run.
Added
classwith fields, methods,staticmembers,extendsandsuper, plusenumandmatchwith value, range, list, map, type and class patterns.- Default, named and
...restarguments, lambdas, destructuring, spread,const, andif ... then ... elseas an expression. - Whole numbers and fractions kept apart, hex and binary literals, format specs in f-strings, ranges, slices and a
bytestype. - Errors with a kind (
catch err: ParseError),finally,defer,assert, generators withyield, and tasks withasync fnandawait. exportandfrom ... importfor modules.- A bytecode virtual machine that runs programs faster; the tree-walking engine stays available with
TB_ENGINE=tree. - Developer tools:
tb fmt,tb check,tb debug,tb test --coverage,tb doc,tb build,tb lspand a VS Code extension. - Packages:
tb add,tb publishand the TB Package Index. - 23 new libraries, for 43 in all, covering binary formats, packet captures, SIEM queries, threat intelligence, data and networking.
- New desktop and security apps in the examples gallery.
Breaking
- New reserved words (
class,match,from,is,constand others) can't be used as names any more; TB suggests another name. /always gives an exact fraction; it still displays as before.- Errors raised by libraries now have specific kinds. See Moving from 2.x for every change and its fix.
-
A documentation release with no language changes.
Changed
- Sample programs and documentation are neutral and ready for everyone.
- The first program is now
welcome.tb, a short tour of TB.
-
TB becomes a real language for desktop apps and security work. This version was never offered as a download; 2.0.1, released the same day, was the first public 2.x release.
Added
- Maps, methods, f-strings, modules and
import. try,catchandthrowfor error handling.- Twenty standard libraries, including a desktop GUI, logs, detection rules, IOCs, hashing, networking and threat intelligence.
- A Windows installer and a set of ready-made security apps.
- Maps, methods, f-strings, modules and
Get release updates
TB publishes a feed of its releases. Add the address below to a feed reader app (for example Feedly, Inoreader, NetNewsWire or Thunderbird) and it tells you when a new version is out. Browsers don't read feeds themselves, so opening the address directly only shows its code.