Codeware Compress ((free)) Download New
by Codeware is widely considered the industry standard for ASME Section VIII pressure vessel design and heat exchanger analysis. The latest 2026 release
(Build 8110 and newer) continues to prioritize engineering productivity by automating complex ASME code compliance. Pressure Vessel Software For ASME VIII - Codeware
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Codeware Compress | Smart ZIP Utility</title>
<!-- Font Awesome 6 (free icons) -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<style>
*
margin: 0;
padding: 0;
box-sizing: border-box;
body
background: linear-gradient(145deg, #0b1120 0%, #111827 100%);
font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
padding: 2rem 1.5rem;
/* main card */
.codeware-card
max-width: 1300px;
width: 100%;
background: rgba(18, 25, 45, 0.75);
backdrop-filter: blur(12px);
border-radius: 3rem;
box-shadow: 0 25px 45px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(66, 153, 225, 0.2);
overflow: hidden;
transition: all 0.2s ease;
/* header branding */
.brand-header
padding: 1.8rem 2.5rem;
background: rgba(10, 14, 23, 0.6);
border-bottom: 1px solid rgba(56, 189, 248, 0.25);
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 1rem;
.logo-area
display: flex;
align-items: center;
gap: 0.75rem;
.logo-icon
font-size: 2.2rem;
color: #38bdf8;
filter: drop-shadow(0 0 6px #0ea5e9);
.brand-title
font-size: 1.8rem;
font-weight: 700;
background: linear-gradient(135deg, #FFFFFF, #94a3f8);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
letter-spacing: -0.3px;
.badge-new
background: #0f2c3b;
color: #7dd3fc;
font-size: 0.75rem;
font-weight: 600;
padding: 0.25rem 0.75rem;
border-radius: 40px;
border: 1px solid #38bdf8;
margin-left: 0.75rem;
vertical-align: middle;
display: inline-block;
.header-stats
background: #0f172ab3;
padding: 0.5rem 1rem;
border-radius: 60px;
font-size: 0.85rem;
font-weight: 500;
color: #cbd5e6;
.header-stats i
margin-right: 6px;
color: #38bdf8;
/* main two column layout */
.compress-layout
display: flex;
flex-wrap: wrap;
padding: 2rem 2rem 2rem 2rem;
gap: 2rem;
.upload-panel
flex: 1.4;
min-width: 260px;
.settings-panel
flex: 1;
min-width: 260px;
background: rgba(15, 23, 42, 0.5);
border-radius: 1.8rem;
padding: 1.5rem;
backdrop-filter: blur(4px);
border: 1px solid rgba(71, 85, 105, 0.4);
/* dropzone */
.dropzone
background: rgba(0, 0, 0, 0.3);
border: 2px dashed #3b82f6;
border-radius: 2rem;
padding: 2rem 1.5rem;
text-align: center;
cursor: pointer;
transition: all 0.2s;
margin-bottom: 1.5rem;
.dropzone.drag-over
background: #1e293bc9;
border-color: #60a5fa;
transform: scale(0.99);
.dropzone i
font-size: 3rem;
color: #60a5fa;
margin-bottom: 0.75rem;
.dropzone p
color: #cbd5e1;
font-weight: 500;
.file-input-hidden
display: none;
/* file list */
.file-list-container
background: #0f172a80;
border-radius: 1.5rem;
padding: 0.8rem;
max-height: 320px;
overflow-y: auto;
.file-item
background: #1e293b;
margin: 0.5rem 0;
padding: 0.7rem 1rem;
border-radius: 1rem;
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.8rem;
transition: 0.1s;
border-left: 4px solid #3b82f6;
.file-info
display: flex;
align-items: center;
gap: 0.6rem;
flex: 1;
overflow: hidden;
.file-info i
font-size: 1.3rem;
color: #94a3b8;
.file-name
font-size: 0.85rem;
font-weight: 500;
color: #e2e8f0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
.file-size
font-size: 0.7rem;
color: #94a3b8;
margin-left: 0.5rem;
.remove-file
background: none;
border: none;
color: #f87171;
cursor: pointer;
font-size: 1rem;
padding: 0 6px;
transition: 0.1s;
.remove-file:hover
color: #ef4444;
transform: scale(1.1);
/* compress options */
.option-group
margin-bottom: 1.8rem;
.option-label
display: flex;
align-items: center;
gap: 8px;
color: #cbd5e6;
font-weight: 500;
margin-bottom: 0.7rem;
select, input[type="range"]
width: 100%;
background: #0f172a;
border: 1px solid #334155;
padding: 0.6rem 1rem;
border-radius: 1rem;
color: white;
font-weight: 500;
outline: none;
.level-value
display: inline-block;
background: #0f172a;
padding: 0.2rem 0.7rem;
border-radius: 30px;
font-size: 0.8rem;
margin-left: 8px;
.action-buttons
display: flex;
flex-direction: column;
gap: 1rem;
margin-top: 2rem;
.btn
border: none;
padding: 0.8rem 1.2rem;
border-radius: 2rem;
font-weight: 600;
font-size: 1rem;
cursor: pointer;
transition: 0.15s;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
.btn-primary
background: linear-gradient(95deg, #2563eb, #3b82f6);
color: white;
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
.btn-primary:hover:not(:disabled)
background: linear-gradient(95deg, #3b82f6, #60a5fa);
transform: translateY(-2px);
.btn-outline
background: transparent;
border: 1px solid #475569;
color: #e2e8f0;
.btn-outline:hover:not(:disabled)
background: #1e293b;
border-color: #3b82f6;
.btn:disabled
opacity: 0.5;
cursor: not-allowed;
.status-area
margin-top: 1.5rem;
background: #0a0f1c;
border-radius: 1.2rem;
padding: 0.8rem 1rem;
font-size: 0.8rem;
color: #9ca3af;
text-align: center;
.success
color: #4ade80;
.error
color: #f87171;
/* responsive */
@media (max-width: 780px)
.compress-layout
flex-direction: column;
padding: 1rem;
.brand-header
flex-direction: column;
align-items: start;
footer
padding: 1rem 2rem 1.5rem;
text-align: center;
font-size: 0.7rem;
color: #4b5563;
border-top: 1px solid #1e293b;
</style>
</head>
<body>
<div class="codeware-card">
<div class="brand-header">
<div class="logo-area">
<i class="fas fa-cubes logo-icon"></i>
<span class="brand-title">CodeWare Compress <span class="badge-new"><i class="fas fa-bolt"></i> NEW</span></span>
</div>
<div class="header-stats">
<i class="fas fa-file-zipper"></i> Smart ZIP engine · Lossless · On‑the‑fly
</div>
</div>
<div class="compress-layout">
<!-- LEFT: File upload & list -->
<div class="upload-panel">
<div class="dropzone" id="dropzone">
<i class="fas fa-cloud-upload-alt"></i>
<p>Drag & drop files or click to browse</p>
<small style="color:#6b7280">Supports images, documents, any binary · up to 50MB each</small>
<input type="file" id="fileInput" multiple class="file-input-hidden">
</div>
<div class="file-list-container" id="fileListContainer">
<div style="text-align:center; padding:1rem; color:#6b7280;">
<i class="fas fa-inbox"></i> No files added
</div>
</div>
</div>
<!-- RIGHT: compression settings & download -->
<div class="settings-panel">
<div class="option-group">
<div class="option-label"><i class="fas fa-chart-line"></i> Compression level</div>
<input type="range" id="compressLevel" min="0" max="9" value="6" step="1">
<div style="display: flex; justify-content: space-between; margin-top: 6px;">
<span style="font-size:0.7rem;">Speed (0)</span>
<span style="font-size:0.7rem;">Balanced</span>
<span style="font-size:0.7rem;">Ultra (9)</span>
</div>
<div style="margin-top: 6px;"><span id="levelDisplay" class="level-value">Level 6 (Default)</span></div>
</div>
<div class="option-group">
<div class="option-label"><i class="fas fa-archive"></i> Archive name</div>
<input type="text" id="archiveName" value="codeware_archive" placeholder="archive name">
<small style="color:#6b7280">.zip will be added automatically</small>
</div>
<div class="action-buttons">
<button id="compressBtn" class="btn btn-primary"><i class="fas fa-compress-alt"></i> Compress & Prepare</button>
<button id="downloadBtn" class="btn btn-outline" disabled><i class="fas fa-download"></i> Download ZIP</button>
</div>
<div id="statusMessage" class="status-area">
<i class="fas fa-info-circle"></i> Ready. Add files and compress.
</div>
</div>
</div>
<footer>
<i class="fas fa-shield-alt"></i> Client-side compression using JSZip · Files never leave your device
</footer>
</div>
<!-- JSZip library from CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
<!-- FileSaver.js for download trigger -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script>
<script>
// ---------- DOM elements ----------
const dropzone = document.getElementById('dropzone');
const fileInput = document.getElementById('fileInput');
const fileListContainer = document.getElementById('fileListContainer');
const compressLevelSlider = document.getElementById('compressLevel');
const levelDisplaySpan = document.getElementById('levelDisplay');
const archiveNameInput = document.getElementById('archiveName');
const compressBtn = document.getElementById('compressBtn');
const downloadBtn = document.getElementById('downloadBtn');
const statusDiv = document.getElementById('statusMessage');
// ---------- state management ----------
let selectedFiles = []; // stores File objects
let lastCompressedBlob = null; // stores generated zip blob after compression
let lastArchiveName = ''; // last generated archive base name
// Helper: update file list UI
function renderFileList()
if (!fileListContainer) return;
if (selectedFiles.length === 0)
fileListContainer.innerHTML = `<div style="text-align:center; padding:1rem; color:#6b7280;">
<i class="fas fa-inbox"></i> No files added
</div>`;
return;
const listHtml = selectedFiles.map((file, idx) =>
const sizeBytes = file.size;
const sizeStr = formatBytes(sizeBytes);
// icon based on type
let fileIcon = '<i class="fas fa-file"></i>';
if (file.type.startsWith('image/')) fileIcon = '<i class="fas fa-image"></i>';
else if (file.type.includes('pdf')) fileIcon = '<i class="fas fa-file-pdf"></i>';
else if (file.type.includes('zip')) fileIcon = '<i class="fas fa-file-archive"></i>';
else if (file.type.includes('text')) fileIcon = '<i class="fas fa-file-alt"></i>';
return `
<div class="file-item" data-index="$idx">
<div class="file-info">
$fileIcon
<span class="file-name" title="$escapeHtml(file.name)">$escapeHtml(file.name)</span>
<span class="file-size">$sizeStr</span>
</div>
<button class="remove-file" data-index="$idx" aria-label="Remove file"><i class="fas fa-trash-alt"></i></button>
</div>
`;
).join('');
fileListContainer.innerHTML = listHtml;
// attach remove event listeners
document.querySelectorAll('.remove-file').forEach(btn =>
btn.addEventListener('click', (e) =>
e.stopPropagation();
const idx = parseInt(btn.getAttribute('data-index'), 10);
if (!isNaN(idx) && idx >= 0 && idx < selectedFiles.length)
selectedFiles.splice(idx, 1);
renderFileList();
invalidateCompressedData();
updateStatus('info', 'File removed. Re-run compression to update archive.');
);
);
// simple sanitizer
function escapeHtml(str)
return str.replace(/[&<>]/g, function(m)
if (m === '&') return '&';
if (m === '<') return '<';
if (m === '>') return '>';
return m;
);
function formatBytes(bytes, decimals = 1)
if (bytes === 0) return '0 Bytes';
const k = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
// reset compression state
function invalidateCompressedData()
if (lastCompressedBlob)
lastCompressedBlob = null;
downloadBtn.disabled = true;
function updateStatus(type, msg)
statusDiv.innerHTML = `<i class="fas $type === 'success' ? 'fa-check-circle' : (type === 'error' ? 'fa-exclamation-triangle' : 'fa-info-circle')"></i> $msg`;
if (type === 'success') statusDiv.classList.add('success');
else if (type === 'error') statusDiv.classList.add('error');
else
statusDiv.classList.remove('success', 'error');
// add files (deduplicate by name + size? basic merge)
function addFiles(filesArray) filesArray.length === 0) return;
let addedCount = 0;
for (let file of filesArray)
// Avoid duplicates: check same name and same size (simplistic)
const exists = selectedFiles.some(f => f.name === file.name && f.size === file.size);
if (!exists)
selectedFiles.push(file);
addedCount++;
else
// skip duplicate
console.log(`Duplicate skipped: $file.name`);
if (addedCount > 0)
renderFileList();
invalidateCompressedData();
updateStatus('info', `$addedCount file(s) added. Click "Compress & Prepare".`);
else if (filesArray.length > 0)
updateStatus('info', 'All files already in list (duplicates ignored).');
// drag & drop handlers
dropzone.addEventListener('click', () => fileInput.click());
dropzone.addEventListener('dragover', (e) =>
e.preventDefault();
dropzone.classList.add('drag-over');
);
dropzone.addEventListener('dragleave', () =>
dropzone.classList.remove('drag-over');
);
dropzone.addEventListener('drop', (e) =>
e.preventDefault();
dropzone.classList.remove('drag-over');
const items = e.dataTransfer.files;
if (items && items.length)
addFiles(Array.from(items));
);
fileInput.addEventListener('change', (e) =>
if (e.target.files && e.target.files.length)
addFiles(Array.from(e.target.files));
fileInput.value = ''; // allow re-upload same files
);
// compression level display
function updateLevelDisplay()
const level = parseInt(compressLevelSlider.value, 10);
let desc = '';
if (level === 0) desc = 'Store (no compression)';
else if (level <= 3) desc = 'Fast (speed)';
else if (level <= 6) desc = 'Balanced';
else desc = 'Maximum (ultra)';
levelDisplaySpan.innerText = `Level $level · $desc`;
compressLevelSlider.addEventListener('input', () =>
updateLevelDisplay();
invalidateCompressedData();
updateStatus('info', 'Compression level changed. Re-run compression.');
);
updateLevelDisplay();
archiveNameInput.addEventListener('input', () =>
if (lastCompressedBlob) invalidateCompressedData();
updateStatus('info', 'Archive name changed. Recompress to apply.');
);
// ---- CORE COMPRESSION LOGIC (using JSZip) ----
async function performCompression() ]/g, '_');
const finalZipName = `$baseName.zip`;
updateStatus('info', `Compressing $selectedFiles.length file(s) with level $level ...`);
compressBtn.disabled = true;
downloadBtn.disabled = true;
try
const zip = new JSZip();
// set compression options: DEFLATE with specified level
// JSZip level: 1-9 (0 means no compression but we handle separately)
let compressionOpt = 'DEFLATE';
let compressionLevel = level;
if (level === 0)
// For level 0: store method (no compression)
compressionOpt = 'STORE';
compressionLevel = null;
// Add each file asynchronously
for (const file of selectedFiles)
// read file as ArrayBuffer for maximum compatibility
const arrayBuffer = await file.arrayBuffer();
// add file to zip folder (flat structure)
if (compressionOpt === 'STORE')
zip.file(file.name, arrayBuffer, compression: 'STORE' );
else
zip.file(file.name, arrayBuffer, compression: 'DEFLATE', compressionOptions: level: compressionLevel );
// generate blob (asynchronous)
const zipBlob = await zip.generateAsync(
type: "blob",
compression: compressionOpt === 'STORE' ? 'STORE' : 'DEFLATE',
compressionOptions: compressionOpt === 'DEFLATE' ? level: compressionLevel : null
);
lastCompressedBlob = zipBlob;
lastArchiveName = finalZipName;
const originalTotal = selectedFiles.reduce((sum, f) => sum + f.size, 0);
const compressedSize = zipBlob.size;
const ratio = originalTotal > 0 ? ((1 - compressedSize / originalTotal) * 100).toFixed(1) : 0;
let ratioMsg = ratio >= 0 ? `Saved ~$ratio%` : `Size increased ($Math.abs(ratio)%)`;
updateStatus('success', `Compression done! $formatBytes(originalTotal) → $formatBytes(compressedSize). $ratioMsg. Ready to download.`);
downloadBtn.disabled = false;
return true;
catch (err)
console.error(err);
updateStatus('error', `Compression failed: $err.message `);
lastCompressedBlob = null;
downloadBtn.disabled = true;
return false;
finally
compressBtn.disabled = false;
// download handler
function downloadZip()
// attach event listeners
compressBtn.addEventListener('click', async () =>
await performCompression();
);
downloadBtn.addEventListener('click', () =>
if (lastCompressedBlob) downloadZip();
else updateStatus('error', 'No archive ready. Click "Compress & Prepare" first.');
);
// additional: clear all button? not needed but optional but we add little feature: reset by double-click header? no, but ensure new experience
// small initialization: prevent bad naming
window.addEventListener('load', () =>
renderFileList();
updateStatus('info', '✨ New CodeWare Compress ready. Drop files, adjust level, compress & download.');
// demo tip
);
</script>
</body>
</html>
Codeware recently released the 2026 update for COMPRESS, its industry-standard ASME Section VIII pressure vessel design software. The new version, available for download as of early 2026, focuses on streamlining compliance with the latest engineering codes and improving CAD integration. What’s New in COMPRESS 2026
The latest build continues to automate complex ASME Boiler and Pressure Vessel Code (BPVC) calculations. Key areas of focus for this year's release cycle include:
Updated Code Compliance: Full support for the most recent ASME VIII, IBC, and API 650 standards.
Enhanced Integration: Improvements to the Codeware Interface (CWI), the CAD add-in that automatically generates 3D solid models and 2D drawings in Autodesk Inventor from COMPRESS designs. codeware compress download new
Productivity Tools: New features for "Quick Design" options and enhanced nozzle copy/paste functionality to reduce repetitive modeling tasks. How to Download the New Version
To access the latest version of COMPRESS or the Codeware Interface:
Visit the Support Center: Navigate to the Codeware Support Center Downloads page.
Log In: You must have an active Support and Update Service (SUS) contract to download new builds. If you lack credentials, you can request an account via sus@codeware.com.
Run the Installer: The new installer is designed to automatically detect and migrate your existing user-defined materials and custom nozzle loadings from previous versions. by Codeware is widely considered the industry standard
License Activation: If you are transitioning to a dongle-free setup, use the Codeware License Activator utility provided on the same page. Technical Capabilities
COMPRESS remains a "rating" and "design" tool, meaning it doesn't just check if a design works—it can also size components (shells, heads, nozzles) to meet specific pressure requirements. The software also supports API 579 Fitness-For-Service through its sister application, INSPECT, which is often updated in tandem with COMPRESS. What's New in COMPRESS 2019 - Codeware
Note: If you meant a specific existing software (e.g., for HMI/PLC programming, or a different utility), please let me know so I can adjust the technical details. This post treats "CodeWare Compress" as a specialized data/file compression system for technical environments.
2.2. Cloud-Ready Compression
The new build includes native integration with AWS S3, Google Cloud Storage, and Azure Blob. You can now compress data before upload directly from the GUI or CLI.
5.2. Split Archives for Cloud Upload
Use the new --split feature to break a 10GB archive into 1GB chunks: Codeware recently released the 2026 update for COMPRESS
codeware compress bigfile.iso --split 1GB --output backup.cwa
Q1: Is the free download really free?
Yes. The free edition has no time limit but restricts individual file compression to 500MB and disables cloud sync.
Step 4: Verify the Checksum (For Security)
After the download completes, verify file integrity. The official site provides SHA-256 hashes. Example for Windows:
certutil -hashfile codeware_compress_5.2.4_win64.exe SHA256
Compare the output with the hash on the download page. If they match, your file is legitimate.
How to Get the New Download Feature
If you’re an existing CodeWare Compress user:
- Open the application and navigate to Help > Check for Updates.
- Download and install the v3.2.1 runtime (approximately 45 MB).
- Restart the service. The "New Download" button will appear in the job toolbar.
For new users:
- Visit the official CodeWare distribution portal (ensure you have a valid license for the Compress module).
- Look for the "CodeWare Compress - Full Install with Download Client (2025 release)".