New Scala server and libraries (solid-control)

Hi, I have been working for the past year on writing a Solid Server in Scala and developing some useful libraries for it, that can compile to JVM byte code as well as to to JavaScript. This was made possible by an European Union Next Generation Internet Privacy Enhancing Technologies grant.

The results of the Solid-Control project has a github page that lists the artifacts produces and milestones achieved. I’ll just highlight the main ones that could be useful to people here.

  • A Scala based Solid Server Reactive Solid that is nearly finished. It would need a couple of extra milestones so that I can use it as my own web server. (more tests, finish WAC)
  • Banana-rdf was ported to Scala 3. Banana-rdf allows one to write Scala code that can switch in one line of code between Jena, Sesame or Rdflib.js. It would be easy to add other libraries. There is work that remains to be done to add SPARQL support and the nice DSL we used to have. Other work that could be done is to add the Apache Commons RDF framework.
  • HttpSig An implementation of the “Signing HTTP Messages” RFC from the IETF HTTP Bis working group, to allow for efficient authentication similar to WebID-TLS but without client certificate browser support. This makes for much more flexible authentication schemes. The code is in the bblfish/httpSig github repo and compiles to JS and Java so that it could be used by existing servers or clients.

If any of these are of interest to people here I’d be happy to work on improving them. It would go faster if people have funds to work on it obviously (as I would not need to work on completely different projects first). Those projects are under Apache or MIT licenses so of course people can also contribute to them.

5 Likes

@Babelfish,

Great news!

Do you have a live instance that anyone can play with? Note, I don’t want to install this myself :slight_smile:

Hi @kidehen,

Thanks for pinging me here.
Since posting I got two more milestones from the EU to allow me to get the code ready for deployment. I am hoping to get it to the point so that I can use it for https://bblfish.net/ and a few other sites I am running. As I found some other part time work this may take up to 4 months though.

Henry

The Solid-Control project, supported by an EU NGI PET grant, delivers a nearly complete Scala-based Solid Server, “Reactive Solid,” designed to compile to both JVM and JavaScript. Key outputs include a Scala 3 port of Banana-RDF, enabling seamless switching between RDF libraries like Jena and Rdflib.js, and HttpSig, an RFC-based HTTP message signing implementation for flexible authentication. These tools are open-source (Apache/MIT) and contributions are welcome. Additional funding would accelerate development, especially for testing, WAC completion, and enhanced SPARQL support. Ideal for developers interested in privacy-focused, interoperable web technologies using Scala and Solid standards.

2 Likes

That’s great news! Can you please create a record for this server in the Solid Resources Catalog at https://catalog.solidproject.org/. You can mark the status as exploration or development if appropriate as the catalog is for all projects, not only those in production. If you have any problems or questions, please feel free to contact me in a private message here.

1 Like

Hey Jeff,

I’m unsure why this thread was revived. Unfortunately, the maintainer of the library passed away suddenly a few years back, and development has stalled as a result. It is still a good project from reference, but far from complete.

@gaz009, yes I’m aware that he original author passed away. But the posting I was responding to was posted three days ago and refers to a group who apparently revived the project. @KamalDeepPareek - could you post a link to a repository or other page about the project?

1 Like

Unfortunately I think this is yet another case of LLM spam that just reformulated the original post into a reply.

1 Like

@gaz009 and @Vincent - oh darn, fooled by AI (maybe). Let’s wait a day or so to see if @KamalDeepPareek replies. If not, I’ll delete their response and my reply to it.