npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@yogesh0333/yogiway

v1.2.2

Published

YOGIWAY Format - Ultra-compact, nested-aware data format for LLM prompts. Handles deeply nested JSON efficiently, 10-15% more efficient than TOON.

Readme

YOGIWAY & PATHX - Ultra-Efficient Data Formats for AI & Storage

YOGIWAY (Your Optimal Gateway Interface - Way) is an ultra-compact, nested-aware data format designed for LLM prompts. PATHX is a binary format optimized for storage and transmission with maximum performance.

🚀 Quick Start

Option 1: VS Code Extension (Easiest! ⭐)

One-click compression for Cursor, Windsurf, VS Code, and all AI assistants!

cd vscode-extension
./install.sh

Then:

  1. Select code in any file
  2. Press Cmd+Shift+Y (Mac) or Ctrl+Shift+Y (Windows)
  3. Paste in AI chat - Done! 🎉

That's it! The extension automatically compresses and copies to clipboard.

Option 2: Use as Library (FREE & OPEN SOURCE)

🎉 100% FREE - No license required!

📦 Note: The library is available via npm - completely free and open source!

npm install @yogesh0333/yogiway
import { encode, decode, pathxEncode, pathxDecode } from '@yogesh0333/yogiway';

// Use immediately - completely free!
const data = { users: [{ id: 1, name: 'Alice' }] };
const compressed = encode(data); // ✅ Works immediately - no license needed!

// YOGIWAY - for LLM prompts (text-based)
const yogiway = encode(data, { usePathReferences: true });
const decoded = decode(yogiway);

// PATHX - for storage/transmission (binary)
const pathx = pathxEncode(data, { typedArrays: true, checksum: true });
const decoded2 = pathxDecode(pathx);

📚 Installation: npm install @yogesh0333/yogiway - Completely free and open source!

💰 Real-World Cost Savings

Example: AI API Usage (10,000 requests/day)

With JSON:

  • Input tokens: 2,000 × 10,000 = 20M tokens/day
  • Cost: $200/day = $6,000/month

With YOGIWAY (40% reduction):

  • Input tokens: 1,200 × 10,000 = 12M tokens/day
  • Cost: $120/day = $3,600/month

💰 Savings: $2,400/month = $28,800/year

ROI: 1 day implementation = $28,800/year savings = 7,200% ROI

Example: E-commerce Chatbot (50,000 conversations/day)

With JSON:

  • 25M tokens/day = $250/day = $7,500/month

With YOGIWAY (45% reduction):

  • 13.75M tokens/day = $137.50/day = $4,125/month

💰 Savings: $3,375/month = $40,500/year

Example: Developer Team (10 developers, 1,000 requests/day each)

With JSON:

  • 1.5M tokens/day per developer = $15/day = $450/month per developer
  • Team total: $4,500/month

With YOGIWAY (40% reduction):

  • 0.9M tokens/day per developer = $9/day = $270/month per developer
  • Team total: $2,700/month

💰 Savings: $1,800/month = $21,600/year

🎯 When to Use What

Use YOGIWAY (Text Format) When:

  • Sending data to LLMs (GPT, Claude, etc.)
  • Human-readable format needed (debugging, inspection)
  • Token efficiency is priority (reducing API costs)
  • Moderate nesting (5-15 levels)
  • Self-documenting format (path mapping visible)
  • Simple integration (text-based, no binary handling)

Use PATHX (Binary Format) When:

  • Database storage (compact, fast)
  • API transmission (bandwidth optimization)
  • Maximum performance (fastest encoding/decoding)
  • Deep nesting (15+ levels)
  • Large datasets (GB/TB scale)
  • Path-heavy data (many repeated paths)

📊 Format Comparison

| Format | Type | Best For | Deep Nesting | Token Efficiency | Speed | |--------|------|----------|-------------|------------------|-------| | YOGIWAY | Text | LLM prompts | ✅ Excellent | ✅✅ Excellent | Fast | | PATHX | Binary | Storage/transmission | ✅✅ Excellent | ✅✅✅ Best | ✅✅ Fastest | | TOON | Text | Simple cases | ⚠️ Limited | ✅ Good | Fast | | JSON | Text | General purpose | ✅ Excellent | ⚠️ Verbose | Fast |

🛠️ Real-World Usage Examples

Example 1: AI Coding Assistant (Cursor/Windsurf)

Problem: Sending large codebases to AI models is expensive.

import { encode } from '@yogesh0333/yogiway';

// Before: JSON (50KB = 12,500 tokens = $0.125 per request)
const projectStructure = {
  files: [
    { path: 'src/components/Button.tsx', code: '...', imports: [...] },
    // ... 100 more files
  ]
};

// After: YOGIWAY (30KB = 7,500 tokens = $0.075 per request)
const compressed = encode(projectStructure, { 
  usePathReferences: true,
  mode: 'minimal' 
});

// 💰 Savings: $0.05 per request = $50/day for 1,000 requests

Example 2: E-commerce Product Catalog

Problem: Store millions of products with nested attributes.

import { pathxEncode, pathxDecode } from '@yogesh0333/yogiway';

const product = {
  id: 12345,
  name: 'Laptop',
  specs: {
    cpu: { brand: 'Intel', model: 'i7-12700K' },
    ram: { size: 16, type: 'DDR4' },
    storage: { type: 'SSD', capacity: 512 }
  },
  pricing: {
    base: 999.99,
    discounts: [{ type: 'student', amount: 100 }]
  }
};

// Store in database as PATHX (compact, fast)
const binary = pathxEncode(product, { 
  typedArrays: true,
  checksum: true 
});

// Later: Decode for LLM prompt
const decoded = pathxDecode(binary);
const yogiway = encode(decoded, { usePathReferences: true });
// Send to LLM...

Example 3: User Profile Storage

Problem: Store deeply nested user profiles efficiently.

import { pathxEncode, pathxDecode, pathxToDebugString } from '@yogesh0333/yogiway';

const userProfile = {
  profile: {
    personal: {
      name: 'John Doe',
      address: {
        street: '123 Main St',
        city: 'New York',
        zip: '10001'
      }
    },
    preferences: {
      theme: 'dark',
      notifications: { email: true, push: false }
    }
  }
};

// Store as PATHX (compact)
const stored = pathxEncode(userProfile, { optimizePaths: true });

// Debug: Human-readable format (no performance impact)
const debug = pathxToDebugString(stored);
console.log(debug); // Pretty JSON output

// Decode when needed
const decoded = pathxDecode(stored);

Example 4: API Response Optimization

Problem: Reduce API response size and bandwidth costs.

import { pathxEncode, pathxDecode } from '@yogesh0333/yogiway';

// API endpoint
app.get('/api/users', async (req, res) => {
  const users = await db.getUsers(); // Large nested data
  
  // Option 1: PATHX for binary response
  const binary = pathxEncode(users, { 
    typedArrays: true,
    compress: true 
  });
  res.setHeader('Content-Type', 'application/octet-stream');
  res.send(binary);
  
  // Option 2: YOGIWAY for text response (if client needs readable)
  const yogiway = encode(users, { usePathReferences: true });
  res.json({ format: 'yogiway', data: yogiway });
});

// Client side
const response = await fetch('/api/users');
const binary = await response.arrayBuffer();
const users = pathxDecode(new Uint8Array(binary));

Example 5: LLM Context Compression

Problem: Send large context to LLM without exceeding token limits.

import { encode, smartEncode } from '@yogesh0333/yogiway';

const context = {
  conversation: [
    { role: 'user', content: '...' },
    { role: 'assistant', content: '...' }
  ],
  userProfile: { /* large nested object */ },
  documents: [ /* array of documents */ ]
};

// Smart encoding: automatically chooses best format
const forLLM = smartEncode(context, 'llm'); // Returns YOGIWAY
const forStorage = smartEncode(context, 'storage'); // Returns PATHX

// Manual: Maximum compression for LLM
const compressed = encode(context, {
  mode: 'minimal',
  usePathReferences: true,
  compressPaths: true,
  adaptiveFlattening: true
});

// Send to LLM (40-50% fewer tokens)
await openai.chat.completions.create({
  messages: [{ role: 'system', content: compressed }]
});

🔧 Advanced Features

YOGIWAY Encoding Modes

import { encode } from '@yogesh0333/yogiway';

// Performance mode (default, fastest)
const fast = encode(data, { mode: 'performance' });

// Minimal mode (smallest size, maximum compression)
const small = encode(data, { mode: 'minimal' });

// Compatibility mode (JSON-like, maximum compatibility)
const compatible = encode(data, { mode: 'compatibility' });

PATHX Optimizations

import { pathxEncode, pathxDecode, pathxToDebugString } from '@yogesh0333/yogiway';

// With typed arrays (2-3x faster for numeric arrays)
const binary = pathxEncode(data, { 
  typedArrays: true,      // Auto-detect homogeneous arrays
  checksum: true,        // Data integrity verification
  optimizePaths: true,   // Path caching
  streaming: true        // For large datasets
});

// Human-readable debug (no performance impact)
const debug = pathxToDebugString(binary);
console.log(debug); // JSON-formatted output

// Validate data integrity
import { validatePathx } from '@yogesh0333/yogiway';
const isValid = validatePathx(binary);

Format Converters

import { 
  yogiwayToPathx, 
  pathxToYogiway, 
  smartEncode 
} from '@yogesh0333/yogiway';

// Store as PATHX, send to LLM as YOGIWAY
const stored = pathxEncode(data, { optimizePaths: true });
const forLLM = pathxToYogiway(stored, { usePathReferences: true });

// Smart encoding: auto-choose format
const llmFormat = smartEncode(data, 'llm');        // YOGIWAY
const storageFormat = smartEncode(data, 'storage'); // PATHX

⚠️ Drawbacks & Limitations

YOGIWAY Drawbacks

  1. Learning Curve

    • ❌ Not as familiar as JSON
    • ❌ Requires understanding path references
    • Mitigation: Well-documented, simple API
  2. Tooling Support

    • ❌ No native browser DevTools support
    • ❌ Limited editor syntax highlighting
    • Mitigation: Debug functions available
  3. Not Standard

    • ❌ Not a web standard (unlike JSON)
    • ❌ Requires library dependency
    • Mitigation: Small bundle size (~15KB)
  4. Deep Nesting Overhead

    • ❌ Path mapping adds overhead for very deep structures
    • Mitigation: Use PATHX for 15+ levels
  5. String Escaping

    • ❌ Complex strings may need escaping
    • Mitigation: Handled automatically

PATHX Drawbacks

  1. Not Human-Readable

    • ❌ Binary format, can't inspect directly
    • Mitigation: pathxToDebugString() function
  2. Binary Handling

    • ❌ Requires binary data handling
    • ❌ Not directly usable in LLM prompts
    • Mitigation: Convert to YOGIWAY when needed
  3. Version Compatibility

    • ❌ Format changes may break compatibility
    • Mitigation: Version tracking in format
  4. Compression Overhead

    • ❌ Compression adds CPU overhead
    • Mitigation: Optional, only when beneficial
  5. Type System

    • ❌ JavaScript number precision limits
    • Mitigation: Proper type handling

💸 Cost Analysis

Implementation Costs

Time Investment:

  • Learning: 1-2 hours
  • Integration: 2-4 hours
  • Testing: 1-2 hours
  • Total: 4-8 hours

Financial Investment:

  • Library: Free (MIT License)
  • Dependencies: Minimal (no heavy deps)
  • Infrastructure: None (runs client/server)

Ongoing Costs

Performance:

  • Encoding: ~0.1-1ms (negligible)
  • Decoding: ~0.1-1ms (negligible)
  • Memory: Minimal overhead

Maintenance:

  • Updates: Optional (backward compatible)
  • Support: Community-driven

ROI Calculation

Scenario: 10,000 API requests/day, 2,000 tokens/request

| Metric | JSON | YOGIWAY | Savings | |--------|------|---------|---------| | Tokens/day | 20M | 12M | 8M | | Cost/day | $200 | $120 | $80 | | Cost/month | $6,000 | $3,600 | $2,400 | | Cost/year | $72,000 | $43,200 | $28,800 | | ROI | - | 7,200% | - |

Break-even: Immediate (first request saves money)

📈 Performance Benchmarks

Encoding Speed (1,000 items)

| Format | Time | vs JSON | |--------|------|---------| | JSON | 1.0x | Baseline | | YOGIWAY | 0.8x | 20% faster | | PATHX | 0.3x | 70% faster |

Decoding Speed (1,000 items)

| Format | Time | vs JSON | |--------|------|---------| | JSON | 1.0x | Baseline | | YOGIWAY | 0.9x | 10% faster | | PATHX | 0.25x | 75% faster |

Size Reduction

| Data Type | JSON | YOGIWAY | PATHX | Best | |-----------|------|---------|-------|------| | Flat data | 100% | 85% | 80% | PATHX | | Nested (5 levels) | 100% | 60% | 55% | PATHX | | Nested (10 levels) | 100% | 50% | 40% | PATHX | | Deep (20 levels) | 100% | 45% | 35% | PATHX | | Arrays of numbers | 100% | 90% | 50% | PATHX |

🐍 Python Support

# Copy python/ directory to your project
# Or install (when published)
pip install yogiway-python
from yogiway import yogiway_dumps, yogiway_loads, pathx_dumps, pathx_loads

# YOGIWAY
yogiway_text = yogiway_dumps(data, mode="performance")
decoded = yogiway_loads(yogiway_text)

# PATHX
pathx_binary = pathx_dumps(data, typed_arrays=True, checksum=True)
decoded = pathx_loads(pathx_binary)

📚 API Reference

YOGIWAY

encode(data: any, options?: YogiwayEncodeOptions): string
decode(text: string, options?: YogiwayDecodeOptions): any

Options:

  • mode: 'performance' | 'minimal' | 'compatibility' (default: 'performance')
  • usePathReferences: boolean (default: true)
  • compressPaths: boolean (default: true)
  • adaptiveFlattening: boolean (default: true)
  • lazyPaths: boolean (default: true)
  • maxDepth: number (default: 100)

PATHX

pathxEncode(data: any, options?: PathxEncodeOptions): Uint8Array
pathxDecode(data: Uint8Array, options?: PathxDecodeOptions): any
pathxToDebugString(data: Uint8Array): string
validatePathx(data: Uint8Array): boolean

Options:

  • typedArrays: boolean (default: true)
  • checksum: boolean (default: false)
  • optimizePaths: boolean (default: true)
  • streaming: boolean (default: false)
  • compress: boolean (default: false)

🎓 Best Practices

  1. Use YOGIWAY for LLM prompts - Text-based, token-efficient
  2. Use PATHX for storage - Binary, compact, fast
  3. Enable path references - Significant savings for nested data
  4. Use typed arrays - 2-3x faster for numeric arrays
  5. Enable checksums - Data integrity for critical data
  6. Profile your data - Test both formats to find best fit

🤝 Contributing

Contributions welcome! Please read our contributing guidelines.

📄 License

MIT License - Free for commercial use

🔗 Links

  • npm Package
  • npm
  • VS Code Extension - One-click compression!
  • npm Package: https://www.npmjs.com/package/@yogesh0333/yogiway
  • npm: https://www.npmjs.com/package/@yogesh0333/yogiway

Made with ❤️ for efficient AI interactions