Official RimStone blog
Updated on 2025-11-11
- RimStone in the Cloud (2025-11-01) (read full article)
RimStone is well-suited for cloud applications, as it is lightweight, scalable, it's easy to Docker-ize, and it has a wide range of middleware capabilities.
Being compiled from C code directly into native executable, and with only the necessary support libraries, it's lightweight by design. The number of actual server processes will vary with the load, providing great scalability features. It's very architecture, which is request-based HTTP service model, fits nicely with the native cloud design.
A good example of this is multi-tenant SaaS application in 200 lines of code; it shows it doesn't take much to write cloud-based software and it's easy to maintain. ...
- C API example of messaging with RimStone server (2025-11-01) (read full article)
RimStone server can do a lot of things, such as act as a database layer, cache server, backbone for distributed computing, middleware for pretty much any purpose etc. Regardless, an external client can access it and exchange messages with it in a very simple and straighforward manner.
This example shows an example of doing just that. The C client will use the API to create a message made up of bunch of key/value pairs and send it to the server. In turn, server will get these key/value pairs and construct a bunch of its own and send them back to the client. The client will print the value out. ...
- RimStone 4.3.1 released (2025-10-29) (read full article)
This release adds message manipulation capability to Client API for C programs, as well as some minor improvements for Debian package building.
In other words, your C programs can now use SEMI messages, which are essentially key/value pairs packed into a single binary message.
So for instance, the server can send such message to the client, and vice versa. Your client can also save them into files or read them from files. In any case, the newly added API for messaging allows your C programs to pack/unpack messages comprised of key/value pairs in a way that's binary compatible with RimStone server. ...
- You need to use a feature, but the library isn't there. The solution is simple. (2025-10-22) (read full article)
You can install RimStone with the "all" flag in which case all tookit libraries will be installed. However you can also not install any of them, and only install those that you need, when you need them.
What happens in that case, and how does it work? Check out this article to see a real example of how easy it is to fix the missing library. ...
- RimStone 4.2.0 released (2025-10-16) (read full article)
This release adds strlen() function, which can be used in expressions just like any other. Functionally it's equivalent to string-length statement.
For instance:
set-string s1="some string" ...
- Input and output parameters (2025-10-16) (read full article)
RimStone applications are made up of handlers (see begin-handler) that process request. A handler works the same wheter it's called remotely (from outside the application, say over the network), or locally (by using call-handler).
When called locally, RimStone provides a neat way to pass data in and out of a handler, by using "set-param" and "get-param" clauses or statements (see set-param and get-param). To read more about how this works and the advantages of it, see input-output-parameters.
A good way to get a feel for it is also recursion examples (see blog post). ...
- Recursion in RimStone is easy (2025-10-14) (read full article)
There are two examples posted today showcasing recursion in RimStone:
article-recursion-factorial,
article-recursion-reverse-string. ...
- RimStone 4.1.0 released (2025-10-13) (read full article)
This release makes usability improvements, specifically better semantics and shorter code for calling handlers locally within an application with respect to input and output parameters.
call-handler now has "set-param" and "get-param" clauses to set input parameters and obtain output parameters in a local call.
begin-handler (or %% for short) now has "get-param" clause to obtain input parameters in the request declaration. ...
- Math example: mortgage amortization schedule and interest (2025-10-11) (read full article)
RimStone has powerful math capabilities. A simple example is the mortage amortization schedule calculator.
Like any other RimStone program, it can be run from command line, as a service behind a firewall, or as an application server behind a web server. ...
- RimStone 4.0.6 released (2025-10-10) (read full article)
This is a patch release with a few minor fixes:
README is now README.md for markdown rendering.
A few typos in the installation process fixed. ...
- RimStone 4 released: Golf is now RimStone (2025-10-02) (read full article)
Golf is now RimStone (see blog-2025-09-26-formerly-golf for a previous announcement).
The new web site is rimstone-lang.com and the documentation, examples etc. has been changed for RimStone.
The new file extension is ".rim". In your project, you can use the following to rename all your .golf files into .rim files: ...
- Golf soon to change name (2025-09-26) (read full article)
Golf will soon be renamed.
We got lots of feedback regarding the name, mostly for being hard to find. First of all, there's an inordinate amount of golf stuff, related to the sport. But, using 'golf-lang' instead of 'golf' would alleviate that.
And then there's golfing in programming. Believe or not, we didn't know about "golfing" languages at the time. It's a cool niche culture of programming, however Golf isn't exactly like it. ...
- Here's what installing RimStone looks like (2025-09-25) (read full article)
If you're wondering how exactly the RimStone installation goes in a terminal window, here's what installing RimStone looks like.
You can see why things are done the way they're done and how safe and easy it is to install RimStone. ...
- RimStone 3.4.0 released (2025-09-24) (read full article)
This release gives RimStone full-blown general puprose programming capabilities with the extensive support for a double type, including double arrays (see new-array). A double is created with set-double statement. Doubles are extended precision 64 bit floating point values. A long list of math functions have been added. The following return a double:
dbl
sin ...
- How to insert/update multiple-tables in a single transaction? (2025-09-13) (read full article)
Using multiple tables in a single transaction is common enough. You'd want the data to be either inserted/updated in all of them, or in none of them. So if one of such DML operations fail, then the others should not succeed to.
In other words, your work should be either all committed, or all rollbacked.
This example is a weather application that records temperatures for any given zip code. And it updates the climate (temperature) averages for each code too. So in such a transaction, one table is inserted and other updated, and that's done atomically. ...
- Articles only on official web site (2025-09-12) (read full article)
RimStone articles (how-tos, examples, knowledge-base etc.) will no longer be published on external web sites (such as blogging, developer or other sites). Rather, they will only be published here on the RimStone's official web site.
The reason is that there was lots of effort being put into the external web sites that could be better used for new bug fixes, features, more examples etc. While it's true that such external web pages reach broader audience, the flip side of it is that it takes time and effort to post and maintain such articles.
For instance, virtually every web site out there supports one version of markdown or the other. But what's exactly supported varies a lot. Also, code highlighting isn't available for RimStone on any of them. Formatting is often different on various web sites, making it even more cumbersome to produce a consistent look. You would think by now there'd be a way to insert your article's plain valid HTML/CSS (safe without any scripting, thus ensuring quality appearance), but that's not the case, which effectively diverges the look and feel, sometimes to the point where it's hard to read. Even without all this, when new features are added, or there's a change in RimStone syntax, it precipitates changing a number of web copies; publishing-by-reference isn't really a thing. And not to mention that different sites have different policies when it comes to what content they accept, and I mean even without any links or any kind of self-promotion. Of course, having such external presence is obviously useful for SEO, but it has a price; all I am saying we'd rather be making software better with it. ...
- RimStone-3.3.0-released (2025-09-11) (read full article)
Fix a bug where error text for a SQL with MariaDB database would be empty (error code would still be correct though).
Fixed a help display issue with rim where SQLite would not be shown in help for --db option.
vim highlighting and indenting is now automatically added during install. ...
- RimStone-3.2.2-released (2025-09-06) (read full article)
Fixed a bug with MariaDB where error message text isn't available in error-text of run-query.
vim coloring and indentation setup is now done automatically during installation (no need for rim -m).
Better formatting of database error reporting, and better error message reporting for database queries errors. ...
- RimStone-3.2.0-released (2025-09-02) (read full article)
Added RimStone application packaging and installation. "-p" option to rim utility will package an application into a .tar.gz file which can be installed on another computer with "-a" option.
Development version of programs like mrim (process manager) can now be attached to with gdb without sudo privilege.
Fixed RimStone installation issue on debian-like distros where the installation of toolkit packages would hang. ...
- RimStone-3.1.34-released (2025-08-26) (read full article)
Fixed bug with the making of a RimStone application; an application may need to be rebuilt in some cases. With this fix, once made, an application does not need to be rebuilt if the source code (or other dependencies) did't change.
For a Debian based system, updating of repository is now performed prior to toolkit library installation; in some cases it may fail without the update. ...
- RimStone-3.1.22-released (2025-08-23) (read full article)
Added RimStone packages for most popular distros (see install-package). RimStone can now be installed via package (apt, dnf, zypper, pacman), which provides source code in a single location and installs all dependencies; you still need to install from source (see install-rimstone).
Added debian folder, rpm spec file and PKGBUILD file for various distro's package builds (see install-package).
Fixed issue with .bashrc if RimStone is uninstalled, reinstalled etc. ...
- RimStone-3.1.0-released (2025-08-19) (read full article)
Performance improvements in building application.
Added a list of outputs to print-out, so now print-out can output any number of strings and numbers concatenanted together.
Fixed uninstall and write-string documentation pages errata. ...
- How-to-get-web-page-HTML-code-and-HTTP-headers-programmatically (2025-08-17) (read full article)
You may want to obtain the web page source code (and the headers sent with it) for a number of reasons: to cache it, parse it to extract data, find out if it exists, etc.
If you want to fetch the web page like that anywhere on the web, here is how to do it in just a single line of code. ...
- RimStone 3.0.12 released (2025-08-16) (read full article)
fixed missing default-value in documentation for get-param
added error message for type mismatches in some statements, including get-param
added the tracing ability (when attaching gdb to a server process) to RimStone servers, when in development mode ...
- RimStone 3.0.9: Bug and documentation fixes (2025-08-15) (read full article)
fixed bug in stack trace reporting,
fixed several examples to work with the new RimStone (more to come),
fixed bug in rim -e, where error reporting not shown properly, ...
- RimStone 3.0.1: Major RimStone rewrite brings no-sudo installation, better performance and many new features (2025-08-13) (read full article)
RimStone now installs without sudo in a local home folder. New riminst.sh utility is used to install RimStone without sudo.
RimStone is now source-only. The reason is performance and transparency; RimStone generates C code for user applications, and then links (via Link Time Optimization, LTO) with RimStone code. It's as if your code is directly compiled and optimized across whole program with RimStone code. This can produce significant performance gains.
To use features that depend on other FOSS libraries, you need to install those libraries and you need sudo for that, which has nothing to do with RimStone. The same goes for SELinux support. You can still use RimStone without those features. Note that RimStone installed can install them for you, or if you use them, it will tell you exactly how to install them yourself. ...
- Major new RimStone version coming out soon (2025-08-12) (read full article)
A new version of RimStone is coming soon, bringing many new features, better performance and stability.
Going forward, RimStone will install locally in a user's home folder, and will not require sudo privileges.
The improvements will include stack depth control (for recursion for instance), better support for file uploading, default values for input parameters, many new string statements and expressions, new formats of output, new number expression (such as binary), better usage of hashes and arrays, much better error handling/message and run-time stack trace (using libbacktrace directly), many new optimizations such as new fast memory system, prefetching and other significant performance improvements. Also, quite a few bugs have been fixed as well. ...
Copyright (c) 2019-2025 Gliim LLC. All contents on this web site is "AS IS" without warranties or guarantees of any kind.